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>屬性用於未由架構定義的屬性。