xsl:comment
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 6.)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Die Instruktion xsl:comment erzeugt einen Kommentarknoten.
Klassifizierung | Instruktion |
Funktionsgruppe | Output im Ergebnisdokument erzeugen |
Einführung | XSLT 1.0 |
Position im Stylesheet und erlaubte Inhalte:
xsl:comment tritt als Instruktion immer innerhalb eines Blocks von Template-Anweisungen auf. Als Inhalte gestattet sind Text und/oder weitere Template-Anweisungen, deren Output dann als Kommentar im Ergebnisdokument erscheint.
Attribute:
Es gelten die Standardattribute. Die Instruktion besitzt (ab XSLT 2.0) ein optionales elementspezifisches Attribut select, dass jedoch nur verwendet werden darf, wenn die Instruktion leer ist.
select
Wert | xpath-expression |
Verwendung | Optional (nur bei leerer Instruktion!) |
Einführung | XSLT 2.0 |
Das Attribut select kann, alternativ zu einem Sequenzkonstruktor im Inneren der Instruktion xsl:comment, den Wert des erzeugten Kommentarknotens erzeugen. Das Attribut darf ausdrücklich nur dann eingesetzt werden, wenn die Instruktion leer ist. Der Verstoß hiergegen bewirkt einen statischen Fehler (ERR XTSE0940).
Hinweis: Das Attribut existiert nicht in XSLT 1.0.
Verwendungszweck:
Die Instruktion xsl:comment fügt dem Ergebnisbaum einen neuen Kommentarknoten hinzu, dessen Inhalt sich aus dem Anweisungsblock im Inneren der Instruktion ergibt. Besitzt die Instruktion keinen Inhalt (aber nur dann), darf sie ein Attribut select erhalten, das den Kommentarinhalt mittels eines XPath-Ausdruck bestimmt (Achtung, dieses Attribut steht in XSLT 1.0 nicht zur Verfügung!).
Der einzufügende Text darf nicht die Zeichenkette »--« enthalten, die den Kommentar beenden würde, oder mit »-« enden, was zu einer unerlaubten und uneindeutigen Folge aus drei Bindestrichen führen würde. Der XSLT-Parser ist gehalten, ohne einen Fehler zu melden, zwischen zwei aufeinanderfolgenden Bindestrichen, oder einem Bindestrich am Ende des Kommentartextes stillschweigend ein Leerzeichen einzufügen. (Anmerkung: Ältere Working Drafts legten es nahe, eine Fehlermeldung auszugeben. Das tatsächliche Verhalten des Zielprozessors sollte gegebenenfalls überprüft werden.)
Normalerweise werden Kommentare aus dem Quelldokument nicht in das Ergebnisdokument übernommen – ihr Inhalt zählt per se nicht zu den »relevanten« Informationen. Sie werden vom XSLT-Parser auf Grund des entsprechenden (leeren) Defaulttemplates ignoriert, solange dieses nicht explizit durch ein eigenes Template überschrieben wird. Dies könnte bei Bedarf folgendermaßen geschehen:
<!-- implizites Default-Template für Kommentarknoten -->
<xsl:template match="comment()"/>
<!-- selbst definiertes Override-Template (Beispiel) -->
<xsl:template match="comment()">
<xsl:copy/>
</xsl:template>
Beispiel – Erzeugung eines Kommentarknotens:
<xsl:comment>Dies ist eine Erklärung für alles!</xsl:comment>
erzeugt im Ergebnisdokoment:
<!-- Dies ist eine Erklärung für alles! -->
Elementdefinition:
XSLT 1.0:
<!-- Category: instruction -->
<xsl:comment>
<!-- Content: template -->
</xsl:comment>
XSLT 2.0:
<!-- Category: instruction -->
<xsl:comment
select? = expression >
<!-- Content: sequence-constructor -->
</xsl:comment>
Querverweise:
Knotenkonstruktoren für die restlichen Knotentypen existieren in Form von xsl:attribute, xsl:element, xsl:processing-instruction, xsl:text und (seit XSLT 2.0) als xsl:namespace.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT 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