Элемент схемы последовательности гарантирует порядок дочерних элементов?

3 ответа

Элемент последовательности означает, что отдельные элементы (а не элементы в массиве) должны сохранять порядок.

Например,

<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:element name="Dummy" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:element>    

В этом примере Dummy появляется после GetIEnumerableResult в последовательности, и для проверки он всегда должен появляться в этом заказ в этом сложном виде.

Порядок «повторяющихся» элементов в сложном типе «ArrayOfString» не может быть принудительно применен в схеме, и поскольку массивы не подразумевают и не обеспечивают какого-либо явного порядка, семантика порядка также не гарантируется в CLR.

Один из способов гарантировать порядок - навести порядок в коллекции путем сериализации индекса.

7
ответ дан 4 December 2019 в 21:11
поделиться

Строковые элементы могут встречаться в любом порядке - поскольку для схемы они все одинаковы

2
ответ дан 4 December 2019 в 21:11
поделиться

Это действительно зависит от контекста. В чистом виде XML предоставленные вами фрагменты семантически эквивалентны независимо от порядка. Но когда вы (де) сериализуете вещи с помощью XML, может быть смысл, связанный с порядком элементов.

В этом случае XML-документы семантически эквивалентны тогда и только тогда, когда результирующие массивы семантически эквивалентны.

1115628]

1
ответ дан 4 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: