Freigeben über


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

In den folgenden Beispielen wird gezeigt, wie boolesche Funktionen in XPath-Abfragen angegeben werden. Die XPath-Abfragen in diesen Beispielen 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).

A. Angeben der booleschen Funktion "not()"

Diese Abfrage gibt alle untergeordneten <Customer>-Elemente des Kontextknotens zurück, die keine untergeordneten <Order>-Elemente enthalten:

/child::Customer[not(child::Order)]

Die child-Achse ist die Standardachse. Somit kann die Abfrage wie folgt angegeben werden:

/Customer[not(Order)]

So testen Sie die XPath-Abfrage 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 (BooleanFunctionsA.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[not(Order)]
    </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 einen Auszug aus dem 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="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" /> 
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" /> 
  ...
</ROOT>

B. Angeben der booleschen Funktionen "true()" und "false()"

Mit dieser Abfrage werden alle untergeordneten <Customer>-Elemente des Kontextknotens zurückgegeben, die keine untergeordneten <Order>-Elemente enthalten. In relationalem Sinn gibt diese Abfrage alle Kunden zurück, die keine Bestellungen aufgegeben haben.

/child::Customer[child::Order=false()]

Die child-Achse ist die Standardachse. Somit kann die Abfrage wie folgt angegeben werden:

/Customer[Order=false()]

Diese Abfrage hat die folgende Entsprechung:

/Customer[not(Order)]

Die folgende Abfrage gibt alle Kunden zurück, die mindestens eine Bestellung aufgegeben haben:

/Customer[Order=true()]

Diese Abfrage hat die folgende Entsprechung:

/Customer[Order]

So testen Sie die XPath-Abfrage 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 (BooleanFunctionsB.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[Order=false()]
      </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 einen Auszug aus dem 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="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" /> 
  <Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" /> 
  ...
</ROOT>