Konzepte Content-Repräsentation & Markup-Sprachen

11.4 Ausdrücke

Zum Zugriff auf einzelne Knoten bzw. Knotenmengen steht in XPath eine eigene Anfragesprache zur Verfügung. Neben arithmetischen und logischen Ausdrücken, die aus der Mathematik oder aus anderen Programmiersprachen als hinreichend bekannt vorausgesetzt werden, bietet XPath sogenannte Pfadausdrücke (Path expressions), nach denen die Sprache benannt ist. Folgende Übersicht zeigt die verfügbaren Ausdrücke, sortiert nach absteigender Priorität der Auswertung:

  1. Variablendereferenzierung

    Die Sprache bietet die Möglichkeit, dynamisch getypte Variablen in Ausdrücken einzusetzen. Um den aktuellen Wert einer Variable zu ermitteln — sie also zu dereferenzieren — wird der Präfix-Operator $ eingesetzt, der die höchste Priorität besitzt. Die Zuweisung von Werten an Variablen ist allerdings nicht möglich. Anwendungen, die XPath einsetzen, müssen selbst einen Mechanismus dafür vorsehen.

  2. Literale

    Literale in XPath sind Zeichenketten, die wahlweise in doppelte oder einzelne Anführungszeichen eingeschlossen sind. Diese Werte können zum einen als Argumente für eine der zahlreichen Funktionen zur Manipulation von Zeichenketten herangezogen werden, zum anderen können sie das Ergebnis eines XPath-Ausdrucks darstellen.

  3. Zahlenwerte

    Zahlen werden im Gleitkommaformat nach dem Standard ANSI/IEEE 754-1985 des Institute of Electrical and Electronics Engineers (IEEE) als 64-Bit-Werte dargestellt. Mit NaN (Not a Numberkein Zahlenwert) und Infinity (“unendlich”) sind in diesem Standard zwei besondere Werte definiert, die einen Umgang mit illegalen Ausdrücken erleichtern. So führt eine Addition einer Zahl und eines Literals zum Ergebnis NaN, eine Division durch die Zahl 0 ergibt Infinity.

  4. Funktionsaufrufe

    Funktionsaufrufe sind an einem Funktionsbezeichner zu erkennen, dem eine in runden Klammern eingeschlossene (unter Umständen leere) Argumentliste folgt. Jede Funktion hat einen Rückgabewert mit einem beliebigen in XPath definierten Typen. Vor dem Funktionsaufruf werden die Argumente ausgewertet und in den jeweils benötigten Typ umgewandelt.

    Wenn XPath in eine Anwendung eingebettet ist, läßt sich die Ausdrucksfähigkeit der Sprache erweitern, indem neue Funktionen definiert werden. Wie bereits angedeutet, bietet XPath selbst bereits eine Reihe vordefinierter Funktionen, die in Abschnitt 11.5.3 näher vorgestellt werden.

  5. -1 (unäres Minus)

    Mit der nächst-niedrigeren Priorität folgt der unäre Negationsoperator für reelle Zahlen. Bei der Verwendung des Zeichens “-” in XPath-Ausdrücken ist generell zu beachten, daß es ein legaler Bestandteil eines Variablenbezeichners sein kann. In manchen Kontexten müssen daher Whitespace character verwendet werden, um Mehrdeutigkeiten auszuschließen.

  6. +, -2 (binäres Minus), *, div, mod

    Neben den vier mathematischen Grundoperationen auf der Menge der reellen Zahlen, Addition (“+”), Subtraktion (“-”), Multiplikation (“*”) und Division (“div”), steht zudem die auf der Menge der ganzen Zahlen definierte Modulo-Operation (“mod”) zur Verfügung. Die Auswertung zusammengesetzter Ausdrücke erfolgt in der aus der Schulmathematik gewohnten Reihenfolge, d.h. die Operatoren *, div und mod binden stärker als die Operatoren + und -.

  7. <, >, <=, >=

    Für jeden Datentyp in XPath sind verschiedene Vergleichsoperatoren definiert, die einen booleschen Wert als Ergebnis liefern. Werden Objekte unterschiedlichen Typs miteinander verglichen, so findet eine Typumwandlung mindestens eines Parameters statt. Im allgemeinen wird der Datentyp string erzeugt.

    Bei der Verwendung der Operatoren < und <= in einem XML-Dokument ist zu berücksichtigen, daß sie außerhalb von CDATA-Sections nicht im Klartext auftreten dürfen. Gegebenenfalls müssen sie also unter Verwendung der Entity-Referenz &lt; oder einer entsprechenden numerischen Character-Entity-Referenz angegeben werden.

  8. =, !=

    Hierbei handelt es sich um weitere Vergleichsoperatoren, die ebenfalls einen booleschen Wert als Ergebnis liefern. Werden Objekte unterschiedlichen Typs miteinander verglichen, so findet eine Typumwandlung mindestens eines Parameters statt. Im allgemeinen wird der Datentyp string erzeugt.

  9. and, or

    Logische Ausdrücke werden mit Hilfe der booleschen Operatoren and und or zu komplexeren Ausdrücken zusammengesetzt. Die Definition entspricht den entsprechenden mathematischen Operatoren, wobei and stärker bindet als or.

  10. Pfadausdrücke

    Als wichtigstes Sprachmittel von XPath erlauben Pfadausdrücke die Adressierung von Knoten unter Einbeziehung der hierarchischen Struktur des Quelldokuments. Anhand der im Datenmodell enthaltenen Angaben kann die Menge der adressierten Knoten zusätzlich eingegrenzt werden. Abschnitt 11.5 gibt einen detaillierten Überblick über den Aufbau derartiger Ausdrücke.

Nach dieser kurzen Übersicht über den grundsätzlichen Aufbau von XPath-Ausdrücken sollen nun die vorhandenen Sprachmittel vorgestellt werden. Im Vordergrund steht dabei die Konstruktion von Pfadausdrücken, da diese die wesentliche Motivation für den Einsatz von XPath darstellen.

Kommentare (0)

Ihr Kommentar

Name