使用XSD.exe生成c#代码,忽略XML中的空节点
本文关键字:XML 节点 忽略 exe XSD 生成 代码 使用 | 更新日期: 2023-09-27 18:05:07
也许我做得不对。但是我使用MusicXML和XSD.exe来生成针对DTD的c#类。
根据文档,以及示例xml文件,如果<NOTE>
是<CHORD>
的一部分,则<NOTE>
元素包含空<CHORD>
元素。生成的代码如下所示:
[System.Xml.Serialization.XmlElementAttribute("chord", typeof(empty))]
当我将XML反序列化为c#对象时,它工作得很好,但是<CHORD>
似乎消失了。.NET只是忽略这个示例XML中的CHORD
元素吗?
<note>
<chord/>
<pitch>
<step>E</step>
<alter>-1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
</note>
谢谢!
您的意思是当您序列化为XML时,chord元素会消失,因为默认情况下null元素不会序列化
如果你想把它渲染成一个空元素,比如
<chord />
可以设置使用isnullable属性XML序列化和空值- c#
正如另一个问题所链接的那样,您可能想看看这篇关于XML Schema文件中null表示的文章:
http://www.ibm.com/developerworks/xml/library/ws-tip-null/index.html