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 Anweisungs­block 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 Quelldo­kument nicht in das Ergebnisdokument übernommen – ihr Inhalt zählt per se nicht zu den »rele­vanten« Informationen. Sie werden vom XSLT-Parser auf Grund des ent­sprechenden (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