【发布时间】:2014-02-18 06:10:45
【问题描述】:
我需要反序列化一个包含点和弧的配置文件/多边形定义的 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 的替代组(点),但没有成功。
<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>
【问题讨论】:
-
对不起,我不明白这个问题。我怀疑我是否听说过反序列化元素的顺序这样的事情,因为这与创建的类对象无关。你确定你真的要反序列化吗?
-
我在一个 xml 文件上使用 (MySchemaClass)XMLSerializer.Deserialize(),其中 MySchemaClass 是用 xsd MyScheme.xsd /classes 编译的