複雜元素是一個XML元素,可以包含其他元素和/或屬性。 我們可以用兩種方式創建一個複雜的元素 -
- 定義複雜類型,使用
type
屬性創建元素。 - 通過命名直接定義複雜類型。
定義複雜類型,然後使用type
屬性創建元素。如下所示 -
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType' />
通過命名直接定義複雜類型。如下所示 -
<xs:element name = "student">
<xs:complexType>
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element>
以下是XSD支持的複雜類型列表 -
序號 | 複雜類型 | 描述 |
---|---|---|
1 | 空元素 | 複雜類型元素只能包含屬性但不能包含內容。 |
2 | 純元素 | 只有元素複雜類型元素只能包含元素 |
3 | 純文本 | 純文本複雜類型元素只能包含屬性和文本。 |
4 | 混合型 | 混合複雜類型元素可以包含元素,屬性和文本。 |
5 | 指示符 | 指示符控制元素在XML文檔中的組織方式。 |
6 | any | <any> 元素用於未由架構定義的元素 |
7 | anyAttribute | <anyAttribute> 屬性用於未由架構定義的屬性。 |