Freigeben über


Angeben von booleschen Operatoren in XPath-Abfragen (SQLXML 4.0)

In den folgenden Beispielen wird gezeigt, wie boolesche Operatoren in XPath-Abfragen angegeben werden. Die XPath-Abfragen in diesem Beispiel werden für das in SampleSchema1.xml enthaltene Zuordnungsschema angegeben. Weitere Informationen zu diesem Beispielschema finden Sie unter Beispiel-XSD-Schema mit Anmerkungen für XPath-Beispiele (SQLXML 4.0).

Beispiele

A. Angeben des booleschen OR-Operators

Diese XPath-Abfrage gibt die untergeordneten <Customer>-Elemente des Kontextknotens zurück, dessen ContactID-Attribut den Wert "13" oder "31" hat:

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

Es kann eine Abkürzung für die attribute-Achse (@) angegeben werden. Da die child-Achse die Standardachse ist, muss sie nicht angegeben werden:

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

Im Prädikat ist attribute die Achse und CustomerID der Knotentest (TRUE, wenn CustomerID ein <attribute>-Knoten ist, weil der <attribute>-Knoten der primäre Knoten für die attribute-Achse ist). Das Prädikat filtert die <Customer>-Elemente und gibt nur die Elemente zurück, die die im Prädikat angegebenen Bedingungen erfüllen.

So testen Sie die XPath-Abfragen mit dem Zuordnungsschema

  1. Kopieren Sie den Beispielschemacode, und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei unter dem Dateinamen SampleSchema1.xml.

  2. Erstellen Sie die folgende Vorlage (BooleanOperatorsA.xml), und speichern Sie sie in dem Verzeichnis, in dem SampleSchema1.xml gespeichert ist.

    <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>
    

    Der für das Zuordnungschema (SampleSchema1.xml) angegebene Verzeichnispfad bezieht sich auf das Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:

    mapping-schema="C:\MyDir\SampleSchema1.xml"
    
  3. Erstellen und verwenden Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs), um die Vorlage auszuführen.

    Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen.

Im Folgenden finden Sie das Resultset der Vorlagenausführung:

<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>