Определение XML элементов, содержащих другие элементы

Составной тип "только элементы" описывает XML элементы, которые в качестве содержимого могут иметь только другие элементы.

XML элемент "person", который содержит только элементы:


<person>
   <firstname>John</firstname>
   <lastname>Smith</lastname>
</person>

В XML схеме элемент "person" можно описать следующим образом:


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

Обратите внимание на тег <xs:sequence>. Он означает, что декларированные элементы ("firstname" и "lastname") должны появляться внутри элемента "person" в этом же порядке.

Также можно присвоить имя тегу complexType, а в элементе "person" определить атрибут type, в котором указать это имя (при использовании такого способа, один и тот же составной тип может быть присвоен нескольким элементам):


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