Freigeben über


Angeben eines Speicherortpfads (SQLXML 4.0)

XPath-Abfragen werden in Form eines Ausdrucks angegeben. Es gibt verschiedene Arten von Ausdrücken. Ein Speicherortpfad ist ein Ausdruck, der einen Satz von Knoten relativ zum Kontextknoten auswählt. Das Ergebnis der Auswertung eines Standortpfads ist ein Knotensatz.

Typen von Speicherortpfaden

Ein Speicherortpfad kann eine der folgenden Formen annehmen:

  • Absoluter Standortpfad

    Ein absoluter Speicherortpfad beginnt am Stammknoten des Dokuments. Sie besteht aus einem Schrägstrich (/) optional gefolgt von einem relativen Positionspfad. Mit dem Schrägstrich (/) wird der Stammknoten des Dokuments ausgewählt.

  • Relativer Speicherortpfad

    Ein relativer Speicherortpfad beginnt am Kontextknoten im Dokument. Ein Speicherortpfad besteht aus einer Sequenz von mindestens einem Standortschritt, der durch ein Schrägstrich (/) getrennt ist. Jeder Schritt wählt einen Satz von Knoten relativ zum Kontextknoten aus. Die erste Abfolge der Schritte wählt einen Satz von Knoten relativ zu einem Kontextknoten aus. Jeder Knoten in diesem Satz wird als Kontextknoten für den folgenden Schritt verwendet. Die Sätze von Knoten, die durch diesen 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 im Stammkontext, auch wenn der XPath nicht explizit absolut ist. Beispielsweise 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).

Standortschritte

Ein Speicherortpfad (absolut oder relativ) besteht aus Positionsschritten, die drei Teile enthalten:

  • Achsen

    Die Achse gibt die Strukturbeziehung zwischen den Knoten an, die durch den Positionsschritt und den Kontextknoten ausgewählt wurden. Die parentAchsen , child, attribute, und self Achsen werden unterstützt. Wenn eine child Achse im Positionspfad angegeben ist, sind alle von der Abfrage ausgewählten Knoten die untergeordneten Elemente des Kontextknotens. Wenn eine parent Achse angegeben wird, ist der ausgewählte Knoten der übergeordnete Knoten des Kontextknotens. Wenn eine attribute Achse angegeben wird, sind die ausgewählten Knoten die Attribute des Kontextknotens.

  • Knotentest

    Ein Knotentest gibt den Vom Standortschritt ausgewählten Knotentyp an. Jede Achse (child, parent, attributeund self) weist einen Prinzipalknotentyp auf. Für die attribute Achse ist <der Prinzipalknotentyp Attribut>. Für die parent, childund self Achsen ist <der Prinzipalknotentyp Element>.

    Wenn der Speicherortpfad beispielsweise "child::Customer" angibt, werden die <untergeordneten Elemente des Kontextknotens "Customer> " ausgewählt. Da die child Achse ein Element> als Prinzipalknotentyp aufweist<, ist der Knotentest "Kunde" WAHR, wenn "Kunde" ein <Elementknoten> ist.

  • Auswahl-Prädikate (null oder mehr)

    Ein Prädikat filtert einen Knotensatz in Bezug auf eine Achse. Das Angeben von Auswahl-Prädikaten in einem XPath-Ausdruck ähnelt dem Angeben einer WHERE-Klausel in einer SELECT-Anweisung. Das Prädikat wird zwischen eckigen Klammern angegeben. Durch Anwenden des in den Auswahl-Prädikaten angegebenen Tests werden die Knoten gefiltert, die vom Knotentest zurückgegeben werden. Für jeden Knoten im Knotensatz, der gefiltert werden soll, wird der Prädikatausdruck mit diesem Knoten als Kontextknoten ausgewertet, wobei die Anzahl der Knoten im Knotensatz als Kontextgröße ausgewertet wird. Wenn der Prädikatausdruck für diesen Knoten als WAHR ausgewertet wird, wird der Knoten im resultierenden Knotensatz enthalten.

    Die Syntax für einen Positionsschritt ist der Achsenname und der Knotentest, getrennt durch zwei Doppelpunkte (::), gefolgt von null oder mehr Ausdrücken, die jeweils in eckigen Klammern enthalten sind. Der untergeordnete XPath-Ausdruck (Speicherortpfad) beispielsweise ::Customer[@CustomerID='ALFKI'] wählt 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)
Stellt Beispiele für die Angabe einer Achse bereit.

Angeben eines Knotentests im Speicherortpfad (SQLXML 4.0)
Stellt Beispiele zum Angeben eines Knotentests bereit.

Angeben von Auswahl-Prädikaten im Speicherortpfad (SQLXML 4.0)
Stellt Beispiele für die Angabe von Auswahl-Prädikaten bereit.