Konzepte Content-Repräsentation & Markup-Sprachen

11.6 Zusammengesetzte Location steps

Zusammen mit der umfangreichen Funktionsbibliothek bieten Location steps zwar vergleichsweise flexible Möglichkeiten zur Eingrenzung von Knotenmengen, aber die Beschreibung der Dokumentstruktur ist auf diese Weise nur eingeschränkt möglich. Daher lassen sich Location steps unter Verwendung des Operators “/” zu komplexeren Pfadausdrücken, den Location paths, kombinieren. Die Auswertung dieser zusammengesetzten Ausdrücke erfolgt, indem das Ergebnis eines Location step den Kontext für den nächsten Location step bildet. Dieser wird mit jedem Element der Ergebnismenge als Kontextknoten einmal ausgewertet. Das Ergebnis dieses zweiten Location step besteht schließlich aus der Vereinigung der einzelnen Auswertungsschritte.

Der initiale Kontext für den ersten Bestandteil eines Pfadausdrucks wird von der Anwendung konstruiert, in der dieser XPath-Ausdruck verwendet wird. Neben Bindungen von Variablennamen und Funktionsbezeichnern umfaßt dieser Kontext insbesondere einen einzelnen Kontextknoten, der als Referenzpunkt für den ersten Auswertungsschritt dient.

Im einfachsten Fall besteht ein Pfadausdruck aus einer Folge von Location steps, die nacheinander ausgewertet werden. In Fortführung des im vorhergehenden Abschnitt betrachteten Beispieldokuments (s. Abbildung 8) könnten somit alle Textknoten, die sich im Inhalt von Elementen mit einem Attribut revisionflag befinden, wie folgt ausgewählt werden:

Beispiel 13. Ein einfacher Location path

      descendant-or-self::node()/*[@revisionflag]/descendant-or-self::text()
    

Bezieht sich ein Location path explizit auf den Wurzelknoten des Baums, so kann dieser entweder als initialer Kontextknoten eingesetzt werden, oder es wird ein absoluter Location path verwendet. Für den zweiten Fall wird die gewohnte Schreibweise für absolute Pfade in URIs verwendet, bei der dem Pfad ein Schrägstrich vorangestellt wird:

Beispiel 14. Absoluter Location path

      /descendant-or-self::node()/*[@revisionflag]/descendant-or-self::text()
    

Die Auswertung dieses Pfadausdrucks wird anhand des Beispieldokuments aus dem vorhergehenden Abschnitt (vgl. Abbildung 8) in Abbildung 12 visualisiert.

Abbildung 12. Auswertung eines zusammengesetzten Pfadausdrucks

Sehr häufig tritt in zusammengesetzten Location steps die Komponente /descendant-or-self::node()/ auf. Aus diesem Grund wurde mit // eine abkürzende Schreibweise eingeführt, die sich auf obiges Beispiel anwenden läßt.

Beispiel 15. Abkürzende Schreibweise für /descendant-or-self::node()/

      //*[@revisionflag]/descendant-or-self::text()
    

Die erste Komponente eines Pfadausdrucks kann statt eines Location step einen sogenannten Filterausdruck enthalten, der eine initiale Menge von Kontextknoten für den nächsten Prozeßschritt auswählt. Als Filterausdruck können beliebige Funktionen verwendet werden, die eine Knotenmenge erzeugen. So könnten die Beispiele aus dem vorhergehenden Abschnitt, in denen ein bestimmter Kontextknoten vorausgesetzt wurde, mit Hilfe eines Filterausdrucks so formuliert werden, daß diese Randbedingung nicht mehr erfüllt sein muß. Beispielhaft sei hier die Auswahl des Knotens mit der ID const angeführt (vgl. auch Beispiel 3):

Beispiel 16. Verwendung eines Filterausdrucks

      id('const')/child::para[position()>1]
    

Eine verkürzte Syntax für den schematischen Aufbau eines Pfadausdrucks in XPath zeigt Abbildung 13.

Abbildung 13. Aufbau von Pfadausdrücken in XPath

Neben XPath-Funktionen kann ein Filterausdruck insbesondere auch Variablendereferenzierungen beinhalten. Eine Anwendung ist so z.B. in der Lage, das Ergebnis der Auswertung eines XPath-Ausdrucks zu speichern und diese Knotenmenge einem nachfolgenden Pfadausdruck in einer Variablen zur Verfügung zu stellen. Von dieser Möglichkeit macht u.a die Transformationssprache der Extensible Stylesheet Language (XSLT) Gebrauch, die in Lerneinheit 14 näher betrachtet wird.

Zunächst soll aber in den beiden anschließenden Lerneinheiten ein Überblick über einige wichtige XML-Anwendungen gegeben werden, die den Stand der Technik (Ende 2001) auf diesem Gebiet widerspiegeln. Den Abschluß dieser Qualifikationseinheit bildet dann wie bereits angedeutet der Themenbereich der Dokumenttransformation, wo gezeigt wird, wie sich logisch ausgezeichnete strukturierte Dokumente auf einfache Weise in Layout-orientierte Beschreibungen für eine ansprechende Darstellung auf einem konkreten Ausgabegerät umwandeln lassen.

Kommentare (0)

Ihr Kommentar

Name