Используя XSD.exe для C# code gen, игнорирует пустые узлы в XML?
Возможно я не делаю это правильно. Но я использую MusicXML вместе с XSD.exe для генерации классов C# против DTD.
Согласно документации, наряду с образцом XML-файла, <NOTE>
элемент содержит пустой <CHORD>
элемент, если <NOTE>
является частью <CHORD>
, Сгенерированный код выглядит так:
[System.Xml.Serialization.XmlElementAttribute("chord", typeof(empty))]
Когда я десериализирую XML в объект aC#, он прекрасно работает, но <CHORD>
кажется исчезнуть..NET просто игнорирует CHORD
элемент в этом примере XML?
<note>
<chord/>
<pitch>
<step>E</step>
<alter>-1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
</note>
Спасибо!
1 ответ
Вы имеете в виду, что элемент chord исчезает при сериализации в XML, так как нулевые элементы по умолчанию не сериализуются
Если вы хотите отобразить его как пустой элемент, такой как
<chord />
Вы можете установить использовать свойство isnullable XML Serialization и нулевое значение - C#
Как указано в другом вопросе, вы можете взглянуть на эту статью о представлении нулевого значения в файлах XML-схемы:
http://www.ibm.com/developerworks/xml/library/ws-tip-null/index.html