1

多分私はこれを正しくしていません。しかし、私はXSD.exe と共にMusicXMLを使用して、DTD に対して C# クラスを生成しています。

ドキュメントによると、サンプルの 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>

ありがとう!

4

1 に答える 1

3

null要素はデフォルトでシリアライズされないため、XMLにシリアライズするとchord要素が消えるということですか?

次のような空の要素としてレンダリングする場合

<chord />

isnullable プロパティ XML Serialization と null 値を使用して設定できます - C#

別の質問にリンクされているように、XML スキーマ ファイルでの null の表現に関するこの記事をご覧になることをお勧めします。

http://www.ibm.com/developerworks/xml/library/ws-tip-null/index.html

于 2013-03-21T23:32:36.973 に答える