クエリでの注釈付き XDR スキーマの使用 (SQLXML 4.0 では非推奨)
重要 |
---|
このトピックは、レガシ アプリケーションの参照用として用意されています。この機能は今後更新されません。新しい開発作業では、この機能の使用を避け、注釈付き XSD スキーマを使用して XML ビューを作成してください。詳細については、「注釈付き XSD スキーマの概要 (SQLXML 4.0)」を参照してください。既存の注釈付き XDR スキーマは、XSD スキーマに変換できます。詳細については、「注釈付き XDR スキーマから同等の XSD スキーマへの変換 (SQLXML 4.0)」を参照してください。 |
注意 |
---|
次の例を使用した実際のサンプルを作成するには、特定の条件を満たす必要があります。詳細については、「SQLXML のサンプル実行のための必要条件」を参照してください。 |
データベースからデータを取得するため、注釈付きスキーマに対してクエリを指定するには、次の方法があります。
XDR スキーマに対して、テンプレートに XPath クエリを指定する
<sql:xpath-query> 要素を使用すると、注釈付きスキーマで定義されている XML ビューに対して XPath クエリを指定できます。<sql:xpath-query> 要素の mapping-schema 属性を使用して、XPath クエリの実行対象となる注釈付きスキーマを指定できます。
テンプレートは、1 つ以上のクエリを含む有効な XML ドキュメントです。FOR XML クエリと XPath クエリでは、ドキュメント フラグメントが返されますが、単一の最上位要素を指定するときにはテンプレートを使用できます。テンプレートは、ドキュメント フラグメントのコンテナとして機能します。
このトピックの例では、テンプレートを使用して注釈付きスキーマに対する XPath クエリを指定し、データベースからデータを取得します。
インライン マッピング スキーマを使用する
注釈付きスキーマは、テンプレートに直接組み込むことができます。インライン注釈付きスキーマを指定するには、sql:is-mapping-schema 注釈を使用します。sql:is-mapping-schema はブール値 (0 = FALSE、1 = TRUE) をとり、テンプレート内の <Schema> 要素に指定します。
sql:id 属性を使用して、要素を一意に識別することができます。sql:id は ID 型の属性で、<Schema> 要素に指定します。sql:id に割り当てられた値は、<sql:xpath-query> 内の mapping-schema 属性により、インライン注釈付きスキーマの参照に使用されます。
たとえば、次のテンプレートにはインライン注釈付きスキーマが指定されています。
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <Schema xmlns="urn:schemas-microsoft-com:xml-data" sql:id="MyMappingSchema" sql:is-mapping-schema="1"> <ElementType name="Person.Contact" > <AttributeType name="ContactID" /> <AttributeType name="FirstName" /> <AttributeType name="LastName" /> <attribute type="ContactID" /> <attribute type="FirstName" /> <attribute type="LastName" /> </ElementType> </Schema> <sql:xpath-query mapping-schema="#MyMappingSchema"> Person.Contact[@ContactID < 4] </sql:xpath-query> </ROOT>
ここでは説明のため、このテンプレートをファイル InlineSchemaTemplate.xml として保存します。