XSLT Befehlsreferenz

Mit (!) bezeichnete Attribute sind erzwungene Attribute, also Attribute, die angegeben werden müssen.

  <xsl:apply-imports/>
    Attribute: -


Der xsl:apply-imports Befehl dient der Konfliktlösung zwischen verschiedenen Stylesheets (Recommendation, Abschnitt 5.5).
Mit diesem Befehl können Anweisungen für Elemente, die mit einem eingebundenen Stylesheet angesprochen werden, eingesetzt werden, d.h., daß die Anweisungen des importierenden Stylesheets außer Kraft gesetzt bzw. ignoriert werden.

 
  <xsl:apply-templates/>
    Attribute: select mode


Der Befehl selektiert alle Kindelemente, des im Suchmuster angegebenen Dokumentknotens. Falls das Attribut select nicht mit einem Parameter gesetzt ist, werden sämtliche Elemente des gewählten Suchmusters extrahiert.
xsl:apply-templates ist nur unterhalb von xsl:template erlaubt.

 
  <xsl:attribute/>
    Attribute: name (!) namespace xml:space


Mit xsl:attribute kann unterhalb des Elements xsl:element ein Attribut erzeugt werden, welches im Ergebnisbaum dem Element hinzugefügt wird. Es ist nur die Eingabe eines Attributs pro xsl:attribute Aufruf möglich.

 
  <xsl:attribute-set/>
    TOP LEVEL ELEMENT
    Attribute: name (!) use-attribute-sets


Mit dem xsl:attribute-set Befehl werden mehrere Attribute zu einem Set zusammengefaßt. Innerhalb des Befehls xsl:element können diese dann mit dem Attribut use-attribut-sets durch Setzen des Setnamens wieder eingebunden werden. Der Name des Attribut-sets muß ein gültiger XML Name sein.

 
  <xsl:call-template/>
    Attribut: name (!)


Dieser Befehl ruft innerhalb eines XSL Stylesheets ein xsl:template auf, welchem über das Attribut name ein eindeutiger Bezeichner zugewiesen wurde.

 
  <xsl:choose/>
    Element: <xsl:when test=""/> Attribut: xml:space


Der Befehl xsl:choose erzwingt das Unterelement xsl:when mit dem Attribut test. Hiermit wird, unterhalb der Ebene von xsl:template eine bedingte Abfrage, ähnlich wie eine if-else Bedingung, ermöglicht. Optional kann der Befehl xsl:otherwise hinzugezogen werden.

 
  <xsl:comment/>
    Attribut: xml:space


Fügt einen Kommentar in den erzeugten Ergebnisbaum ein.

 
  <xsl:copy/>
    Attribute: use-attribute-sets xml:space


Kopiert alle Knoten, die innerhalb des Befehls stehen.

 
  <xsl:copy-of/>
    Attribute: select (!)



 
  <xsl:decimal-format/>
    Attribute: digit infinity name NaN per-mille percent u.a.



 
  <xsl:element/>
    Attribute: name (!) namespace use-attribute-sets xml:space


Der Befehl xsl:element setzt in das durch die Umwandlung erzeugte Dokument ein neues Element mit dem im Attribut name angegebenen Elementnamen.

 
  <xsl:fallback/>
    Attribute: xml:space



 
  <xsl:for-each/>
    Attribute: select (!) xml:space


Der Befehl ist ansatzweise ähnlich zu verstehen, wie die aus Programmiersprachen bekannten Schleifen, die der Logik Initialisierung, Abbruchbedingung und Inkrementierung gehorchen. Dabei sucht xsl:for-each nach beliebig vielen Geschwisterelementen im Dokument.
xsl:for-each darf erst unterhalb des xsl:template Knotens verwendet werden, das Attribut select ist zwingend erforderlich.

 
  <xsl:if/>
    Attribute: test (!) xml:space



 
  <xsl:import/>
    TOP LEVEL ELEMENT
    Attribute: href (!)


Alle mit dem Befehl xsl:import eingebundenen Stylesheets, erweitern die Funktionalitäten des importierenden Stylesheets.
Sollte es zwischen den Regeln des importierenden Stylesheets und des importierten Stylesheets zu Konflikten kommen, so werden die mit xsl:import importierten Stylesheets stets nachrangig behandelt.
Möchte man dies verhindern, sollte man den Befehl xsl:include und eventuell xsl:apply-imports verwenden. Werden mehrere Stylesheets eingebunden, so regelt sich deren Priorität nach der Reihenfolge der Einbindung, d.h. die zuletzt eingebundenen Stylesheets haben die höchste Priorität.

 
  <xsl:include/>
    TOP LEVEL ELEMENT
    Attribute: href (!)


Im Gegensatz zu xsl:import werden die XSL Befehle des aufgerufenen Stylesheets hier direkt von einem Remote-Host in den Code geladen. Mit xsl:include eingebundene Stylesheets werden im Konfliktfall mit dem importierenden Stylesheet gleichrangig behandelt.

 
  <xsl:key/>
    TOP LEVEL ELEMENT
    Attribute: key (!) match (!) use (!)


Der xsl:key Befehl bezeichnet ein bestimmtes Suchmuster, welches auf ein Element und den Wertebereich eines bestimmten Attributes zutrifft.
Beispiel:
<xsl:key name="test" match="Testelement" use="@Attributname"/>.

Der Aufruf erfolgt z.B. in einem xsl:apply-templates Befehl mit
<xsl:apply-templates select="key('test', 'abc')"/>.

Damit werden alle aufgerufenen Testelemente ausgelesen, deren Attribute den Wert abc haben.

 
  <xsl:locale/>
    TOP LEVEL ELEMENT
    Attribute:



 
  <xsl:message/>
    Attribute: terminate xml:space



 
  <xsl:namespace-alias/>
    Attribute: stylesheet-prefix (!) result-prefix (!)


Mit dem Befehl xsl:namespace-alias ist es möglich, Namensraum Pseudonyme zu verwenden. So kann man bspw. unter dem Attribut stylesheet-prefix einen Namensraum angeben, der dann in der erzeugten mit dem unter result-prefix gesetzten Namensraum ersetzt wird. Beispiel:
<xslt:stylesheet
xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
xmlns:xsl="http://myapplication.myenterprise.com/namespace">
<xslt:namespace-alias stylesheet-prefix="xsl" result-prefix="xslt"/>
<xslt:template name="nameSpaceTest">
<xsl:stylesheet version="1.0">
... </xslt:template>
</xslt:stylesheet>

erzeugt nach der Transformation eine XML Instanz mit dem Namensraum xsl und dem Bezeichner xmlns:xsl="http://www.w3.org/1999/XSL/Transform".

 
  <xsl:number/>
    Attribute: count format level from u.a.


Der Befehl xsl:number numeriert die mit xsl:for-each angesteuerten Elemente in der angegebenen Form. Dabei wird mit dem Attribut format die Art der Numerierung angegeben. count selektiert ebenfalls den Elementwert, level gibt die Tiefe der zu durchlaufenden Knoten an (single, any, multiple).

 
  <xsl:output/>
    TOP LEVEL ELEMENT
    Attribute: method standalone version encoding doctype-public|system u.a.


Der Befehl xsl:output gibt für den Ergebnisbaum den Dokumenttyp vor, gängige Parameter sind text, xml oder html. Diese werden im Attribut method gesetzt, Standard ist bei XML als encoding UTF-8.

 
  <xsl:param/>
    TOP LEVEL ELEMENT
    Attribute: name (!) select


xsl:param ermöglicht die Definition von Parametern, z.B. in einem Template Block, welche anschließend mit $name aufgerufen werden. Dabei ist der Wert ein default value, der überschrieben werden kann, indem man den xsl:with-param Befehl nutzt. Benannte Parameter können genau einmal pro Template benutzt werden oder aber als globale Parameter unterhalb von xsl:stylesheet definiert werden.

 
  <xsl:preserve-space/>
    TOP LEVEL ELEMENT
    Attribut: elements (!)


Alle im Attribut elements des Befehls xsl:preserve-space aufgeführten Elemente einer XML-Instanz werden im Output ihren Leerraum behalten.

 
  <xsl:processing-instruction/>
    Attribute: name (!) xml:space


Erzeugt im Ergebnisbaum eine Processing Instruction, wobei das name Attribut den Namen repräsentiert, alle anderen Parameter, wie Attribute, werden in den Value geschrieben.

Beispiel:

<xsl:processing-instruction name='apache'>
include='security.ssl'
</xsl:processing-instruction>


ergibt im Ergebnisbaum

<?apache include='security.ssl'?>

 
  <xsl:sort/>
    Attribute: case-order data-type lang order select


Der Befehl xsl:sort sortiert die auszugebenden Elemente nach den in den Attributen angegebenen Vorgaben. Dieses Element darf nur als Kindelement von xsl:apply-templates oder xsl:for-each erscheinen. Mit dem Attribut select wird der entsprechende XPath Ausdruck gesetzt, nach dem sortiert werden soll. Das Attribut order ermöglicht z.B. eine auf- oder absteigende Sortierung. Es ist auch möglich, verschiedene Sortierungen hintereinander zu setzen und somit miteinander zu verbinden: dabei gilt der erste zutreffende Befehl als Hauptkriterium, die nachfolgenden Befehle werden als Nebenkriterien interpretiert.

 
  <xsl:strip-space/>
    TOP LEVEL ELEMENT
    Attribut: elements (!)


Alle im Attribut elements des Befehls xsl:strip-space aufgeführten Elemente einer XML-Instanz werden im Output ihren Leerraum verlieren.

 
  <xsl:stylesheet/>
    TOP LEVEL ELEMENT
    Attribute: version (!) xmlns:xsl xml:space id u.a.


Erlaubt das Einbinden eines XSL Stylesheets.

 
  <xsl:template/>
    TOP LEVEL ELEMENT
    Attribute: match (!) mode name priority xml:space


Der Befehl xsl:template mit dem erzwungenen Attribut match ist einer der wichtigsten XSLT-Befehle überhaupt. Er beschreibt mit dem Wert des Attributes match jenen Knoten, auf den ein Suchmuster definiert werden soll. Nahezu alle XSLT-Befehle dürfen in der Befehlshierarchie nur unterhalb dieses Befehls eingesetzt werden.

 
  <xsl:text/>
    Attribut: disable-output-escaping


Der Befehl xsl:text setzt in das durch die Umwandlung erzeugte Dokument Text ein.

 
  <xsl:transform/>
    Attribute: version (!) xml:space xmlns:xsl idu.a.



 
  <xsl:value-of/>
    Attribute: select (!) disable-output-escaping


Der Befehl xsl:value-of kommt meist in Templates zum Einsatz, um einzelne Werte auszulesen und in die mit der Transformation erzeugte Ausgabe zu überführen. xsl:value-of erzwingt das Attribut select welches den zu extrahierenden Wert benennt.

 
  <xsl:variable/>
    TOP LEVEL ELEMENT
    Attribute: name (!) select


Der Befehl xsl:variable definiert eine Variable innerhalb eines Templates oder als direktes Kindelement von xsl:stylesheet kann es auch globale Variablen definieren. xsl:variable erzwingt das Attribut name, zusätzlich kann auch ein select Attribut genutzt werden.
Im Unterschied zum Befehl xsl:param kann eine Variable nicht überschrieben werden, wie dies bei Template-Parametern mit xsl:with-param möglich ist.

 
  <xsl:when/>
    Attribute: test (!) xml:space



 
  <xsl:with-param/>
    Attribute: name (!) select


Der Befehl xsl:with-param wird innerhalb von xsl:call-template oder xsl:apply-templates Anweisungsblöcken verwendet. Dabei referenziert der im name Attribut gesetzte Parameter (der ein gültiger XML Name sein muß) auf den entsprechenden Parameter innerhalb des aufgerufenen Templates, der mit xsl:param gesetzt wurde.

 

 

Copyright & Kontakt
jcpohl@gmx.de
© www.jcpohl.de 1999/2000