将XSD.exe用于c#code gen会忽略XML中的空节点吗?
也许我做得不对。但是我正在使用,以及XSD.exe来生成针对DTD的C#类 根据,如果将XSD.exe用于c#code gen会忽略XML中的空节点吗?,c#,xml,musicxml,C#,Xml,Musicxml,也许我做得不对。但是我正在使用,以及XSD.exe来生成针对DTD的C#类 根据,如果是的一部分,则元素与a一起包含一个空的元素。生成的代码如下所示: [System.Xml.Serialization.XmlElementAttribute("chord", typeof(empty))] 当我将XML反序列化为c#对象时,效果很好,但是似乎消失了。NET是否忽略了示例XML中的CHORD元素 <note> <chord/> <pitch&g
是
的一部分,则
元素与a一起包含一个空的
元素。生成的代码如下所示:
[System.Xml.Serialization.XmlElementAttribute("chord", typeof(empty))]
当我将XML反序列化为c#对象时,效果很好,但是
似乎消失了。NET是否忽略了示例XML中的CHORD
元素
<note>
<chord/>
<pitch>
<step>E</step>
<alter>-1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
</note>
E
-1
4.
1.
谢谢 您的意思是当序列化为XML时,chord元素会消失,因为默认情况下空元素不会序列化 如果要将其渲染为空元素,如
<chord />
您可以设置为使用isnullable属性
正如在另一个问题中所链接的,您可能想看看这篇关于XML模式文件中null表示的文章:
反序列化时“
似乎消失”是什么意思?note c#对象没有任何与和弦相关的内容,它无法通过反序列化。您的意思是当它序列化时,输出没有空的和弦节点吗?反序列化是获取输入并创建对象。序列化是另一种方式。我的意思是,当我将XML加载到自定义对象中时,chord属性从该对象中消失。我想我已经找到了答案,谢谢你的回答,我现在已经阅读了所有内容。不确定是什么修复了它。如果缺少元素,从XML到C#对象进行反序列化,从C#对象到XML进行序列化,则属性将为null,因此您正在进行反序列化,如果元素缺少或为空,则不会对其进行序列化。如果您对如何正确序列化元素还有任何疑问,请发布序列化类定义