XSD составной тип - только текст

Комплексный элемент, содержащий только текст, может содержать текст и атрибуты.

Комплексный элемент, содержащий только текст

Этот тип содержит только простое содержимое (текст и атрибуты), поэтому мы должны добавить элемент simpleContent к этому содержимому. При использовании простого содержимого我们必须 определить расширение или ограничение внутри элемента simpleContent, как это:

<xs:element name="название_элемента">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="basetype">
        ....
        ....
      </xs:extension>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

или:

<xs:element name="название_элемента">
  <xs:complexType>
    <xs:simpleContent>
      <xs:restriction base="basetype">
        ....
        ....
      </xs:restriction>     
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Совет:Используйте элементы extension или restriction для расширения или ограничения базового простого типа элемента.

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

<shoesize country="france">35</shoesize>

В этом примере объявлен составной тип, содержимое которого определено как целое число, и элемент "shoesize" содержит атрибут "country":

<xs:element name="shoesize">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="country" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

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

<xs:element name="shoesize" type="shoetype"/>
<xs:complexType name="shoetype">
  <xs:simpleContent>
    <xs:extension base="xs:integer">
      <xs:attribute name="country" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>