XSD Только текст


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


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

Этот тип содержит только простое содержимое (текст и атрибуты), поэтому нам нужно добавить элемент simpleContent к этому содержимому. При использовании простого содержимого мы должны определить extension или restriction внутри элемента simpleContent, вот так:

<xs:element name="somename">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="basetype">
        ....
        ....
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Или:

<xs:element name="somename">
  <xs:complexType>
    <xs:simpleContent>
      <xs:restriction base="basetype">
        ....
        ....
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

Совет:Пожалуйста, используйте элемент extension или restriction, чтобы расширить или ограничить базовый простой тип элемента. Вот пример XML-элемента "shoesize", который содержит только текст:

35

В следующем примере объявляется сложный тип, содержимое которого определено как целочисленное значение, а элемент "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>
Другие расширения