次の方法で共有


XPath クエリでのブール演算子の指定 (SQLXML 4.0)

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

例示

A。 OR ブール演算子を指定する

この XPath クエリは、CustomerID 属性値が 13 または 31 のコンテキスト ノードの <Customer> 要素の子を返します。

/child::Customer[attribute::CustomerID="13" or attribute::CustomerID="31"]  

attribute軸 (@) へのショートカットを指定できます。child軸が既定値であるため、省略できます。

/Customer[@CustomerID="13" or @CustomerID="31"]  

述語では、 attribute は軸であり、 CustomerID はノード テストです ( customerID<attribute> ノードの場合は TRUE、 <attribute> ノードは attribute 軸のプライマリ ノードであるため)。 述語は、<Customer> 要素をフィルター処理し、述語で指定された条件を満たす要素のみを返します。

マッピング スキーマに対して XPath クエリをテストするには
  1. サンプル スキーマ コードをコピーし、テキスト ファイルに貼り付けます。 ファイルを SampleSchema1.xmlとして保存します。

  2. 次のテンプレート (BooleanOperatorsA.xml) を作成し、SampleSchema1.xml が保存されているディレクトリに保存します。

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Customer[@CustomerID="13" or @CustomerID="31"]  
      </sql:xpath-query>  
    </ROOT>  
    

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

    mapping-schema="C:\MyDir\SampleSchema1.xml"  
    
  3. SQLXML 4.0 テスト スクリプト (sqlxml4test.vbs) を作成し、それを使用してテンプレートを実行します。

    詳細については、「ADO を使用した SQLXML 4.0 クエリの実行」を参照してください。

テンプレート実行の結果セットを次に示します。

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />   
  <Customer CustomerID="31" SalesPersonID="286" TerritoryID="7" AccountNumber="31" CustomerType="S" Orders="Ord-51803 Ord-69427">  
    <Order SalesOrderID="Ord-51803" SalesPersonID="286" OrderDate="2003-08-01T00:00:00" DueDate="2003-08-13T00:00:00" ShipDate="2003-08-08T00:00:00">  
      <OrderDetail ProductID="Prod-718" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
      <OrderDetail ProductID="Prod-838" UnitPrice="1059.31" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
    <Order SalesOrderID="Ord-69427" SalesPersonID="286" OrderDate="2004-05-01T00:00:00" DueDate="2004-05-13T00:00:00" ShipDate="2004-05-08T00:00:00">  
      <OrderDetail ProductID="Prod-835" UnitPrice="440.1742" OrderQty="1" UnitPriceDiscount="0" />   
    </Order>  
  </Customer>  
</ROOT>