xsl:sequence
(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:sequence dient dazu, eine Sequenz aus Nodes und/oder atomaren Werten zu erzeugen und zurückzugeben.
Klassifizierung | Instruktion |
Funktionsgruppe | Sequenz erzeugen |
Einführung | XSLT 2.0 |
Position im Stylesheet und erlaubte Inhalte:
Die Instruktion xsl:sequence kann überall innerhalb von Sequenzkonstruktoren eingesetzt werden. Häufig genutzt wird es außerdem in Stylesheetfunktionen als letztes Element innerhalb einer xsl:function-Deklaration zur Bildung und Rückgabe der Ergebnissequenz.
Die Instruktion ist meist leer. Als alleiniger Inhalt sind xsl:fallback-Instruktionen gestattet (die aber von XSLT 2.0-Prozessoren ignoriert werden und nur für XSLT 1.0-Prozessoren im FC-Mode gedacht sind), keinesfalls also ein Sequenzkonstruktor.
Attribute:
Es gelten die Standardattribute. Dazu besitzt xsl:sequence ein obligatorisches select-Attribut.
select
Wert | xpath-expression |
Verwendung | obligatorisch |
Einführung | XSLT 2.0 |
Mit Hilfe des XPath-Ausdrucks des obligatorischen select-Attributs wird die Sequenz erzeugt, die von der Instruktion zurückgegeben wird. Ist kein select-Attribut vorhanden, so gibt die Instruktion die leere Sequenz zurück.
Verwendung:
Die Instruktion gibt eine Sequenz zurück, die mit Hilfe des XPath-Ausdrucks ihres select-Attributs bestimmt wird. Diese Sequenz darf aus Knoten und atomaren Werten bestehen. Erlaubte Inhalte von xsl:sequence sind Instruktionen xsl:fallback, ansonsten bleibt die Instruktion leer.
Hinweis: Ein Sortieren der Sequenz, die durch das select-Attribut bestimmt wird, ist nicht unmittelbar möglich – für den Zweck des Erzeugens einer sortierten Sequenz kann jedoch xsl:perform-sort eingesetzt werden.
Beispiele:
Beispiel 1 – Erzeugung einer Sequenz mit xsl:sequence:
<xsl:variable name="seq1">
<xsl:sequence select="(1, 2, 3, 4)"></xsl:sequence>
</xsl:variable>
speichert in $seq1 eine Sequenz aus xs:integer-Werten (1,2,3,4), die folgendermaßen ausgegeben werden kann:
<xsl:value-of select="$seq1" separator=","/>
Dies ergibt den Ausgabestring »1,2,3,4,5«.
Beispiel 2 – Die Instruktion xsl:sequence in einer Funktionsdeklaration:
<xsl:function name="mein:addierer">
<xsl:param name="wert1"/>
<xsl:param name="wert2"/>
<xsl:sequence select="$wert1 + $wert2"/>
</xsl:function>
Der Aufruf mein:addierer(17, 4) gibt mittels xsl:sequence die Ergebnissequenz (21) zurück, die beispielsweise mit <xsl:value-of select="mein:addierer(17, 4)"/> als String ausgegeben werden kann.
Beispiel 3 – Eine Sequenz aus Nodes mit Doubletten erzeugen:
<xsl:sequence select="(//test, //test)"/>
erzeugt eine Sequenz, in der alle <test>-Elemente des Kontextdokuments doppelt enthalten sind. Zugegeben, dieses Beispiel ist etwas konstruiert. Im Grunde werden zwei Sequenzen der entsprechenden Nodes in Dokumentreihenfolge miteinander verkettet.
Elementdefinition:
XSLT 1.0:
Element in XSLT 1.0 nicht verfügbar.
XSLT 2.0:
<!-- Category: instruction -->
<xsl:sequence
select = expression >
<!-- Content: xsl:fallback* -->
</xsl:sequence>
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