1、复合元素:复合元素指包含其他元素及/或属性的 XML 元素。、
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="basetype"> 可用restriction代替
....
....
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="country" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="orderid" type="xs:positiveInteger"/>
<xs:element name="shipdate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
e.g.
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="employee">
</xs:element>
complexType复合元素,sequence按次序出现
or
<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
</xs:complexType>
添加元素:
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="fullpersoninfo">
</xs:complexType>
extension base=""
4种类型的复合元素:
空元素
包含其他元素的元素
仅包含文本的元素
包含元素和文本的元素
2、空元素:空的复合元素不能包含内容,只能含有属性。
<xs:element name="product">
</xs:element>
or
<xs:element name="product">
</xs:element>
<product prodid="1234" />
3、仅含元素
<xs:element name="person">
</xs:element>
4、仅含文本
此类型仅包含简易的内容(文本和属性),因此我们要向此内容添加 simpleContent 元素。当使用简易内容时,我们就必须在 simpleContent 元素内定义扩展或限定。使用 extension 或 restriction 元素来扩展或限制元素的基本简易类型。
<xs:element name="某个名称">
</xs:element>
e.g
<shoesize country="france">35</shoesize>
<xs:element name="shoesize">
</xs:element>
5、混合内容
<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>
<xs:element name="letter">
</xs:element>
mixed设置为true意味字符数据可以出现在letter的子元素之间