Если у вас ситуация "или - или", ваше решение обычно <xs:choice>
. Используйте атрибуты maxOccurs
и minOccurs
, чтобы ограничить, сколько раз элемент может появляться. Значением по умолчанию для этих атрибутов является «1», которое используется, если вы не добавляете эти атрибуты.
Пример кода для определения элемента <foo>
. Обратите внимание на использование <xs:choice>
и maxOccurs="unbounded"
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<xs:element name="a" type="xs:string />
<xs:element name="b" type="xs:string />
<xs:choice>
<xs:element name="c1" maxOccurs="unbounded" type="xs:string />
<xs:element name="c2" type="xs:string />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>