2013-10-14 25 views
0

我有一个看起来像这样的XML:如何序列与阵列复杂的对象

<SOAPRequestItemHeadReturn xmlns:ns2="fsw" xsi:type="ns2:SOAPItemRevisionHeadResult"> 
    <comment xsi:type="xsd:string" xsi:nil="true"/> 
    <searchComplete xsi:type="xsd:boolean">true</searchComplete> 
    <resultList xsi:type="ns2:SOAPItemRevisionHead"> 
    <stringKey xsi:type="xsd:string">ItemRevision.ItemID</stringKey> 
    <stringValue xsi:type="xsd:string">cam_english_template</stringValue> 
    </resultList> 
    <resultList xsi:type="ns2:SOAPItemRevisionHead"> 
    <stringKey xsi:type="xsd:string">ItemRevision.ItemID</stringKey> 
    <stringValue xsi:type="xsd:string">cam_english_template</stringValue> 
    </resultList> 
    <search xsi:type="ns2:SearchType"> 
    <value xsi:type="xsd:string">ItemRevision.ItemID</stringKey> 
    <used xsi:type="xsd:boolean">true</searchComplete> 
    </search> 
... 

基本上SOAPRequestItemHeadReturn的结构如下:

ItemHeadReturn 
|-comment 
|-searchComplete 
|-resultList 
|-resultList 
|-resultList 
|-search 
|-search 
|-search 

的问题是:我如何建立类SOAPRequestItemHeadReturn?这里是一个可能的结构:

public class SOAPItemRevisionHeadResult{ 
    public string comment { get; set;} 
    public bool searchComplete { get; set;} 
    public SearchType[] search { get; set;} 
    public StringMap[] resultList {get; set;} 
} 

而且我需要填写的属性,但我不知道什么属性和位置。有任何想法吗?

回答

1

可以使用XSD.EXE实用程序来生成相应的XML你的C#类:http://msdn.microsoft.com/en-us/library/x6c1kb0s%28v=vs.110%29.aspx

打开Visual Studio命令提示符,导航至要存储生成的类,然后键入目录:

xsd "MyFileFullPath.xml" 

这会从您的XML生成一个XSD文件。然后:

xsd "MyGeneratedXSDFileFullPath.xsd" /c 

生成C#类。

+0

不得不编辑xml一点,但它的工作,谢谢。我期待使用xmlArrayAttibute和XmlArrayElementAttribute,为什么xsd没有使用它们? –

+1

它不使用这些属性,因为它们不是强制性的。默认行为足以根据需要运行序列化。 –