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 fol­gendermaß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 Ergebnisse­quenz (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 wer­den zwei Sequenzen der entsprechenden Nodes in Dokumentreihenfolge mit­einander 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