XPath 2.0-Kommentare

(Auszug aus " XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 4.)

Kommentarbegrenzer: (:, :)

XPath 2.0 geht auch in der Beziehung über XPath 1.0 hinaus, als dass es nunmehr möglich ist, im Inneren eines XPath-Ausdrucks einen Kommentar unterzubringen. Auf diesem Wege können komplexeren Ausdrücken zusätzliche Informationen und Erläuterungen beigefügt werden. In Kommentarmarken eingeschlossene Abschnitte innerhalb eines Ausdrucks werden durch XPath ignoriert – ihre An- oder Abwesenheit hat keinerlei Einfluss auf das Ergebnis des Ausdrucks. Der Kom­mentarinhalt wird Anwendungen (normalerweise) also nicht zur Verfügung gestellt, sondern dient nur der Information eines menschlichen Lesers.

Die Kommentarsyntax ist folgende:

(: ich bin ein XPath 2.0-Kommentar :)

Die Zeichenfolgen (: und :) dienen als Begrenzer (Delimiter). Die Begrenzer sind inner­halb des Kommentars allerdings nicht verboten, was dazu führt, dass XPath-Kommentare im Gegensatz zu den Gepflogenheiten fast aller anderen Pro­grammiersprachen verschachtelt werden können (hierbei müssen innere Begrenzer paarweise auftreten, eine Verschachtelung also vollständig sein):

(: das ist  (: eine erlaubte :)  Verschachtelung :)

(: das hier ist  (:  nicht erlaubt, weil unvollständig :)

Kommentare sind nicht überall in XPath-Ausdrücken erlaubt, sondern nur an jenen Stellen, die »nicht-relevante« (ignorable) Weißraumzeichen erlauben.

Rückblick auf XPath 1.0

XPath 1.0 kennt keine Kommentare. Es ist daher nicht möglich, innerhalb eines XPath-Ausdrucks Erläuterungen einzufügen.

Seitenblick auf XQuery

Teil von XQuery – nicht von XPath selbst! – ist eine ähnliche Syntax (:: und ::), die zur Markierung von Pragmas und Erweiterungen sogenannter »must-understand extensions« dient.

Aus diesem Grund sollten die Zeichenfolgen (:: und ::) nicht in einem XPath-Kommentar erscheinen und dessen Kommentarinhalt vorsichtshalber nicht mit einem Doppelpunkt beginnen

(:::Dieser XPath-Kommentar gleicht einem XQuery-Pragma:::)

Der Doppelpunkt ist als Zeichen innerhalb von Kommentaren – auch an dessen Anfang – zwar durchaus gestattet. Zur Sicherheit jedoch setzt man in XPath-Kommentaren nach dem einleiten­den und vor dem beendenden Begrenzer je ein Leerzeichen (die Grammatik fordert dies allerdings nicht eindeutig):

(:  :::So ist ein XPath-Kommentar sicherer:::  :)

Mittels Pragmas können einer XQuery-Anwendung, sofern dies unterstützt wird, Zusatzinformationen zur Verarbeitung zur Verfügung gestellt werden. Die Pragmainformation muss, damit sie zugeordnet werden kann, mit einem QName gekennzeichnet sein – das einleitende Keyword lautet pragma. Hinter dem QName steht, durch ein Leerzeichen getrennt, der zu übergebene Wert:

(:: pragma mein:timeout 1000 ::)

Dieses (fiktive) Pragma verlangt für die Verarbeitung einer Query eine Maxi­maldauer von 1000 ms, bei deren Überschreitung ein Timeout gemeldet wird. Ist der Anwendung das geforderte Feature nicht bekannt, so wird das Pragma ignoriert.

Die »must-understand extensions« sind dagegen proprietäre Erweiterungen, die der verarbeitenden XQuery-Anwendung bekannt sein müssen (must-understand), da sie Voraussetzung für deren korrekte Abwicklung sind. Solche Erweiterungen werden »angemeldet« durch

(:: extension mein:xquery-supererweiterung ::)

Wobei nach dem Keyword extension der QName der Erweiterung genannt wird, deren Unterstützung erforderlich ist. Eine Anwendung, die diese Unter­stützung nicht leistet, meldet hier einen statischen Fehler.

Pragmas und Erweiterungen sind derzeit (noch) nicht Teil von XPath selbst. Sollte eine Pragma- oder Erweiterungsanweisung in einem XPath-Ausdruck erscheinen, der außerhalb des XQuery-Kontextes verwendet wird, so werden diese wahrscheinlich, jedoch nicht mit Sicherheit, als Kommentare gewertet.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XPath bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn