Teilen über


Angeben von expliziten Konvertierungsfunktionen in XPath-Abfragen (SQLXML 4.0)

Gilt für: SQL Server Azure SQL-Datenbank

In den folgenden Beispielen wird gezeigt, wie explizite Konvertierungsfunktionen 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. Verwenden der expliziten Konvertierungsfunktion number()

Die Funktion "number()" konvertiert ein Argument in eine Zahl.

Wenn der Wert von ContactID nicht numerisch ist, konvertiert die folgende Abfrage ContactID in eine Zahl und vergleicht ihn mit dem Wert 4. Die Abfrage gibt dann alle <untergeordneten Elemente des Employee-Elements> des Kontextknotens mit dem ContactID-Attribut zurück, das einen numerischen Wert von 4 aufweist:

/child::Contact[number(attribute::ContactID)= 4]  

Eine Verknüpfung zur Attributachse (@) kann angegeben werden, und da die untergeordnete Achse die Standardachse ist, kann sie aus der Abfrage weggelassen werden:

/Contact[number(@ContactID) = 4]  

In relationalen Ausdrücken gibt die Abfrage einen Mitarbeiter mit einer ContactID von 4 zurück.

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 (ExplicitConversionA.xml), und speichern Sie sie in dem Verzeichnis, in dem SampleSchema1.xml gespeichert wurde.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        /Contact[number(@ContactID)=4]  
      </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.

Das Resultset für diese Vorlagenausführung sieht so aus:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>  

B. Verwenden der expliziten Konvertierungsfunktion string()

Die String()- Funktion konvertiert ein Argument in eine Zeichenfolge.

Die folgende Abfrage konvertiert ContactID in eine Zeichenfolge und vergleicht sie mit dem Zeichenfolgenwert "4". Die Abfrage gibt alle untergeordneten <Elemente des Employee-Elements> des Kontextknotens mit einer ContactID mit einem Zeichenfolgenwert von "4" zurück:

/child::Contact[string(attribute::ContactID)="4"]  

Eine Verknüpfung zur Attributachse (@) kann angegeben werden, und da die untergeordnete Achse die Standardachse ist, kann sie aus der Abfrage weggelassen werden:

/Contact[string(@ContactID)="4"]  

Diese Abfrage gibt praktisch die gleichen Ergebnisse wie das vorherige Abfragebeispiel zurück, obwohl hier der Zeichenfolgenwert und nicht der numerische Wert (d. h. die Zahl 4) ausgewertet wird.

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 (ExplicitConversionB.xml), und speichern Sie sie in dem Verzeichnis, in dem SampleSchema1.xml gespeichert wurde.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
      <sql:xpath-query mapping-schema="SampleSchema1.xml">  
        Contact[string(@ContactID)="4"]  
      </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 das Resultset der Vorlagenausführung:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />   
</ROOT>