Pfadausdrücke (XQuery)

Gilt für:SQL Server

Über XQuery-Pfadausdrücke werden in einem Dokument enthaltene Knoten gesucht, z. B. Element-, Attribut- und Textknoten. Das Ergebnis eines Pfadausdrucks erscheint immer in der Dokumentreihenfolge ohne Duplikatknoten in der Ergebnissequenz. Beim Angeben eines Pfads können Sie entweder die vollständige oder die abgekürzte Syntax verwenden. Die folgenden Informationen beziehen sich auf die ungekürzte Syntax. Die abgekürzte Syntax wird anschließend beschrieben.

Hinweis

Da die Beispielabfragen in diesem Thema für die Xml-TypspaltenCatalogDescription und Instructions angegeben werden, sollten Sie sich in der ProductModel-Tabelle mit dem Inhalt und der Struktur der in diesen Spalten gespeicherten XML-Dokumente vertraut machen.

Ein Pfadausdruck kann relativ oder absolut sein. Beide sind im Folgenden beschrieben:

  • Ein relativer Pfadausdruck besteht aus einem oder mehreren Schritten, die durch einen oder zwei Schrägstriche (/ oder //) getrennt sind. Beispiel: child::Features ist ein relativer Pfadausdruck, in dem Child nur auf die untergeordneten Knoten des Kontextknotens verweist. Dies ist der Knoten der gegenwärtig verarbeitet wird. Der Ausdruck ruft die untergeordneten Elemente des <Features-Elementknotens> des Kontextknotens ab.

  • Ein absoluter Pfadausdruck beginnt mit einem oder zwei Schrägstrichen (/ oder //), auf die ein optionaler relativer Pfad folgt. Beispiel: Der erste Schrägstrich des Ausdrucks /child::ProductDescription gibt an, dass es sich um einen absoluten Pfadausdruck handelt. Da ein Schrägstrich am Anfang eines Ausdrucks den Dokumentstammknoten des Kontextknotens zurückgibt, gibt der Ausdruck alle <untergeordneten ProductDescription-Elementknoten> des Dokumentstamms zurück.

    Wenn ein absoluter Pfad mit einem einzelnen Schrägstrich beginnt, kann darauf ein relativer Pfad folgen. Wenn Sie nur einen Schrägstrich angeben, gibt der Ausdruck den Stammknoten des Kontextknotens zurück. Bei einem XML-Datentyp ist dies der Dokumentknoten.

Ein typischer Pfadausdruck besteht aus Schritten. Der absolute Pfadausdruck /child::ProductDescription/child::Summary, enthält z. B. zwei Schritte, die durch einen Schrägstrich getrennt sind.

  • Im ersten Schritt werden die <untergeordneten Knoten des ProductDescription-Elements> des Dokumentstamms abgerufen.

  • Im zweiten Schritt werden die untergeordneten Knoten des <Summary-Elements> für jeden abgerufenen <ProductDescription-Elementknoten> abgerufen, der wiederum zum Kontextknoten wird.

Bei einem Schritt eines Pfadausdrucks kann es sich um einen Achsen- oder um einen allgemeinen Schritt handeln.

Achsenschritt

Ein Achsenschritt in einem Pfadausdruck besteht aus den folgenden Teilen.

Achse
Definiert die Bewegungsrichtung. Ein Achsenschritt in einem Pfadausdruck beginnt beim Kontextknoten und navigiert zu den in der durch die Achse angegebenen Richtung erreichbaren Knoten.

Knotentest
Gibt an, welcher Knotentyp oder welche Knotennamen ausgewählt werden sollen.

Keines oder beliebig viele optionale Prädikate
Filtert die Knoten, indem einige ausgewählt und andere verworfen werden.

In den folgenden Beispielen wird ein Achsenschritt in den Pfadausdrücken verwendet:

  • Der absolute Pfadausdruck /child::ProductDescription enthält nur einen Schritt. Er gibt eine Achse (child) und einen Knotentest (ProductDescription) an.

  • Der relative Pfadausdruck child::ProductDescription/child::Features enthält zwei durch einen Schrägstrich getrennte Schritte. Beide Schritte geben eine untergeordnete Achse an. ProductDescription und Features sind Knotentests.

  • Der relative Pfadausdruck , enthält zwei Schritte, child::root/child::Location[attribute::LocationID=10]die durch einen Schrägstrich getrennt sind. Der erste Schritt gibt eine Achse (child) und einen Knotentest (root) an. Der zweite Schritt gibt alle drei Komponenten eines Achsenschritts an: eine Achse (child), einen Knotentest (Location) und ein Prädikat ([attribute::LocationID=10]).

Weitere Informationen zu den Komponenten eines Achsenschritts finden Sie unter Angeben der Achse in einem Pfadausdrucksschritt, Angeben des Knotentests in einem Pfadausdrucksschritt und Angeben von Prädikaten in einem Pfadausdrucksschritt.

Allgemeiner Schritt

Ein allgemeiner Schritt ist lediglich ein Ausdruck, der eine Knotensequenz auswerten muss.

Die XQuery-Implementierung in SQL Server unterstützt einen allgemeinen Schritt als ersten Schritt eines Pfadausdrucks. In den folgenden Beispielen werden Pfadausdrücke mit allgemeinen Schritten verwendet:

(/a, /b)/c  
id(/a/b)  

Weitere Informationen zur id-Funktion finden Sie unter id-Funktion (XQuery).

In diesem Abschnitt

Angeben einer Achse in einem Pfadausdrucksschritt
Beschreibt das Arbeiten mit dem Achsenschritt in einem Pfadausdruck.

Angeben eines Knotentests in einem Pfadausdrucksschritt
Beschreibt das Arbeiten mit Knotentests in einem Pfadausdruck.

Angeben von Prädikaten in einem Pfadausdrucksschritt
Beschreibt das Arbeiten mit Prädikaten in einem Pfadausdruck.

Verwenden abgekürzter Syntax in einem Pfadausdruck
Beschreibt das Arbeiten mit einer abgekürzten Syntax in einem Pfadausdruck.