如果孩子的顺序没有传达任何信息,通常最简单的方法是修复一个顺序。
<xs:complexType name="fixedOrder">
<xs:sequence>
<xs:element ref="RequiredElementA"/>
<xs:element ref="RequiredElementB"/>
<xs:element ref="RequiredElementC"/>
<xs:element ref="RequiredElementD" minOccurs="0"/>
<xs:element ref="RequiredElementE" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
如果订单带有信息(例如,您正在记录用户的 A、B、C 等级排序,并带有包含 D 和 E 的选项),您可以使订单不受约束。
<xs:complexType name="variableOrder">
<xs:all>
<xs:element ref="RequiredElementA"/>
<xs:element ref="RequiredElementB"/>
<xs:element ref="RequiredElementC"/>
<xs:element ref="RequiredElementD" minOccurs="0"/>
<xs:element ref="RequiredElementE" minOccurs="0"/>
</xs:all>
</xs:complexType>
有些人想要不受约束的秩序,即使它没有传达任何信息;这使得数据源不必查找规定的顺序成为可能,但代价是验证更加复杂。