элемент choice в XML Schema

определение и использование

Элемент choice в XML Schema позволяет включать только один из элементов, объявленных в <choice>, в содержащем элементе.

информация о элементе

количество的出现次数 в элементах group и complexType появляется один раз; в других случаях ограничений нет.
родительский элемент group, choice, sequence, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)
содержимое annotation, any, choice, element, group, sequence

грамматика

<choice
id=ID
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
любые атрибуты
>
(annotation?,(element|group|choice|sequence|any)*)
</choice>

(? символ объявлен в элементе choice, элемент может появляться 0 или 1 раз, * символ объявлен элемент, который может появляться 0 или несколько раз).

атрибуты описание
id опционально. Определяет уникальный ID этого элемента.
maxOccurs опционально. Определяет максимальное количество的出现次数 choice элемента в родительском элементе. Значение может быть целым числом, большим или равным нулю. Если не хотите устанавливать ограничение на максимальное количество, используйте строку "unbounded". По умолчанию значение равно 1.
minOccurs опционально. Определяет минимальное количество的出现次数 choice элемента в родительском элементе. Значение может быть целым числом, большим или равным нулю. Если нужно указать, что этот any набор является опциональным, установите этот атрибут в ноль. По умолчанию значение равно 1.
любые атрибуты Опционально. Определяет любые другие атрибуты с non-schema命名空间.

Пример

<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>

Пример выше определяет, что элемент "person" должен содержать элемент "employee" или элемент "member".