共用方式為


用來管理資料庫中 XML 結構描述集合的 DDL

如<管理伺服器上的 XML 結構描述集合>主題中所述,您可以在資料庫中建立 XML 結構描述集合,然後將它們與 xml 類型的變數和資料行產生關聯。為了管理資料庫中的結構描述集合,SQL Server 提供了下列 DDL 陳述式:

若要使用 XML 結構描述集合及其包含的結構描述,您必須先使用 CREATE XML SCHEMA COLLECTION 陳述式來建立集合和結構描述。在建立結構描述集合之後,您就可以建立 xml 類型的變數和資料行,並將結構描述集合與它們產生關聯。請注意,建立結構描述集合之後,各種結構描述元件會儲存在中繼資料內。您也可以使用 ALTER XML SCHEMA COLLECTION 將更多元件加入現有的結構描述,或將新的結構描述加入現有的集合。

若要卸除結構描述集合,請使用 DROP XML SCHEMA COLLECTION 陳述式。這會卸除集合中包含的所有結構描述,並移除集合物件。請注意,必須符合 DROP XML SCHEMA COLLECTION 中描述的條件,才能卸除結構描述集合。

了解結構描述元件

當您使用 CREATE XML SCHEMA COLLECTION 陳述式時,會將各種結構描述元件匯入資料庫中。結構描述元件包括結構描述元素、屬性和類型定義。當您使用 DROP XML SCHEMA COLLECTION 陳述式時,整個集合都會移除。

CREATE XML SCHEMA COLLECTION 會將結構描述元件儲存到各種系統資料表中。

例如,請考慮下列結構描述:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="uri:Cust_Orders2"
            xmlns="uri:Cust_Orders2" >
  <xsd:attribute name="SomeAttribute" type="xsd:int" />
  <xsd:complexType name="SomeType" />
  <xsd:complexType name="OrderType" >
    <xsd:sequence>
      <xsd:element name="OrderDate" type="xsd:date" />
      <xsd:element name="RequiredDate" type="xsd:date" />
      <xsd:element name="ShippedDate" type="xsd:date" />
    </xsd:sequence>
    <xsd:attribute name="OrderID" type="xsd:ID" />
    <xsd:attribute name="CustomerID"  />
    <xsd:attribute name="EmployeeID"  />
  </xsd:complexType>
  <xsd:complexType name="CustomerType" >
     <xsd:sequence>
        <xsd:element name="Order" type="OrderType"
                     maxOccurs="unbounded" />
       </xsd:sequence>
      <xsd:attribute name="CustomerID" type="xsd:string" />
      <xsd:attribute name="OrderIDList" type="xsd:IDREFS" />
  </xsd:complexType>
  <xsd:element name="Customer" type="CustomerType" />
</xsd:schema>

以上的結構描述顯示可儲存於資料庫的不同類型元件,這些元件包括 SomeAttributeSomeTypeOrderTypeCustomerTypeCustomerOrderCustomerIDOrderIDOrderDateRequiredDateShippedDate

元件種類

儲存在資料庫中的「結構描述」元件可分成下列類別:

  • ELEMENT
  • ATTRIBUTE
  • TYPE (適用於簡單或複雜類型)
  • ATTRIBUTEGROUP
  • MODELGROUP

以下是元件和特定類別的關聯性:

  • SomeAttribute 是 ATTRIBUTE 種類的元件。
  • SomeTypeOrderTypeCustomerType 是 TYPE 種類的元件。
  • Customer 是 ELEMENT 種類的元件。

當您將結構描述匯入資料庫後,SQL Server 並不會儲存結構描述本身。不過,SQL Server 會儲存各種個別的元件。也就是說,並未儲存 <Schema> 標記,只是保留定義於其中的元件。所有的結構描述元素都沒有保留。如果 <Schema> 標記包含指定其元件預設行為的屬性,則這些屬性會在匯入程序期間移到標記內的結構描述元件,如下表所示。

屬性名稱 行為

attributeFormDefault

form 屬性會套用到結構描述中還沒有出現此屬性的所有屬性宣告上,而且其值會設定為 attributeFormDefault 屬性的值。

elementFormDefault

form 屬性會套用到結構描述中還沒有出現此屬性的所有元素宣告上,而且其值會設定為 elementFormDefault 屬性的值。

blockDefault

block 屬性會套用到還沒有出現此屬性的所有元素宣告和類型定義上,而且其值會設定為 blockDefault 屬性的值。

finalDefault

final 屬性會套用到還沒有出現此屬性的所有元素宣告和類型定義上,而且其值會設定為 finalDefault 屬性的值。

targetNamespace

隸屬於目標命名空間之元件的相關資訊會儲存在中繼資料內。

請參閱

參考

在伺服器上使用 XML 結構描述集合的指導方針與限制
XML 結構描述集合上的權限
管理伺服器上的 XML 結構描述集合

概念

XML 資料類型
具類型與不具類型的 XML

說明及資訊

取得 SQL Server 2005 協助