Сложный текст только элемент может содержать текст и атрибуты.
Сложные только для текста элементы
Этот тип содержит только простое содержимое (text and attributes) , поэтому мы добавляем элемент simpleContent вокруг содержимого. При использовании простого содержимого, необходимо определить расширение ИЛИ ограничение внутри элемента simpleContent, как это:
<xs:element name="somename">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="basetype">
....
....
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
OR
<xs:element name="somename">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="basetype">
....
....
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Tip: Используйте элемент расширения / ограничения для расширения или ограничения базового простого типа для элемента.
Ниже приведен пример XML - элемента, "shoesize" , который содержит только текст:
<shoesize country="france">35</shoesize>
В следующем примере объявляется ComplexType, "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 элемент имя, и пусть "shoesize" элемента имеют атрибут типа , который ссылается на имя ComplexType (если вы используете этот метод, несколько элементов , может относиться к тому же сложного типа):
<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>