我使用的.xsd模式如下
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="Scene">
<xs:complexType>
<xs:sequence>
<xs:element name="SceneName" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="PlayerName" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="Button" minOccurs="0" maxOccurs="unbounded" >
<xs:complexType>
<xs:sequence>
<xs:element name="ButtonText" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="NextScene" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Scene" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>这是由Visual Studio xsd.exe自动生成的。然后,我使用xsd2code将其转换为.designer.cs文件。我设置了xsd2code,这样它就可以创建序列化程序,并使数组具有复杂的类型结构。

现在我反序列化了一个xml并创建了我的场景文件,我的subobjekts,比如playername,都是正确的,即使它们有子对象,只要它们被设置为maxoccurence=1和minoccurence=0。除了我的数组,比如上面例子中的Button,我想我会得到一个这样的数组: scene.Buttoni.Buttontext。好吧,我不明白。我只得到我不知道这是什么,所以我在这里有一个屏幕截图。

他抛出了一个IndoexoutofRange错误。那么我做错了什么呢?
顺便说一句,我的example.xml
<?xml version="1.0" encoding="utf-8"?>
<Scene>
<SceneName>SceneName1</SceneName>
<PlayerName>PlayerName1</PlayerName>
<Button>
<ButtonText>ButtonText1</ButtonText>
<NextScene>NextScene1</NextScene>
</Button>发布于 2012-08-27 17:40:29
找到,needed.to设置GenerateXMLAttributes为true;
https://stackoverflow.com/questions/11329401
复制相似问题