我需要反序列化包含点和弧的配置文件/多边形定义的XML。具有不同名称的有序子元素的XML模式
<Pt>
<X>0.0</X>
<Y>0.0</Y>
</Pt>
<Arc>
<X>0.0</X>
<Y>0.0</Y>
<Rad>0.0</Rad>
</Arc>
实际的XML文件:
<Profile>
<Pt>...</Pt>
<Pt>...</Pt>
<Arc>...</Arc>
<Pt>...</Pt>
<Arc>...</Arc>
</Profile>
我有点卡住找到一个解决办法知道名称不同的子元素的顺序。我目前正在使用类似下面的代码的模式,但我显然在不知道Pts和Arcs的顺序的情况下获得单个Pts和Arcs数组。我曾尝试创建一个可以同时处理Pt和Arc的substitutionGroup(Point),但是我没有成功。
<xs:element name="Profile">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Pt">
<xs:complexType>
<xs:sequence>
<xs:element name="X" type="xs:decimal" />
<xs:element name="Z" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="Arc">
<xs:complexType>
<xs:sequence>
<xs:element name="X" type="xs:decimal" />
<xs:element name="Z" type="xs:decimal" />
<xs:element name="Rad" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
对不起,但我不明白这个问题。我怀疑自己从未听说过反序列化元素的顺序,因为这与创建的类对象无关。你确定它真的是反序列化吗? – Tarec
我在使用xsd MyScheme.xsd/classes编译MySchemaClass的xml文件上使用(MySchemaClass)XMLSerializer.Deserialize() –