8
.Netを使用したXMLシリアル化に関するもう1つの質問。ドキュメントルートのDeserialise XML配列
私は第三者からXMLストリングを受け取りました。それを最小限の騒ぎで.Netクラスに解析したいと思います。私のXMLはかなりシンプルなのでxsdを使いたくないし、吐き出す冗長クラスも気に入らない。私は、デシリアライゼーションの基本を理解していますが、ルートレベルの配列では苦労しています。
問題のXMLは以下の通りです:
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
がどのように私はそれをdeserialiseために私のC#の人々クラスの属性をマッピングしていますか?
これは私が動作させたいものですが、そうではありません。
[Serializable()]
[XmlRootAttribute("people", Namespace = "", IsNullable = false)]
public class People
{
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
私はXMLをマングル場合:
<result>
<people>
<person>
<id>1234</id>
</person>
<person>
<id>4567</id>
</person>
</people>
</result>
そして、それは以下のクラス定義で動作しますが、それは非常に間違って感じています。
[Serializable()]
[XmlRootAttribute("result", Namespace = "", IsNullable = false)]
public class People
{
[XmlArray(ElementName = "people")]
[XmlArrayItem(typeof(Person), ElementName = "person")]
public List<Person> Persons;
}
'[Serializable]'は必要ありません、btw - 'XmlSerializer'では使用しません –