XSD элемент all

Элемент all устанавливает, что дочерние элементы могут появляться в любом порядке и что каждый дочерний элемент может быть определен ноль или больше раз.

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

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


<all
 id=идентификатор
 maxOccurs=1
 minOccurs=0 | 1
 любые атрибуты
 >

 (annotation?, element*)

</all>

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

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

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

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

Пример №1
В следующем примере декларируется, что элементы "firstname" и "lastname" могут появляться в любом порядке, но оба эти элемента ДОЛЖНЫ появляться один и только один раз!


<xs:element name="person">
   <xs:complexType>
     <xs:all>
       <xs:element name="firstname" type="xs:string"/>
       <xs:element name="lastname" type="xs:string"/>
     </xs:all>
   </xs:complexType>
</xs:element>

Пример №2
В следующем примере декларируется, что элементы "firstname" и "lastname" могут появляться в любом порядке, и при этом оба эти элемента МОГУТ появляться ноль или один раз!


<xs:element name="person">
   <xs:complexType>
     <xs:all minOccurs="0">
       <xs:element name="firstname" type="xs:string"/>
       <xs:element name="lastname" type="xs:string"/>
     </xs:all>
   </xs:complexType>
</xs:element>