Teilen über


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

Gilt für: SQL Server Azure SQL-Datenbank

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. Informationen zu diesem Beispielschema finden Sie unter "Beispiel für XSD-Schema für XPath-Beispiele (SQLXML 4.0)".

Beispiele

A. Angeben der booleschen Funktion "not()"

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

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

Die untergeordnete Achse ist die Standardachse. Daher 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 Zuordnungsschema (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()"

Diese Abfrage gibt alle untergeordneten Elemente des Kundenelements> des Kontextknotens zurück<, der nicht über untergeordnete Order-Elemente> verfügt.< In relationalem Sinn gibt diese Abfrage alle Kunden zurück, die keine Bestellungen aufgegeben haben.

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

Die untergeordnete Achse ist die Standardachse. Daher kann die Abfrage wie folgt angegeben werden:

/Customer[Order=false()]  

Diese Abfrage entspricht folgendem:

/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 Zuordnungsschema (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>