cxi設定xml内容が改行されないと属性xsi:nil=trueの空きノードが追加されます。


1.xmlを生成するコンテンツフォーマットを設定します。改行しないデフォルトでは下記のコードでxmlを作成し、生成するコードは以下の通りです。
 
XmlDocument doc = new XmlDocument();
// , ....
//
doc.Save(filename);

<UserName>
</UserName>
の場合、xsdの中に検証があれば通ります。改行しないために、doc.Save(filename)。
 
using (XmlTextWriter xtw = new XmlTextWriter(filename, null))
{
//None , Indented
xtw.Formatting = Formatting.None;
doc.Save(xtw);
}
2.属性がxsi:nil=「true」の空きノード
 
public static XmlElement CreateNodeWithNullAttr(XmlDocument doc, string nodeName)
{
XmlElement element = doc.CreateElement(nodeName);
XmlAttribute attr = doc.CreateAttribute("xsi", "nil", "http://www.w3.org/2001/XMLSchema-instance");
attr.Value = "true";
element.SetAttributeNode(attr);
//element.Attributes.Append(attr);
return element;
}
に変更できます。