共用方式為


XSD 元素和屬性對資料表和資料行的預設對應 (SQLXML 4.0)

適用於:SQL ServerAzure SQL Database

根據預設,XSD 註解式結構描述中的複雜類型元素會對應到指定之資料庫中具有相同名稱的資料表 (檢視表),而簡單類型的元素或屬性會對應到資料表中具有相同名稱的資料行。

範例

若要使用下列範例建立工作範例,您必須符合某些需求。 如需詳細資訊,請參閱 執行 SQLXML 範例的需求

A. 指定預設對應

在這個範例的 XDR 結構描述中不會指定任何註解。 < Person.Contact >元素屬於複雜類型,因此預設會對應至 AdventureWorks 資料庫中的 Person.Contact 資料表。 Person.Contact 元素 (ContactID、FirstName、LastName) < 的所有屬性都是簡單類型,且預設會對應至 Person.Contact >資料表中具有相同名稱的資料行。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact" >  
     <xsd:complexType>  
       <xsd:attribute name="ContactID"  type="xsd:string" />   
       <xsd:attribute name="FirstName"   type="xsd:string" />   
       <xsd:attribute name="LastName"    type="xsd:string" />   
     </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
針對結構描述測試範例 XPath 查詢
  1. 複製上述的結構描述程式碼,並將其貼到文字檔中。 將檔案儲存為 MySchema.xml。

  2. 複製下列範本,並將其貼到文字檔中。 將檔案儲存為 MySchemaT.xml,並放在與儲存 MySchema.xml 相同的目錄中。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchema.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    針對對應結構描述 (MySchema.xml) 指定的目錄路徑,相對於儲存範本的目錄。 您也可以指定絕對路徑,例如:

    mapping-schema="C:\SqlXmlTest\MySchema.xml"  
    
  3. 建立和使用 SQLXML 4.0 測試指令碼 (Sqlxml4test.vbs) 以執行範本。

    如需詳細資訊,請參閱 使用 ADO 執行 SQLXML 4.0 查詢

部分結果集如下:

<?xml version="1.0" encoding="UTF-8" ?>  
<ROOT>  
  <Person.Contact ContactID="1" FirstName="Gustavo" LastName="Achong"/>  
  <Person.Contact ContactID="2" FirstName="Catherine" LastName="Abel"/>  
   ...  
</ROOT>  

B. 將 XML 元素對應至資料庫資料行

在此範例中,因為沒有使用註解,因此也會發生預設對應。 < Person.Contact >元素屬於複雜類型,並對應至資料庫中同名的資料表。 < FirstName 和 LastName >> 和 <EmployeeID屬性的專案是簡單類型,因此會對應至具有相同名稱的資料行。 此範例與先前範例唯一的差別在於,這些元素用於對應 FirstName 和 LastName 欄位。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Person.Contact">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="FirstName" type="xsd:string" />   
        <xsd:element name="LastName" type="xsd:string" />   
      </xsd:sequence>  
      <xsd:attribute name="ContactID" type="xsd:integer" />   
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  
針對結構描述測試範例 XPath 查詢
  1. 複製上述的結構描述程式碼,並將其貼到文字檔中。 然後將檔案儲存為 MySchemaElements.xml。

  2. 建立下列範本 (MySchemaElementsT.xml),並將其儲存在先前步驟中所使用的相同目錄中。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaElements.xml">  
            /Person.Contact  
        </sql:xpath-query>  
    </ROOT>  
    

    針對對應結構描述指定的目錄路徑是儲存範本之目錄的相對路徑。 您也可以指定絕對路徑,例如:

    mapping-schema="C:\SqlXmlTest\MySchemaElements.xml"  
    
  3. 建立和使用 SQLXML 4.0 測試指令碼 (Sqlxml4test.vbs) 以執行範本。

    如需詳細資訊,請參閱 使用 ADO 執行 SQLXML 4.0 查詢

部分結果集如下:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Person.Contact ContactID="1">  
    <FirstName>Gustavo</FirstName>  
    <LastName>Achong</LastName>  
  </Person.Contact>  
   ...  
</ROOT>  

C. 將 XML 元素對應至 XML 資料類型資料行

在此範例中,因為沒有使用註解,因此也會發生預設對應。 < Production.ProductModel >元素屬於複雜類型,並對應至資料庫中具有相同名稱的資料表。 ProductModelID屬性屬於簡單類型,因此會對應至具有相同名稱的資料行。 這和先前範例的唯一差異在於< Instructions >元素會對應至使用xml資料類型的資料行,方法是使用xsd:anyType類型。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">  
  <xsd:element name="Production.ProductModel">  
    <xsd:complexType>  
      <xsd:sequence>  
        <xsd:element name="Instructions" type="xsd:anyType" />   
      </xsd:sequence>  
      <xsd:attribute name="ProductModelID" type="xsd:integer" />   
    </xsd:complexType>  
  </xsd:element>  
</xsd:schema>  

xml資料類型是在 2005 SQL Server 2005 (9.x) 中引進。

針對結構描述測試範例 XPath 查詢
  1. 複製上述的結構描述程式碼,並將其貼到文字檔中。 將檔案儲存為 MySchemaXmlAnyElements.xml。

  2. 建立下列範本 (MySchemaXmlAnyElementsT.xml),並將其儲存在先前步驟中所使用的相同目錄中。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
        <sql:xpath-query mapping-schema="MySchemaXmlAnyElements.xml">  
            /Production.ProductModel[@ProductModelID=7]  
        </sql:xpath-query>  
    </ROOT>  
    

    針對對應結構描述指定的目錄路徑是儲存範本之目錄的相對路徑。 您也可以指定絕對路徑,例如:

    mapping-schema="C:\SqlXmlTest\MySchemaXmlAnyElements.xml"  
    
  3. 建立和使用 SQLXML 4.0 測試指令碼 (Sqlxml4test.vbs) 以執行範本。

    如需詳細資訊,請參閱 使用 ADO 執行 SQLXML 4.0 查詢

部分結果集如下:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Production.ProductModel ProductModelID="7">  
    <Instructions>  
      <root xmlns="http:  
//schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstru  
ctions">  
...  
      </root>  
    <Instructions>  
  </Production.ProductModel>  
</ROOT>  

另請參閱

註解式結構描述安全性考量 (SQLXML 4.0)
XML 資料 (SQL Server)
xml 資料類型在 SQLXML 4.0 中的支援