Элемент 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>