< xsd:all
> указывает, что дочерние элементы могут появляться в любом порядке.
< xsd:sequence
> указывает, что дочерние элементы могут отображаться только в указанном порядке.
Пример последовательности:
<xs:element name="compElement">
<xs:complexType>
<xs:sequence>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
При создании XML из этого XSD тогда, это будет что-то вроде этого:
<compElement>
<ele1>First</ele1>
<ele2>Second</ele2>
<ele3>Third</ele3>
<ele4>Fourth</ele4>
</compElement>
Пример для всех:
<xs:element name="compElement">
<xs:complexType>
<xs:all>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
Если вы создаете XML-файл из этого xsd, тогда он будет примерно таким:
<compElement>
<ele2>Second</ele2>
<ele1>First</ele1>
<ele4>Fourth</ele4>
<ele3>Third</ele3>
</compElement>
More info на XSD: все More Info на XSD: последовательность
Надежда я ответил на ваш quetion.
По существу, разница между этими двумя - это то, что вы уже указали в своем вопросе. Тем не менее, ограничения, связанные с использованием этих двух компоновщиков и последствиями в создании XSD, зависят от того, какую спецификацию вы имеете в виду: XSD 1.0 или XSD 1.1? –
Похоже, ур вопрос о том, почему последовательность и все писать ошибки по-разному, когда он находит отсутствующий элемент. Я думаю, что речь идет о логике парсера – Nasir
Есть ли ответ на этот вопрос? Я также хотел бы знать, всегда ли я должен использовать, чтобы получить точный пропущенный объект. –
GertV