XPath 範例的範例註解式 XSD 結構描述 (SQLXML 4.0)
本章節的範例 XPath 查詢會參考對應結構描述。此對應結構描述是註解式 XML 結構描述 (XSD) 檔案。如需有關對應結構描述的詳細資訊,請參閱<註解式 XSD 結構描述簡介 (SQLXML 4.0)>。
[!附註]
在您可以執行範例 XPath 查詢以前,您必須已經安裝 AdventureWorks 範例資料庫。如需詳細資訊,請參閱<AdventureWorks 範例資料庫>。
以下是針對註解式 XSD 結構描述執行 XPath 查詢所需的處理:
建立包含 XPath 查詢的範本。在此範本中,您會指定 XPath 查詢執行時所要針對的對應結構描述。在此案例中,對應結構描述必須儲存在與範本檔案相關的目錄中 (或是它的一個子目錄,其中會將相對路徑指定為範本中的 mapping-schema 屬性值)。
建立一個將 SQLXML 延伸模組用於 ADO 來執行查詢的測試應用程式。如需詳細資訊,請參閱<使用 ADO 執行 SQLXML 4.0 查詢>。
在本章節的所有範例中,為了加以說明,將會在範本中指定 XPath 查詢,而且會使用 ADO 來執行此範本。因此,您必須使用下列的對應結構描述檔案 SampleSchema1.xml。將這個檔案儲存在您存放範本的目錄中。
範例註解式 XSD 結構描述 (SampleSchema1.xml)
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="CustOrders"
parent="Sales.Customer"
parent-key="CustomerID"
child="Sales.SalesOrderHeader"
child-key="CustomerID" />
<sql:relationship name="OrderOrderDetail"
parent="Sales.SalesOrderHeader"
parent-key="SalesOrderID"
child="Sales.SalesOrderDetail"
child-key="SalesOrderID" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Customer" sql:relation="Sales.Customer" type="CustomerType" />
<xsd:complexType name="CustomerType" >
<xsd:sequence>
<xsd:element name="Order"
sql:relation="Sales.SalesOrderHeader"
sql:relationship="CustOrders" />
</xsd:sequence>
<xsd:attribute name="CustomerID" type="xsd:ID"/>
<xsd:attribute name="TerritoryID"/>
<xsd:attribute name="AccountNumber"/>
<xsd:attribute name="CustomerType"/>
<xsd:attribute name="Orders" type="xsd:IDREFS" sql:prefix="Ord-"/>
</xsd:complexType>
<xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" type="OrderType"/>
<xsd:complexType name="OrderType">
<xsd:sequence>
<xsd:element name="OrderDetail"
sql:relation="Sales.SalesOrderDetail"
sql:relationship="OrderOrderDetail" />
</xsd:sequence>
<xsd:attribute name="SalesOrderID" type="xsd:ID" sql:prefix="Ord-"/>
<xsd:attribute name="SalesPersonID"/>
<xsd:attribute name="OrderDate"/>
<xsd:attribute name="DueDate"/>
<xsd:attribute name="ShipDate"/>
</xsd:complexType>
<xsd:element name="OrderDetail" sql:relation="Sales.SalesOrderDetail" type="OrderDetailType"/>
<xsd:complexType name="OrderDetailType">
<xsd:attribute name="ProductID" type="xsd:IDREF"/>
<xsd:attribute name="UnitPrice"/>
<xsd:attribute name="OrderQty"/>
<xsd:attribute name="UnitPriceDiscount"/>
</xsd:complexType>
<xsd:element name="UnitPriceDiscount" sql:relation="Sales.SalesOrderDetail" type="DiscountType"/>
<xsd:complexType name="DiscountType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="Contact" sql:relation="Person.Contact" type="ContactType"/>
<xsd:complexType name="ContactType">
<xsd:attribute name="ContactID"/>
<xsd:attribute name="LastName"/>
<xsd:attribute name="FirstName"/>
<xsd:attribute name="Title"/>
</xsd:complexType>
</xsd:schema>