XPath の例で使用する注釈付き XSD スキーマのサンプル (SQLXML 4.0)
適用対象: SQL Server Azure SQL Database
ここで説明するサンプル 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>