Неупорядоченные элементы в XSD с обязательными и неограниченными элементами?
У меня есть следующий элемент в моем XSD:
<xs:element name="documents" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="invoice" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="report" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="additional" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Вы можете видеть, что в документах всегда должен быть счет-фактура, и при желании он может иметь один отчет и ноль или более дополнений.
Проблема в том, что эти элементы могут иметь различный порядок появления, поэтому я не могу использоватьsequence
больше. Я пытался использоватьall
но тогда проблема заключается в дополнительном элементе, так как он имеетmaxOccurs="unbounded"
.
Как я могу иметь неупорядоченный список элементов, при этом один из этих элементов всегда требуется, а другой элемент может иметь неограниченное количество вхождений?