次の方法で共有


XPath クエリ内での XPath 変数の指定 (SQLXML 4.0)

次の例では、XPath クエリに XPath 変数を指定する方法を示します。これらの例では、SampleSchema1.xml に格納されているマッピング スキーマに対して XPath クエリを指定しています。このサンプル スキーマの詳細については、「XPath の例で使用する注釈付き XSD スキーマのサンプル (SQLXML 4.0)」を参照してください。

A. XPath 変数を使用する

サンプル テンプレートは、2 つの XPath クエリで構成されており、各 XPath クエリは 1 つのパラメータをとります。テンプレートでは、これらのパラメータの既定値も指定しています。パラメータ値が指定されない場合は、既定値が使用されます。既定値をとる 2 つのパラメータは、<sql:header> で指定されています。

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:header>
     <sql:param name='CustomerID'>1</sql:param>
     <sql:param name='ContactID'>1</sql:param> 
  </sql:header>
  <sql:xpath-query mapping-schema="SampleSchema1.xml">
    Customer[@CustomerID=$CustomerID] 
  </sql:xpath-query >
  <sql:xpath-query mapping-schema="SampleSchema1.xml">
   Contact[@ContactID=$ContactID] 
  </sql:xpath-query>
</ROOT>

マッピング スキーマに対して XPath クエリをテストするには

  1. サンプル スキーマ コードをコピーして、テキスト ファイルに貼り付け、SampleSchema1.xml として保存します。

  2. 次のテンプレート (XPathVariables.xml) を作成し、SampleSchema1.xml を保存したディレクトリに保存します。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:header>
         <sql:param name='CustomerID'>1</sql:param>
         <sql:param name='ContactID'>1</sql:param> 
      </sql:header>
      <sql:xpath-query mapping-schema="SampleSchema1.xml">
        Customer[@CustomerID=$CustomerID] 
      </sql:xpath-query >
      <sql:xpath-query mapping-schema="SampleSchema1.xml">
       Contact[@ContactID=$ContactID] 
      </sql:xpath-query>
    </ROOT>
    

    マッピング スキーマ (SampleSchema1.xml) に指定するディレクトリ パスは、テンプレートを保存するディレクトリに対する相対パスです。次のように、絶対パスを指定することもできます。

    mapping-schema="C:\MyDir\SampleSchema1.xml"
    
  3. SQLXML 4.0 テスト スクリプト (sqlxml4test.vbs) を作成し、それを使用してテンプレートを実行します。詳細については、「ADO を使用した、SQLXML 4.0 クエリの実行」を参照してください。

ms171783.note(ja-jp,SQL.90).gifメモ :
この例では、パラメータは渡されていません。このため、パラメータの既定値が使用されます。