Используя 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

Другие вопросы по тегам