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 Kommentarinhalt 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 innerhalb des Kommentars allerdings nicht verboten, was dazu führt, dass XPath-Kommentare im Gegensatz zu den Gepflogenheiten fast aller anderen Programmiersprachen 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 einleitenden 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 Maximaldauer 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 Unterstü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