Angeben eines Speicherortpfads (SQLXML 4.0)
Gilt für: SQL Server Azure SQL-Datenbank
XPath-Abfragen werden in Form eines Ausdrucks angegeben. Es gibt verschiedene Arten von Ausdrücken. Ein Speicherortpfad ist ein Ausdruck, der relativ zum Kontextknoten einen Satz von Knoten auswählt. Das Ergebnis der Auswertung eines Speicherortpfads ist ein Knotensatz.
Typen von Speicherortpfaden
Ein Speicherortpfad kann eine dieser beiden Formen haben:
Absoluter Standortpfad
Ein absoluter Speicherortpfad beginnt am Stammknoten des Dokuments. Er besteht aus einem Schrägstrich (/) optional gefolgt von einem relativen Speicherortpfad. Der Schrägstrich (/) wählt den Stammknoten des Dokuments aus.
Relativer Speicherortpfad
Ein relativer Speicherortpfad beginnt am Kontextknoten im Dokument. Ein Speicherortpfad besteht aus einer Folge von einem oder mehreren Positionsschritten, die durch einen Schrägstrich (/) getrennt sind. Jeder Schritt wählt relativ zum Kontextknoten einen Satz von Knoten aus. Die Anfangsschrittsequenz wählt relativ zu einem Kontextknoten einen Satz von Knoten aus. Jeder Knoten in diesem Satz wird als Kontextknoten für den folgenden Schritt verwendet. Die Knotensätze, die von diesem Schritt identifiziert werden, werden verknüpft. Beispielsweise wählt child::Order/child::OrderDetail das< untergeordnete Element OrderDetail> des Untergeordneten Elements Order> des <Kontextknotens aus.
Hinweis
In der SQLXML 4.0-Implementierung von XPath beginnt jede XPath-Abfrage am Stammkontext, selbst wenn der XPath nicht ausdrücklich absolut ist. Zum Beispiel wird eine XPath-Abfrage, die mit "Customer" beginnt, als "/Customer" behandelt. In der XPath-Abfrage "Customer[Order]" beginnt "Kunde" im Stammkontext, "Order" beginnt jedoch im Kundenkontext. Weitere Informationen finden Sie in der Einführung in die Verwendung von XPath-Abfragen (SQLXML 4.0).
Positionsschritte
Ein Speicherortpfad (absolut oder relativ) besteht aus Positionsschritten, die drei Teile enthalten:
Achse
Die Achse gibt die Strukturbeziehung zwischen den vom Positionsschritt ausgewählten Knoten und dem Kontextknoten an. Die übergeordneten, untergeordneten, Attribut- und Selbstachsen werden unterstützt. Wenn eine untergeordnete Achse im Positionspfad angegeben ist, sind alle von der Abfrage ausgewählten Knoten die untergeordneten Elemente des Kontextknotens. Wenn eine übergeordnete Achse angegeben ist, ist der ausgewählte Knoten der übergeordnete Knoten des Kontextknotens. Wenn eine Attributachse angegeben wird, sind die ausgewählten Knoten die Attribute des Kontextknotens.
Knotentest
Ein Knotentest gibt den vom Positionsschritt ausgewählten Knotentyp an. Jede Achse (untergeordnetes Element, übergeordnetes Attribut und Selbst) weist einen Prinzipalknotentyp auf. Für die Attributachse ist <der Prinzipalknotentyp Attribut>. Für die übergeordneten, untergeordneten und selbstachsen ist< der Hauptknotentyp Element>.
Wenn der Speicherortpfad beispielsweise "child::Customer" angibt, werden die <untergeordneten Elemente des Kontextknotens "Customer>" ausgewählt. Da die untergeordnete Achse ein Element> als Prinzipalknotentyp aufweist<, ist der Knotentest "Kunde" WAHR, wenn Customer ein <Elementknoten> ist.
Auswahl-Prädikate (null oder mehr)
Ein Prädikat filtert einen Knotensatz in Bezug auf eine Achse. Die Angabe von Auswahlprädikaten in einem XPath-Ausdruck entspricht der Angabe einer WHERE-Klausel in einer SELECT-Anweisung. Das Prädikat wird zwischen Klammern angegeben. Wird der in den Auswahlprädikaten angegebene Test angewendet, werden die vom Knotentest zurückgegebenen Knoten gefiltert. Für jeden Knoten in der zu filternden Knotengruppe wird der Prädikatausdruck mit dem entsprechenden Knoten als Kontextknoten ausgewertet. Die Anzahl der Knoten in der Knotengruppe dient dabei als Kontextgröße. Ergibt die Auswertung des Prädikatausdrucks für den betreffenden Knoten TRUE, wird dieser Knoten in die resultierende Knotengruppe aufgenommen.
Die Syntax für einen Positionsschritt umfasst den Achsennamen und den Knotentest, getrennt durch zwei Doppelpunkte (::) und gefolgt von null oder mehr Ausdrücken in eckigen Klammern. Beispielsweise wählt der untergeordnete XPath-Ausdruck (Speicherortpfad)::Customer[@CustomerID='ALFKI'] alle untergeordneten Elemente des>< Customer-Elements des Kontextknotens aus. Anschließend wird der Test im Prädikat auf den Knotensatz angewendet, der nur die <Customer-Elementknoten> mit dem Attributwert "ALFKI" für sein CustomerID-Attribut zurückgibt.
In diesem Abschnitt
Angeben einer Achse (SQLXML 4.0)
Enthält Beispiele zur Angabe einer Achse.
Angeben eines Knotentests unter dem Speicherortpfad (SQLXML 4.0)
Enthält Beispiele zur Angabe eines Knotentests.
Angeben von Auswahlprädikaten im Speicherortpfad (SQLXML 4.0)
Enthält Beispiele zur Angabe von Auswahlprädikaten.