鉴于这种XML模式(片段):序列模式元素是否保证子元素的顺序?
<xs:element name="GetIEnumerableResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="GetIEnumerableResult" nillable="true" xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q4:ArrayOfstring" />
</xs:sequence>
</xs:complexType>
</xs:element>
在该XML片段:
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>string1</string>
<string>string2</string>
<string>string3</string>
</ArrayOfstring>
可以在<串> < /串>元件以任何顺序出现?因此,是XML的这些两个片段语义等同放着清单:
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>string1</string>
<string>string2</string>
<string>string3</string>
</ArrayOfstring>
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>string3</string>
<string>string2</string>
<string>string1</string>
</ArrayOfstring>
抑或架构中的序列元件意味着<串> < /串>元件具有以相同的顺序是语义上等同于发生?
模式中的存在是否需要解析器/反序列化器使元素保持其在xml文本中存在的顺序?如果我理解正确,通常(即没有模式)不需要这样做(即使大多数解析器通常都这样做)。
优秀的答案,序列化索引确实是我使用的原始解决方案。我创建了一个“OrderedList”类,该类基本上是一个字典,其中int是索引。显然这是正确的答案。 –
Mark
2009-08-26 18:13:05