XSD Text-Only Elements
一个复杂的纯文本元素可以包含文本和属性。
复杂纯文本元素
此类型仅包含简单内容(文本和属性),因此我们在内容周围添加了 simpleContent 元素。使用 simpleContent 时,您必须在 simpleContent 元素内定义一个 extension 或 restriction,如下所示:
<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>
提示:使用 extension/restriction 元素来扩展或限制元素的基元类型。
以下是一个 XML 元素 "shoesize" 的示例,它只包含文本:
<shoesize country="france">35</shoesize>
下面的示例声明了一个名为 "shoesize" 的 complexType。内容定义为整数值,并且 "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" 元素有一个 type 属性,指向 complexType 的名称(如果使用此方法,可以有多个元素引用同一个 complex type)。
<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>