复杂的纯文本元素可以包含文本和属性。
复杂文本仅元素
这种类型只包含简单内容(text and attributes) ,因此我们添加一个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:使用扩展/ restriction元素扩展或限制基础简单类型的元素。
这里是一个XML元素的一个例子, "shoesize"它包含纯文本:
<shoesize country="france">35</shoesize>
下面的示例声明一个复杂类型, "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"元件有指复杂类型的名称(如果你使用这种方法,几个元素可以参考同一复杂类型)一个类型的属性:
<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>