也许我没有正确地做到这一点。但我正在使用MusicXML和XSD.exe来生成针对DTD的C#类。
根据documentation以及sample xml file,如果<NOTE>
是<CHORD>
的一部分,则<NOTE>
元素包含空的<CHORD>
元素[System.Xml.Serialization.XmlElementAttribute("chord", typeof(empty))]
。生成的代码如下所示:
<CHORD>
当我将XML反序列化为c#对象时,它的效果很好,但CHORD
似乎消失了。 .NET是否只忽略此示例XML中的 <note>
<chord/>
<pitch>
<step>E</step>
<alter>-1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
</note>
元素?
{{1}}
谢谢!
答案 0 :(得分:3)
你的意思是你序列化为XML时和弦元素消失了,因为默认情况下空元素不会序列化
如果你想把它渲染为像
这样的空元素<chord />
您可以设置使用isnullable属性 XML Serialization and null value - C#
如在另一个问题中链接的那样,您可能希望查看有关XML Schema文件中null表示的本文:
http://www.ibm.com/developerworks/xml/library/ws-tip-null/index.html