XSD элемент choice

Элемент choice позволяет только одному из элементов, определенных в декларации <choice>, присутствовать внутри элемента-контейнера.

  • Родительские элементы: group, choice, sequence, complexType, restriction (simpleContent и complexContent), extension (simpleContent и complexContent)

Синтаксис элемента


<choice
 id=идентификатор
 maxOccurs=целоеЧисло | unbounded
 minOccurs=целоеЧисло
 любые атрибуты
 >

 (annotation?, (element | group | choice | sequence | any)*)

</choice>

(Знак ? указывает на то, что элемент может появляться ноль или один раз, знак * указывает на то, что элемент может появляться ноль, один или больше раз внутри элемента choice.)

Атрибуты элемента

АтрибутОписание
idНе обязательный. Определяет уникальный идентификатор для элемента
maxOccursНе обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово "unbounded". Значение по умолчанию 1
minOccursНе обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1
любые атрибутыНе обязательный. Любые другие атрибуты вне пространства имен схемы

Пример использования

В следующем примере декларируется элемент "person", который должен содержать либо элемент "employee", либо элемент "member".


<xs:element name="person">
   <xs:complexType>
     <xs:choice>
       <xs:element name="employee" type="employee"/>
       <xs:element name="member" type="member"/>
     </xs:choice>
   </xs:complexType>
</xs:element>