XSD複雜類型

複雜元素是一個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>屬性用於未由架構定義的屬性。