註解式 XSD 結構描述簡介 (SQLXML 4.0)

適用于:SQL Server (Azure SQL資料庫的所有 支援版本)

您可以使用 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) SQL Server 2000 (8.x) 中加上批註XML-Data減少 (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注釋,對應至範例 AdventureWorks 資料庫中的 Person.Contact 資料表。 ConID、FName 和 LName 屬性會使用 sql:field 注釋,對應至 Person.Contact 資料表中的 ContactID、FirstName 和 LastName 資料行。

此註解式 XSD 結構描述會提供關聯式資料的 XML 檢視。 您可以使用 XPath 語言來查詢這個 XML 檢視。 XPath 查詢會傳回 XML 文件當做結果,而不是 SQL 查詢所傳回的資料列集。

注意

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

其他資源

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

另請參閱

註解式結構描述安全性考量 (SQLXML 4.0)
註解式 XDR 結構描述 (在 SQLXML 4.0 中已被取代)