次の方法で共有


クエリでの注釈付き 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 &lt; 4]
    </sql:xpath-query>
    </ROOT>
    

    ここでは説明のため、このテンプレートをファイル InlineSchemaTemplate.xml として保存します。