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>属性用于未由架构定义的属性。