批註式 XSD 架構簡介 (SQLXML 4.0)

適用於:SQL ServerAzure SQL Database

您可以使用 XML 架構定義 (XSD) 語言來建立關聯式資料的 XML 檢視。 接著可以使用 XML 路徑語言 (XPath) 查詢來查詢這些檢視。 這類似于使用 CREATE VIEW 語句建立檢視,然後針對檢視指定 SQL 查詢。

XML 架構描述 XML 檔的結構,也會描述檔中資料的各種條件約束。 當您針對架構指定 XPath 查詢時,傳回的 XML 檔結構取決於執行 XPath 查詢的架構。

在 XSD 架構中 ,xsd:schema > 元素會括住整個架構;所有元素宣告都必須包含在 xsd:schema > 元素內 < 。 < 您可以描述定義架構所在命名空間的屬性,以及架構中使用的命名空間做為 xsd:schema > 元素的屬性 < 。

有效的 XSD 架構必須包含 < 定義為下列的 xsd:schema > 元素:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
<!-- additional schema definitions here -->  
</xsd:schema>  

< xsd:schema > 元素衍生自 的 http://www.w3.org/2001/XMLSchema XML 架構命名空間規格。

XSD 架構的注釋

您可以使用 XSD 架構搭配注釋來描述資料庫對應、查詢資料庫,並以 XML 檔的形式傳回結果。 提供批註,以將 XSD 架構對應至資料庫資料表和資料行。 您可以針對 XSD 架構所建立的 XML 檢視來指定 XPath 查詢,並以 XML 的形式取得結果。

注意

在 Microsoft SQLXML 4.0 中,XSD 架構語言支援在 SQL Server 2000 (8.x) 中使用批註化 XML-Data Reduced (XDR) 架構語言引進的批註。 批註式 XDR 在 SQLXML 4.0 中已被取代。

在關係資料庫的內容中,將任意 XSD 架構對應至關聯式存放區很有用。 達成此目的的其中一種方法是標注 XSD 架構。 具有批註的 XSD 架構稱為 對應架構 ,其提供 XML 資料如何對應至關聯式存放區的相關資訊。 對應架構實際上就是關聯式資料的 XML 檢視。 這些對應可用來擷取關聯式資料做為 XML 檔。

注釋的命名空間

在 XSD 架構中,批註是使用命名空間 urn:schemas-microsoft-com:mapping-schema 來指定。 如下列範例所示,指定命名空間最簡單的方式是在 xsd:schema > 標記中 < 指定命名空間。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
...  
</xsd:schema>  

使用的命名空間前置詞是任意的。 在本檔中, sql 前置詞是用來表示注釋命名空間,以及區分此命名空間中的批註與其他命名空間中的批註。

批註式 XSD 架構的範例

在下列範例中,XSD 架構是由 Person.Contact 元素所組成 < 。 > < Employee > 元素具有 ContactID 屬性和 < FirstName > 和 < LastName > 子項目:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
  <xsd:element name="Contact" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="FName"    
                     type="xsd:string" />   
        <xsd:element name="LName"  
                     type="xsd:string" />  
     </xsd:sequence>  
        <xsd:attribute name="ConID" type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

批註會新增至這個 XSD 架構,以將其元素和屬性對應至資料庫資料表和資料行:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Contact" sql:relation="Person.Contact" >  
   <xsd:complexType>  
     <xsd:sequence>  
        <xsd:element name="FName"  
                     sql:field="FirstName"   
                     type="xsd:string" />   
        <xsd:element name="LName"    
                     sql:field="LastName"    
                     type="xsd:string" />  
     </xsd:sequence>  
        <xsd:attribute name="ConID"   
                       sql:field="ContactID"   
                       type="xsd:integer" />  
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

在對應架構中, < Contact > 元素會使用 sql:relation 批註,對應至範例 AdventureWorks2022 資料庫中的 Person.Contact 資料表。 ConID、FName 和 LName 屬性會使用 sql:field 批註,對應至 Person.Contact 資料表中的 ContactID、FirstName 和 LastName 資料行。

這個標注的 XSD 架構會提供關聯式資料的 XML 檢視。 您可以使用 XPath 語言來查詢此 XML 檢視。 XPath 查詢會傳回 XML 檔作為結果,而不是 SQL 查詢所傳回的資料列集。

注意

在對應架構中,指定關聯式值(例如資料表名稱和資料行名稱)的區分大小寫取決於 SQL Server 是否使用區分大小寫的定序設定。 如需詳細資訊,請參閱定序和 Unicode 支援

其他資源

您可以在下列網站上找到 XML 架構定義語言 (XSD)、XML 路徑語言 (XPath) 和可延伸樣式表單語言轉換 (XSLT) 的詳細資訊:

另請參閱

批註式架構安全性考慮 (SQLXML 4.0)
批註式 XDR 架構 (在 SQLXML 4.0 中已被取代)