Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden Beispiele zeigen, wie explizite Konvertierungsfunktionen in XPath-Abfragen angegeben werden. Die XPath-Abfragen in diesen Beispielen werden anhand des Zuordnungsschemas angegeben, das in SampleSchema1.xmlenthalten ist. Informationen zu diesem Beispielschema finden Sie unter "Beispiel für XSD-Schema für XPath-Beispiele (SQLXML 4.0)".
Beispiele
Ein. Verwenden der expliziten Konvertierungsfunktion number()
Die number() Funktion 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 attribute Achse (@) kann angegeben werden, und da die child Achse der Standard 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
Kopieren Sie den Beispielschemacode , und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als SampleSchema1.xml.
Erstellen Sie die folgende Vorlage (ExplicitConversionA.xml) und speichern Sie sie im 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 ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:
mapping-schema="C:\MyDir\SampleSchema1.xml"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 lautet:
<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 attribute Achse (@) kann angegeben werden, und da die child Achse der Standard ist, kann sie aus der Abfrage weggelassen werden:
/Contact[string(@ContactID)="4"]
Funktionell gibt diese Abfrage die gleichen Ergebnisse wie die vorherige Beispielabfrage zurück, die Auswertung erfolgt jedoch anhand eines Zeichenfolgenwerts und nicht des numerischen Werts (d. r. die Zahl 4).
So testen Sie die XPath-Abfrage mit dem Zuordnungsschema
Kopieren Sie den Beispielschemacode , und fügen Sie ihn in eine Textdatei ein. Speichern Sie die Datei als SampleSchema1.xml.
Erstellen Sie die folgende Vorlage (ExplicitConversionB.xml) und speichern Sie sie im 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 ist relativ zum Verzeichnis, in dem die Vorlage gespeichert wird. Es kann auch ein absoluter Pfad angegeben werden. Beispiel:
mapping-schema="C:\MyDir\SampleSchema1.xml"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.
Dies ist der Resultset der Vorlagenausführung:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Contact ContactID="4" LastName="Acevedo" FirstName="Humberto" Title="Sr." />
</ROOT>