このセクションのサンプル XPath クエリは、マッピング スキーマを参照します。 マッピング スキーマは注釈付き XML スキーマ (XSD) ファイルです。 マッピング スキーマの詳細については、「 注釈付き XSD スキーマの概要 (SQLXML 4.0)」を参照してください。
注釈付き XSD スキーマに対して XPath クエリを実行するには、次のものが必要です。
XPath クエリを含むテンプレートを作成します。 テンプレートでは、XPath クエリを実行するマッピング スキーマを指定します。 この場合、マッピング スキーマは、テンプレート ファイルに関連付けられているディレクトリ (またはそのサブディレクトリの 1 つ(その場合は、テンプレート内の
mapping-schema
属性の値として相対パスが指定されます) に格納する必要があります。ADO 用 SQLXML 拡張機能を使用してクエリを実行するテスト アプリケーションを作成します。 詳細については、「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>