Lehrer Nussbaumer - XML, XSL et cetera

XML

XSL

  1. XSLT
  2. XSLT-Elemente
  3. XSLT-Funktionen
  4. XPath
  5. XPath-Funktionen
  6. XSL-FO
  7. XSL Formatierungsobjekte
  8. XSL Eigenschaften
  9. Verschiedene Transformationen

Anwendungen 

Editoren

Parser u.a.

Schnittstellen


-----------------
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


© Alfred Nussbaumer, Weblog