Pfadausdrücke (XQuery)

Über XQuery-Pfadausdrücke werden in einem Dokument enthaltene Knoten gesucht, wie 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.

HinweisHinweis

Da sich die Beispielabfragen auf xml-Typspalten, CatalogDescription und Instructions der ProductModel-Tabelle beziehen, sollten Sie sich mit dem Inhalt und der Struktur der in diesen Spalten gespeicherten XML-Dokumente vertraut machen. Weitere Informationen finden Sie unter Darstellung des xml-Datentyps in der AdventureWorks-Datenbank.

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 den untergeordneten <Features>-Elementknoten 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 Basisverzeichnisknoten des Kontextknotens zurückgibt, gibt der Ausdruck alle untergeordneten <ProductDescription>-Elementknoten des Basisverzeichnisses 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. Beispiel: Der absolute Pfadausdruck /child::ProductDescription/child::Summaryenthält zwei durch einen Schrägstrich getrennte Schritte.

  • Der erste Schritt ruft den untergeordneten <ProductDescription>-Elementknoten des Basisverzeichnisses ab.

  • Der zweite Schritt ruft den untergeordneten <Summary>-Elementknoten jedes gefundenen <ProductDescription>-Elementknotens ab, der 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 (axis)
    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 im Pfadausdruck ein Achsenschritt 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 child::root/child::Location[attribute::LocationID=10] enthält zwei durch einen Schrägstrich getrennte Schritte. 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 einer Achse in einem Pfadausdrucksschritt, Angeben eines 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