- XSLT
- XSLT-Elemente
- XSLT-Funktionen
- XPath
- XPath-Funktionen
- XSL-FO
- XSL Formatierungsobjekte
- XSL Eigenschaften
- Verschiedene Transformationen
-----------------
letzte änderung:
09 December 2021 -----------------
Lehrer Nussbaumers Seite
... in Arbeit ...
|
XSLT-Elemente
Das Verhalten jeder Transformation wird durch die zugrundeliegende XML-Datei und durch die Verwendung entsprechender XSLT-Elemente bestimmt. Bei den XSLT-Elementen spielen die Elemente eine besondere Rolle, die als Kindelement des Wurzelelementes <xsl:stylesheet> auftreten können; sie werden als Toplevel-Elemente bezeichnet.
- <xsl:apply-imports> - wendet ein Template eines importierten Stylesheets an
- <xsl:apply-templates> - wendet ein Template auf das aktuelle Element an
- <xsl:attribute> - fügt dem am nächsten liegenden Element ein Attribut hinzu
- <xsl:attribute-set> - definiert eine benannte Attributgruppe
- <xsl:call-template> - ruft ein benanntes Template auf
- <xsl:choose> - wählt zwischen alternativen Zweigen aus; wird gemeinsam mit <xsl:when> verwendet.
- <xsl:comment> - erzeugt einen Kommentar im Ergebnisbaum
- <xsl:copy> - kopiert den aktuellen Knoten in den Ergebnisbaum. Attribute und Kindknoten werden nicht mit kopiert
- <xsl:copy-of> - kopiert den aktuellen Knoten gemeinsam mit seinen Attributen und Kindknoten in den Ergebnisbaum
- <xsl:decimal-format> - legt die Zeichen fest, mit denen Zahlenwerte in Zeichenketten umgewandelt werden; wird gemeinsam mit der Funktion format-number() verwendet
- <xsl:element> - Fügt in den Ergebnisbaum ein neues Element ein
- <xsl:fallback> - erlaubt die Verwendung von Alternativen, wenn nicht implementierte Anweisungen auftreten
- <xsl:for-each> - Schleife über die Knoten der aktuellen Knotenmenge
- <xsl:if> - bedingte Verzweigung
- <xsl:import> - Importiert eine Stylesheet-Datei
- <xsl:include> - fügt eine Stylesheet-Datei ein
- <xsl:key> - erlaubt die Definition von Key-Elementen
- <xsl:message> - fügt in die Ausgabe eine System-Meldung ein
- <xsl:namespace-alias> - Legt ein Alias für einen Namensraum fest
- <xsl:number> - fügt in den Ausgabebaum eine Zahl ein
- <xsl:otherwise> - Kindelement von <xsl:choose>. Legt die Anweisungen fest, die ausgeführt werden sollen, wenn keine Übereinstimmung mit einem <xsl:when>-Element erfolgt ist.
- <xsl:output> - legt Einstellungen für die Ausgabe des Ergebnisbaumes fest
- <xsl:param> - definiert Parameter für Templates
- <xsl:preserve-space> - legt fest, was mit Leerraum geschehen soll
- <xsl:processing-instruction> - fügt eine Verarbeitungsanweisung in den Ergebnisbaum ein
- <xsl:sort - bestimmt wie die Knoten der aktuellen Knotenmenge sortier werden sollen
- <xsl:strip-space> - legt fest, wie mit Leerraum verfahren werden soll
- <xsl:stylesheet> - Wurzelelement für Stylesheet-Datei
- <xsl:template> - legt ein Template fest
- <xsl:text> - fügt in den Ergebnisbaum ein Textelement ein
- <xsl:transform> - Wurzelelement für Stylesheet-Datei
- <xsl:value-of> - fügt einen berechneten Wert in den Ergebnisbaum ein
- <xsl:variable> - legt eine Variable fest
- <xsl:when> - bestimmt die Bedingung innerhalb eines <xsl:choose>-Elementes; tritt daher nur als Kindelement des <xsl:choose>-Elementes auf
- <xsl:with-param> - übergibt Parameterwerte an ein Template
<xsl:stylesheet> - Wurzelelement
Das Wurzelelement steht am Anfang jedes XSL-Dokumentes. Mit ihm werden wichtige Attribute für den Transformationsbaum festgelet.
Attributname |
Beschreibung |
Attributwert |
version |
Obligat |
1.0 |
xmlns |
Namensraum-Deklaration |
http://www.w3.org/1999/XSL/Transform |
exluce-result-prefixes |
Legt das Namesraumpräfix fest, deren Deklaration nicht in den Ergebnisbaum eingetragen werden darf. |
|
extension-element-prefixes |
Legt den Namensraum für Erweiterungselemente und -Funktionen fest. |
|
id |
Eindeutiger Bezeichner |
|
Zum Anfang
Toplevel-Elemente
-
<xsl:attribute-set>
Mit diesem Element kann eine Gruppe von Attributen gebildet werden; alle diese Attribute sthen gemeinsam mit dem Namen der Attributgruppe im Ausgabedokument zur Verfügung.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Legt den Namen der Attributgruppe fest. |
|
use-attribute-set |
Legt fest, ob eine schon bestehende Attributgruppe verwendet werden soll |
|
Zum Anfang
-
<xsl:decimal-format>
Bestimmt das Zahlenformat für die Ausgabe von numerischen Werten.
Attributname |
Beschreibung |
Attributwert |
name |
Legt einen Namen für das Zahlenformat fest. |
|
decimal-separator |
Gibt das Dezimalzeichen an. |
Defaultwert: . (Punkt) |
grouping-separator |
Legt das Zeichen zur Trennung der Zifferngruppen großer Zahlen fest. |
Defaultwert: , (Komma) |
infinity |
Bezeichnung für Zahlenwert "unendlich" |
Defaultwert: infinity |
minus-sign |
Legt das Zeichen für das negative Vorzeichen einer Zahl fest |
Defaultwert: - (Bindestrich) |
NaN |
Zeichenkette für Berechnungsergebnisse, die keine Zahlen sind ("Not a Number") |
Defaultwert: NaN |
percent |
Prozentzeichen |
Defaultwert: % |
per-mille |
Promille-Zeichen |
Defaultwert: Unicode-Zeichen #x2030 |
zero-digit |
Zeichen für die Ausgabe der Ziffer Null |
Defaultwert: 0 |
digit |
Gibt das Zeichen an, das im Formatstring für eine Ziffer verwendet werden soll |
Defaultwert: # |
pattern-separator |
Zeichen, das im Formatstring positive und negative Zahlenmuster voneinander trennt. |
|
Zum Anfang
-
<xsl:import>
Dient zum Importieren eines externen Stylesheets. Diese Anweisung kann nur zu Beginn eines Stylesheets auftreten. Die zuletzt eingebundenen Templates haben eine niedrigere Priorität - dies stellt sicher, dass die im aufrufenden Stylesheet definierten Templates auf jeden Fall Vorrang gegenüber den importierten haben.
Attributname |
Beschreibung |
Attributwert |
href |
Obligat. Legt den Pfad zum externen Stylesheet fest |
|
Zum Anfang
-
<xsl:include>
Dient zum Einfügen externer Stylesheet-Dateien. Die eingefügten Templates haben keinen Vorrang gegenüber den Templates im aufrufenden Stylesheet. <xsl:include> kann als Toplevel-Element überall im Stylesheet auftreten.
Attributname |
Beschreibung |
Attributwert |
href |
Obligat. Legt den Pfad zum externen Stylesheet fest. |
|
Zum Anfang
-
<xsl:key>
Mit diesem Element wird ein Index mit einem bestimmten Namen erstellt.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Legt den Namen für den Schlüssel fest. |
|
match |
Obligat. Gibt den XPath-Ausdruck an, mit dem die zu indizierenden Knoten ausgewählt werden. |
|
use |
Obligat. Gibt den XPath-Ausdruck an, mit dem der Wert für den Schlüssel festgelegt wird. |
|
Zum Anfang
-
<xsl:namespace-alias>
Ersetzt das Namensraumpräfix für den Ausgabebaum.
Attributname |
Beschreibung |
Attributwert |
stylesheet-prefix |
Obligat. Gibt das im Stylesheet verwendete Namensraumpräfix an. |
#default (legt einen Defaultnamesraum ohne Präfix fest) |
result-prefix |
Obligat. Legt das Namensraumpräfix für den Ergebnisbaum fest. |
#default (legt einen Standardnamensraum ohne Präfix fest) |
Zum Anfang
-
<xsl:output>
Spezifiziert die Ausgabe des Ergebnisses der Transformation
Attributname |
Beschreibung |
Attributwert |
method |
Legt die Ausgabeart fest. |
"xml" - XML-Datei als Ergebnis
"html" - HTML-Datei als Ergebnis
"text" - Textdatei als Ergebnis
(Anmerkung: XSLT darf dezidiert auch nicht wohlgeformte Ergebnisbäume liefern)
|
version |
Legt die Version fest |
|
encoding |
Legt den Zeichensatz für das Ausgabedokument fest |
|
omit-xml-declaration |
Bestimmt, ob im Ergebnisdokument die XML-Deklaration enthalten sein soll |
"yes" - für XML-Dokumente
"no" - für HTML- oder Text-Dokumente
|
standalone |
Legt den Attributwert für die XML-Deklaration des Ausgabedokumentes fest. |
"yes" oder "no" |
doctype-public |
Legt den "Public-Bezeichner" für die DTD im Ausgabedokument fest. |
|
doctype-system |
Legt den "System-Bezeichner" für die DTD im Ausgabebaum fest. |
|
cdata-section-elements |
Legt eine Liste von Elementnamen fest, deren Textknotenkinelemente als CDATA-Abschnitte ausgegeben werden. |
|
indent |
Legt fest, ob Leerzeichen (zum Einzug der Zeilen) ausgegeben werden sollen |
"yes" oder "no" |
media-type |
Legt den MIME-Type des Ausgabedokumentes fest |
z.B. "text/html", "image/svg", ... |
Anmerkung: Der Arbeitsentwurf für XSLT 2.0 sieht für das Attribut method auch den Wert "xhtml" vor.
Anmerkung: Verschiedene XSLT-Prozessoren unterstützen die Attribute von <xsl:output> verschieden.
Zum Anfang
-
<xsl:param>
Legt den Namen und den Wert eines Parameters füR ein benanntes Template fest. Tritt <xsl:param> als Top-Level-Element auf, so werden global gültige Parameter vereinbart. <xsl:param> kann auch als Anweisungs-Element auftreten.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Bestimmt den Namen des Parameters. |
|
select |
Legt an Hand des XPath-Ausdruckes den Wert für den Parameter fest. |
|
Zum Anfang
-
<xsl:preserve-space>
Legt fest, für welche Elemente der Leerraum erhalten bleiben soll.
Attributname |
Beschreibung |
Attributwert |
elements |
Obligat. Enthält die durch Leerzeichen getrennte Liste von Elementnamen, für die Leerraum erhalten bleiben soll. |
|
Zum Anfang
-
<xsl:strip-space>
Legt fest, für welche Elemente der Leerraum entfernt werden soll.
Attributname |
Beschreibung |
Attributwert |
elements |
Obligat. Enthält die durch Leerzeichen getrennte Liste von Elementnamen, für die der Leerraum enfernt werden soll. |
|
Zum Anfang
-
<xsl:template>
Dient zum Erstellen eines Templates.
Attributname |
Beschreibung |
Attributwert |
match |
Legt fest, auf welche Kindelemente, Attribute oder Nachfolger die angegebenen Regeln anzuwenden sind. |
|
name |
Erlaubt die Verwendung so genannter "benannter Templates". Solche Templates können anhand des Namens ähnlich wie Unterprogramme aufgerufen werden (vgl. <xsl:call-template>). |
|
priority |
Legt die Priorität für das Template fest |
|
mode |
Bestimmt den "Modus" des Templates; d.h. die Regeln des Templates werden genau dann angewendet, wenn das aufrufende Element ein mode-Attribut mit dem gleichen Wert aufweist. |
|
Zum Anfang
-
<xsl:variable>
Legt als Toplevel-Element eine global g¨ltige Variable fest. Der Wert der Variablen wird wahlweise mit dem select-Attribut oder als Template angegeben das den Inhalt des <xsl:variable>-Elements bildet.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Bestimmt den Namen der Variablen. |
|
select |
Legt anhand des angegebenen XPath-Ausdruckes den Variablenwert fest. |
|
Zum Anfang
Anweisungselemente
Anweisungselemente treten im ganzen XSLT-Dokument auf.
-
<xsl:apply-imports />
Wendet ein Template eines importierten Stylesheets an. Dieses Element hat keine Kindelemente und keine Attribute.
Zum Anfang
-
<xsl:apply-templates>
Legt fest, auf welche Knotenmenge die definierten Templateregeln angewendet wreden sollen.
Attributname |
Beschreibung |
Attributwert |
select |
Enthält den XPath-Ausdruck, der die gewünschte Knotenmenge spezifiziert. |
|
mode |
Bestimmt den "Modus" des Templates: Die Regeln des Templates werden genau dann angewendet, wenn das aufrufende Element ein mode-Attribut mit dem gleichen Wert aufweist. |
|
Zum Anfang
-
<xsl:attribute>
Fügt dem aktuellen XML-Element ein Attribut mit dem Namen hinzu, den das Attribut name angibt. Der neue Attributwert wird zwischen den XSL-Tags angegeben.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Der (qualifizierte) Name des Attributs. |
|
namespace |
Legt den Namensraum für das Attribut fest. |
|
Zum Anfang
-
<xsl:call-template>
Ruft ein benanntes Template auf.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Gibt den Namen des Templates an. |
|
Zum Anfang
-
<xsl:choose>
Wählt aus einer Reihe von <xsl:when>-Elementen diejenigen aus, deren boolsche Bedingungen erfüllt sind. Keine Attribute. Das Element enthält <xsl:when>- und <xsl:otherwise>-Elemente
Zum Anfang
-
<xsl:comment>
Erzeugt im Ausgabedokument einen neuen Kommentar. Das Element hat keine Attribute.
Zum Anfang
-
<xsl:copy>
Kopiert das aktuelle Element in den Ausgabebaum.
Attributname |
Beschreibung |
Attributwert |
use-attribute-sets |
Gibt die Namen einer oder mehrerer Attributgruppen an, die für das Element verwendet werden sollen. |
|
Zum Anfang
-
<xsl:copy-of>
Kopiert die durch das select-Attribut ausgewählte Knotenmenge in den Ausgabebaum. Während <xsl:value-of> den Zeichenkettenwert der mit dem select-Attribut ausgewählten Knotenmenge liefert, gibt <copy-of> das entsprechende Baumfragment (das sind die Elemente gemeinsam mit Tag-Klammern und Attributen).
Attributname |
Beschreibung |
Attributwert |
select |
Gibt den XPath-Ausdruck an, anhand dessen die Knoten des Eingabedokumentes ausgewählt werden. |
|
Zum Anfang
-
<xsl:element>
Erzeugt ein neuse XML-Element im Ausgabebaum.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Gibt den (qualifizierten) Namen des Elementes an. |
|
namespace |
Legt den Namensraum für das Element fest. |
|
use-attribute-sets |
Gibt an, welche Attributgruppe(n) für das neue Element verwendet werden sollen. Mehrere Attributgruppennamen werden in der Liste einfach durch Leerzeichen getrennt. |
|
Zum Anfang
-
<xsl:fallback>
Fasst für Erweiterungselemente Template-Regeln zusammen, die dann ausgeführt werden sollen, wenn ein Erweiterungselement nicht gefunden werden kann. Das Element weist keine Attribute auf.
Zum Anfang
-
<xsl:for-each>
Dient zur Auswahl aller Geschwisterelemente, die die angegebene select-Anweisung erfüllen.
Attributname |
Beschreibung |
Attributwert |
select |
Obligat.Enthält den XPath-Ausdruck, mit dem die Knotenmenge ausgewählt wird.. |
|
Zum Anfang
-
<xsl:if>
Dient zur bedingten Verzweigung. Das Attribut test enthält einen booleschen Ausdruck: Liefert dieser Ausdruck den Wert "true", so wird das Template ausgeführt, das zwischen den <xsl:if>-Tags steht.
Attributname |
Beschreibung |
Attributwert |
test |
Gibt den XPath-Ausdruck an, der als Auswahlkriterium verwendet wird. |
|
Zum Anfang
-
<xsl:message>
Sendet eine Nachricht an den XSLT-Prozessor.
Attributname |
Beschreibung |
Attributwert |
terminate |
Bestimmt, ob der XSLT-Prozessor nach der Meldung anhält oder nicht |
"yes" oder "no" |
Zum Anfang
-
<xsl:number>
Ermittelt die Anzahl der Knoten in einer Auswahl. Alternativ bettet es das Ergebnis in den Ausgabebaum ein.
Attributname |
Beschreibung |
Attributwert |
level |
Bestimmt, auf welche Knoten das Muster "count" angewendet werden soll. |
single - das Muster "count" wird in der Achse ancestor-or-self auf den ersten passenden Knoten angewendet. Gezählt wird dieser Knoten und alle seine zum Muster passenden Geschwisterknoten
multiple - das Muster "count" wird auf alle Vorfahren des aktuellen Knotens und auf den Knoten selbst angewendet.
any - das Muster "count" wird auf alle Vorfahren des aktuellen Knotens sowie auf alle Knoten vor dem aktuellen Knoten angewendet (preceding-Achse).
|
count |
Das angegebene Muster legt fest, welche Knoten gezählt werden sollen. |
Defaultwert: alle Knoten, die dem aktuellen Knotentyp entsprechen |
from |
Der XPath-Ausdruck legt fest, von welchem Knoten an gezählt werden soll. |
|
value |
Der Ausdruck gibt die Zahl an, die formatiert ausgegeben werden soll. |
|
format |
Legt fest, in welcher Form die fortlaufende Nummerierung erfolgen soll |
1 1 2 3 ... 9 10 11 12 ...
01 01 02 03 04 ... 09 10 11 ...
A A B C ... Z AA AB AC ...
a a b c ... z aa ab ac ...
i i ii iii iv v vi vii viii ix x ...
I I II III IV V VI VII VIII IX X ...
|
lang |
Legt einen Sprachcode gemäß RFC 1766 fest |
|
letter-value |
Legt die Bedeutung der Buchstaben im Attribut format fest |
"traditional" - i, ii, iii, iv, v ...
"alphabetic" - i, j, k, l, m
|
grouping-separator |
Bestimmt das Trennzeichen für die gruppierte Zahlenausgabe |
|
grouping-size |
Legt die Anzahl der Ziffern pro Guppe fest |
Defaultwert: 3 |
Zum Anfang
-
<xsl:otherwise>
Führt in Verbindung mit <xsl:choose> das angegebene Template aus, wenn keine Übereinstimmung mit irgendeiner Bedingung der vorangegangenen <xsl:when>-ELemente gegeben ist. Das Element hat keine Attribute.
Zum Anfang
-
<xsl:processing-instruction>
Fügt in den Ausgabebaum eine Verarbeitungsanweisung ein.
Attributname |
Beschreibung |
Attributwert |
name |
Bestimmt den Namen der Verarbeitungsanweisung. |
|
Zum Anfang
-
<xsl:sort>
Bestimmt die Reihenfolge, in der die mit <xsl:apply-templates> oder <xsl:for-each> ausgewählten Knoten verarbeitet werden.
Attributname |
Beschreibung |
Attributwert |
select |
Beschreibt den Sortierschlüssel anhand des XPath-Ausdruckes |
|
lang |
Legt den Sprachcode fest. |
|
data-type |
Konvertiert den ausgewerteten Ausdruck in den angegebenen Datentyp |
"text", "number" |
order |
Legt die Sortierreihenfolge fest |
"ascending", "descending" |
case-order |
Legt fest, wie gleich lautende Zeichen behandelt werden sollen |
"upper-first" oder "lower-first" |
Zum Anfang
-
<xsl:text>
Erzeugt im Ausgabebaum ein Textelement mit dem angegebenen Inhalt.
Attributname |
Beschreibung |
Attributwert |
disable-output-escaping |
Legt für die Ausgabe "xml" und "html" fest, ob "<" oder ">" - Zeichen in bennante Entities umgewandelt darf. |
"yes" - keine Umwandlung
"no"
|
Zum Anfang
-
<xsl:value-of>
Ermittelt den Wert eines XPath-Ausdruckes und fügt das Ergebnis als Zeichenkette in den Ausgabebaum ein.
Attributname |
Beschreibung |
Attributwert |
select |
Enthält den XPath-Ausdruck. |
|
disable-output-escaping |
Bestimmt für HTML- und XML-Ausgabedokumente, ob SOnderzeichen bei der Ausgabe durch benannte Entities ersetzt werden. |
"yes" - keine Umwandlung
"no" |
Zum Anfang
-
<xsl:when>
Ermöglicht eine Auswahl innerhalb einer <xsl:choose> Anweisung. Es wird das Template ausgeführt, das zwischen den Tags jedes <xsl:when> - Elementes steht, dessen boolescher Ausdruck erfüllt ist.
Attributname |
Beschreibung |
Attributwert |
test |
Gibt den XPath-Ausdruck an, der als Auswahlkriterium ausgewertet wird. |
|
Zum Anfang
-
<xsl:with-param>
Legt einen Parameter und seinen Wert fest, der an ein aufgerufenes benanntes Template übergeben wird.
Attributname |
Beschreibung |
Attributwert |
name |
Obligat. Bestimmt den Namen des Parameters. |
|
select |
Legt anhand des angegebenen XPath-Ausdruckes den Wert für den Parameter fest. |
|
Zum Anfang
|