最新的Web開發教程
 

XML架構complexType元素


<XML Schema參考手冊

定義和用法

該complexType元素定義複雜類型。 複雜類型元素是包含其它元素和/或屬性的XML元素。

元素信息

  • Parent elements:元素,重新定義,模式

句法

<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>

(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

</complexType>

(?符號聲明元素可出現零次或一次,*符號聲明元素可出現複雜類型元素中零次或多次)

屬性 描述
id 可選的。 指定一個唯一的ID為元素
name 可選的。 指定名稱為元素
abstract 可選的。 指定是否複雜類型可以在實例文檔中使用。 True表示一個元素不能直接使用這個複雜的類型,但必須使用從該複雜類型派生的複雜類型。 默認為false
mixed 可選的。 指定字符數據是否允許此complexType元素的子元素之間出現。 默認為false。 如果simpleContent的元素是子元素,在mixed屬性是不允許的!
block 可選的。 防止複雜類型具有替代該複雜類型被用來指定類型派生的。 這個值可以包含#all或者是擴展或限制的一個子集的列表:
  • extension - 防止通過擴展派生的複雜類型
  • restriction - 防止通過限制派生的複雜類型
  • #ALL - 防止所有派生的複雜類型
final 可選的。 防止特定類型的這種複雜類型元素的派生。 可以包含#all或者是延長或限制的一個子集的列表。
  • extension - 防止派生通過擴展
  • 限制 - 防止派生通過限制
  • #ALL - 防止所有派生
any attributes 可選的。 規定帶有non-schema命名空間的任何其他屬性。

例1

下面的例子有命名的元素"note"這是一個複雜類型:

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
  <xs:element name="to" type="xs:string"/>
  <xs:element name="from" type="xs:string"/>
  <xs:element name="heading" type="xs:string"/>
  <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

例2

下面的例子有一個複雜類型, "fullpersoninfo"從另一個複雜類型,導出"personinfo"通過擴展繼承的類型與另外三個要素(address, city and country)

<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>

在上面的例子中"employee"元素必須包含在順序下列元素: "firstname""lastname""address""city""country"


<XML Schema參考手冊