Возможно ли иметь complexType и элементы внутри, но без части последовательности
У меня есть xml doc (и сложный элемент), который похож на этот пример:
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Но в моем xml не должно иметь значения, добавляю ли я имя или фамилию первым. Поэтому я хотел бы удалить часть "XS:sequence", но я не уверен, что я должен заменить ее.
Если это невозможно - тогда почему это невозможно?Обновление: Если я изменю его с помощью , я получу эту ошибку: "{max происходит} всех {сторон} группы all должно быть 0 или 1".
3 ответа:
Используйте
<xs:all>
вместо<xs:sequence>
:<xs:element name="employee"> <xs:complexType> <xs:all> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:all> </xs:complexType> </xs:element>
Смотрите страницу W3Schools на индикаторах схемы:
Все Индикаторы
Индикатор
<all>
указывает, что дочерние элементы могут появляться в любом порядок, и чтобы каждый дочерний элемент должно произойти только один раз:
Это позволит вам иметь элементы в любой последовательности и количестве.<xs:element name="employee"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="firstname" type="xs:string" /> <xs:element name="lastname" type="xs:string" /> </xs:choice> </xs:complexType> </xs:element>