Игнорировать порядок элементов, используя расширение xs:
Как я могу создать свойXSD игнорировать последовательность элементов?
<root> <a/> <b/> </root>
<root> <b/> <a/> </root>
Мне нужно использоватьextension
по причинам генерации кода, поэтому я попробовал следующее с помощьюall
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/test"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:t="http://www.example.com/test" >
<xs:complexType name="BaseType">
<xs:all>
<xs:element name="a" type="xs:string" />
</xs:all>
</xs:complexType>
<xs:complexType name="ExtendedType">
<xs:complexContent>
<xs:extension base="t:BaseType">
<xs:all> <!-- ERROR -->
<xs:element name="b" type="xs:string" />
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="root" type="t:ExtendedType"></xs:element>
</xs:schema>
Этот xsd недопустим, следующая ошибка сообщается в<!-- ERROR -->
:
cos-all-limited.1.2: вся группа моделей должна появляться в частице с {min происходит} = {макс происходит} = 1, и эта частица должна быть частью пары, которая составляет {тип содержимого} сложного типа определение.
Документациясоз-все-limited.1.2 говорит:
1.2 свойство {term} частицы с {max Встречает} = 1, которая является частью пары, которая составляет {тип содержимого} определения сложного типа.
Я не очень понимаю это (ни xsd, ни носитель английского языка :) ).
Я делаю что-то не так, я делаю что-то не так, или нет способа добиться этого?