復(fù)合元素包含了其他的元素及/或?qū)傩浴?/strong>
復(fù)合元素指包含其他元素及/或?qū)傩缘?XML 元素。
注釋:上述元素均可包含屬性!
復(fù)合元素,"product",是空的:
<product pid="1345"/>
復(fù)合元素,"employee",僅包含其他元素:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
復(fù)合元素,"food",僅包含文本:
<food type="dessert">Ice cream</food>
復(fù)合元素,"description",包含元素和文本:
<description> It happened on <date lang="norwegian">03.03.99</date> .... </description>
請(qǐng)看這個(gè)復(fù)合 XML 元素,"employee",僅包含其他元素:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
1. 通過命名此元素,可直接對(duì)"employee"元素進(jìn)行聲明,就像這樣:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
假如您使用上面所描述的方法,那么僅有 "employee" 可使用所規(guī)定的復(fù)合類型。請(qǐng)注意其子元素,"firstname" 以及 "lastname",被包圍在指示器 <sequence>中。這意味著子元素必須以它們被聲明的次序出現(xiàn)。您會(huì)在 XSD 指示器 這一節(jié)學(xué)習(xí)更多有關(guān)指示器的知識(shí)。
2. "employee" 元素可以使用 type 屬性,這個(gè)屬性的作用是引用要使用的復(fù)合類型的名稱:
<xs:element name="employee"type="personinfo"
/> <xs:complexTypename="personinfo"
> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
如果您使用了上面所描述的方法,那么若干元素均可以使用相同的復(fù)合類型,比如這樣:
<xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType>
您也可以在已有的復(fù)合元素之上以某個(gè)復(fù)合元素為基礎(chǔ),然后添加一些元素,就像這樣:
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<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>
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇