XSL beschreibt
die Transformation von XML-Dokumenten. Ein
XSLT-Prozessor
wie xsltproc(1) führt die Transformation aus. Dieser
sucht, beginnend beim Wurzelknoten, das am besten passendes Template
und führt es aus. Das folgende Template ist fest eingebaut. Es
traversiert alle Kinder des aktuellen Knotens und gibt den
Inhalt aller Textknoten aus.
<xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template>
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <!-- root --> <xsl:template match="/"> <html> <body> <xsl:apply-templates/> </body> </html> </xsl:template> </xsl:stylesheet>
Die Funktion xsl:apply-templates
iteriert über alle Kinder des aktuellen Knotens, sucht
wiederum das am besten passende Template und ruft dieses auf.
| Element | Inhalt | Beschreibung | |
| root element | |||
|---|---|---|---|
| xsl:transform | (xsl:include | xsl:import)* (top-level-elements)* | Alternativname für das Wurzelelment, verwende immer <xsl:stylesheet> | |
| xsl:stylesheet | Wurzelelement | ||
| version | = | 1.0| 2.0 | XSL-Version |
| id | = | ID | |
| extension-element-prefixes | = | prefix1 prefix2 … | Elemente aus den aufgelisteten Namensräumen sind Erweiterungen |
| exclude-result-prefixes | = | prefix1 prefix2 … | Elemente aus den aufgelisteten Namensräumen nicht ausgeben |
| xsl:include | Bindet externes Stylesheet mit gleicher Priorität ein | ||
| href | = | uri | |
| xsl:import | Bindet externes Stylesheet mit geringerer Priorität ein | ||
| href | = | uri | Die Funktionen des einbindenden Stylesheets überschreiben die Funktionen des eingebundenen Stylesheets. |
| top-level-elements | |||
| xsl:output | Steuert das Verhalten des XSLT Prozessors | ||
| method | = | xml| html| xhtml| text | Ausgabeformat |
| version | = | 1.0 | |
| encoding | = | UTF-8| ISO-8859-1| … | Zeichenkodierung der Ausgabe |
| omit-xml-declaration | = | yes| no | Unterdrückt die XML-Deklaration |
| standalone | = | yes| no | Setzt standalone-Attribute XML-Deklaration |
| doctype-public | = | string | Legt PUBLIC-Identifier in der DTD fest |
| doctype-system | = | string | Legt SYSTEM-Identifier in der DTD fest |
| cdata-section-elements | = | qnames | Liste von Elementen, deren Textknoten als CDATA-Sektion ausgegeben werden |
| indent | = | yes| no | Rückt das Ausgabedokument ein für bessere Lesbarkeit |
| media-type | = | text/xml| text/html| … | Legt den MIME-Typ des Ausgabedokuments fest |
| name | = | qname | |
| byte-order-mark | = | yes| no | |
| escape-uri-attributes | = | yes| no | |
| include-content-type | = | yes| no | |
| media-type | = | string | |
| normalization-form | = | NFC| NFD| NFKC| NFKD| fully-normalized| none| nmtoken | |
| undeclare-prefixes | = | yes| no | |
| use-character-maps | = | qnames | |
| xsl:namespace-alias | Ersetzt Namensraum-Präfixe in Elementen | ||
| stylesheet-prefix | = | prefix| #default | Alter Name |
| result-prefix | = | prefix| #default | Neuer Name |
| xsl:strip-space | Normalisiert Leerzeichen bei den aufgeführten Elementen | ||
| elements | = | token1 token2… | Standardmäßig bei allen Elementen |
| xsl:preserve-space | Übernimmt Leerzeichen bei den aufgeführten Elementen unverändert ins Ausgabedokument | ||
| elements | = | token1 token2… | |
| xsl:attribute-set | (xsl:attribute)* | Definiert Attribute zur Verwendung in <xsl:element> | |
| name | = | qname | Identifikation |
| use-attribute-sets | = | qname1 qname2… | Bindet weitere Attributmengen ein |
| xsl:variable | template | Definiert eine Variable | |
| name | = | qname | Name der Variable, wird mit referenziert |
| select | = | expression | Wert der Variable |
| xsl:decimal-format | template | Muster für die Umwandlung von Gleitpunktzahlen in der XPath-Funktion format-number() | |
| name | = | qname | Identifikation; Das Muster wird zur Vorgabe, wenn dieses Attribut fehlt |
| decimal-separator | = | char | Trennzeichen für Dezimalstellen, Vorgabe ist . |
| grouping-separator | = | char | Trennzeichen für Gruppen, Vorgabe ist , |
| infinity | = | string | Symbol für Unendlich, Vorgabe ist infinity |
| minus-sign | = | char | Präfix für negative Zahlen, Vorgabe ist - |
| NaN | = | string | Symbol für Nicht-Zahl, Vorgabe ist NaN |
| percent | = | char | Symbol für Prozent, Vorgabe ist % |
| per-mille | = | char | Symbol für Promille |
| zero-digit | = | char | Symbol für die Null und Basis für andere Ziffern, Vorgabe ist 0 |
| digit | = | char | Zeichen für Muster, Vorgabe ist # |
| pattern-separator | = | char | Trennzeichen für positive und negative Submuster, Vorgabe ist ; |
| xsl:key | Stattet Element mit einem Schlüssel aus, der über die XPath-Funktion key() referenziert werden kann. | ||
| name | = | qname | |
| match | = | pattern | |
| use | = | expression | |
| xsl:template | (xsl:param)* template | Funktion | |
| match | = | pattern | Muster für die Auswahl des Templates bei <xsl:apply-templates> |
| name | = | qname | Marke für Referenzierung, zum Beispiel durch <xsl:call-template> |
| mode | = | tokens | Unterscheidet Funktionen für dasselbe Muster |
| priority | = | number | Gewichtung bei der Auswahl des Templates bei <xsl:include> und <xsl:import> |
| as | = | sequence | |
| xsl:param | template | Parameterliste der Funktion, Vorgabewert, wenn selectAttribut leer ist | |
| name | = | qname | Variablenname, Wert wird mit {$name} ausgegeben. |
| select | = | expression | Vorgabewert |
| Kontrollfluss | |||
| xsl:apply-imports | Ruft Funktionen aus mit <xsl:import> importierten Stylesheets auf | ||
| xsl:apply-templates | (xsl:sort | xsl:with-param)* | Ruft Funktionen für alle selektierten Knoten auf | |
| select | = | node-set-expression | Default: Alle Kinder des Kontextknotens |
| mode | = | qname | Wählt die Funktion anhand des mode-Attributs aus |
| xsl:call-template | xsl:with-param | Ruft Funktion für den Kontextknoten auf | |
| name | = | qname | Name der Funktion |
| xsl:with-param | template | Parameter für den Aufruf einer Funktion | |
| name | = | qname | Name des Parameters |
| select | = | expression | Wert des Parameter, Inhalt muss leer sein |
| xsl:if | template | Bedingter Einschluss | |
| test | = | boolean-expression | Kriterium |
| xsl:choose | (xsl:when+) (xsl:otherwise?) | Fallunterscheidung | |
| xsl:when | template | Spezifischer Fall | |
| test | = | boolean-expression | Kriterium |
| xsl:otherwise | template | Allgemeiner Fall | |
| xsl:for-each | template | Iteriert über Knotenliste | |
| select | = | node-set-expression | XPath zur Auswahl der Knotenmenge |
| separator | = | string | Trennzeichen für Listenausgabe |
| disable-output-escaping | = | yes| no | FIXME |
| xsl:sort | Sortiert eine Knotenliste | ||
| select | = | string-expression | Sortierkriterium |
| lang | = | nmtoken | Kultureller Kontext |
| data-type | = | text| number| … | Alphabetisch oder numerisch sortieren |
| order | = | ascending| descinding | Reihenfolge aufsteigend oder absteigend |
| case-order | = | upper-first| lower-first | Groß- vor Kleinbuchstaben oder umgekehrt |
| collation | = | uri | |
| stable | = | yes| no | |
| xsl:fallback | template | Alternative für nicht unterstützte Erweiterungen | |
| xsl:message | template | Sendet Nachricht an den XSLT-Prozessor | |
| terminate | = | yes| no | XSL-Verarbeitung abbrechen |
| Ausgabe | |||
| xsl:value-of | Fügt den Textinhalt eines Knotens ein, abhängig vom Knotentyp | ||
| select | = | string-expression | XPath-Ausdruck |
| disable-output-escaping | = | yes| no | Zeichen wie <und &nicht automatisch ersetzen. |
| xsl:text | template | Gibt Text aus, ohne den Leerraum zu normalisieren | |
| disable-output-escaping | = | yes| no | Zeichen wie <und &nicht automatisch ersetzen. |
| xsl:element | template | Gibt ein Element aus | |
| name | = | qname | Elementname |
| namespace | = | uri | Namensraum |
| use-attribute-sets | = | qname1 qname2… | Liste von Verweisen auf <xsl:attribute-set> |
| xsl:attribute | template | Fügt dem übergeordneten Element ein Attribut hinzu | |
| name | = | qname | Attributname |
| namespace | = | uri | Namensraum |
| xsl:comment | |||
| xsl:processing-instruction | |||
| name | = | ncname | |
| xsl:copy | Kopiert den aktuellen Knoten ins Ausgabedokument | ||
| use-attribute-sets | = | qname1 qname2… | |
| xsl:copy-of | Kopiert den selektierten Teilbaum ins Ausgabedokument | ||
| select | = | expression | |
| xsl:number | Gibt eine Zahl aus | ||
| value | = | number-expression | Numerischer XPath-Ausdruck |
| level | = | single| multiple| any | Modus für die Summenbildung |
| count | = | pattern | Zählt die auf das Muster passenden Knoten auf dem entsprechenden level |
| from | = | pattern | Legt den Startknoten für die Zählung fest |
| format | = | string | Startzeichen für die Zählung |
| | | 1 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, … | |
| | | 01 | 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, … | |
| | | A | A, B, C, D, …, Z, AA, AB, AC, … | |
| | | a | a, b, c, d, …, z, aa, ab, ac, … | |
| | | i | i, ii, iii, iv, v, vi, vii, viii, ix, x, xi, xii, … | |
| | | I | I, II, III, IV, V, VI, VII, VIII, IX, X, XI, XII, … | |
| lang | = | langcode | Sprachcode für den kulturellen Kontext, z.B. de für Deutsch |
| letter-value | = | alphabetic| traditional | Alphabtisch, um z.B. I, J, K zählen zu können |
| grouping-separator | = | char | Trennzeichen für Tausender-Gruppen |
| grouping-size | = | number | Im Dezimalsystem sind Dreiergruppen üblich |
| Neu | |||
| xsl:sequence | |||
| select | = | expression | |
| xsl:for-each-group | |||
| select | = | expression | |
| group-by | = | expression | |
| group-adjacent | = | expression | |
| group-starting-with | = | pattern | |
| group-ending-with | = | pattern | |
| collation | = | uri | |
| xsl:analyze-string | |||
| select | = | expression | |
| regex | = | string | |
| flags | = | string | |
| xsl:matching-substring | template | ||
| xsl:non-matching-substring | template | ||
| xsl:import-schema | |||
| namespace | = | uri | |
| schema-location | = | uri | |
| xsl:next-match | template | ||
| xsl:character-map | |||
| name | = | qname | |
| use-character-maps | = | qname1 qname2… | |
| xsl:namespace | template | ||
| name | = | ncname | |
| select | = | expression | |
| xsl:perform-sort | template | ||
| select | = | expression | |
| template | text | Gibt Element unverändert aus (literal value expression). Leerraum im Text wird normalisiert, außer das Element ist in <xsl:preserve-space> aufgeführt | |
| attribute | = | …{expression}… | Text in geschweiften Klammern wird durch Auswertungsergebnis des X-Path Ausdrucks ersetzt |