Benutzer:TobbiM/Artikelwerkstatt/Elements

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Vorlage:Unreferenced XSLT (Extensible Stylesheet Language Transformations) definiert viele Elemente, mit denen Transformationen beschrieben werden, die auf ein Dokument angewendet werden können. Dieser Artikel listet einige dieser Elemente auf. Eine Einführung in XSLT befindet sich im Hauptartikel.

XSLT-Logikelemente[Bearbeiten | Quelltext bearbeiten]

Knotenbezeichnung Beschreibung/Attribute Eltern-/Kindelemente Beispiel
xsl:apply-templates Specifies that other matches may exist within that node; if this is not specified any matches will be ignored

If “select” is specified, only the templates that specify a “match” that fits the selected node or attribute type will be applied, i.e. the matching elements by "select" attribute in apply-templates corresponding to the template that match the same elements . If “mode” is specified, only the templates that have the same “mode” and have an appropriate “match” will be applied

Any parent

Can contain any number of xsl:sort and xsl:with-param children

<xsl:apply-templates/>

xsl:choose

Mehrfachauswahl

Keine Attribute

Beliebiges Elternelement

Enthält xsl:when-Blöcke und beliebig viele xsl:otherwise-Blöcke

<xsl:choose>


</xsl:choose>

xsl:for-each

Erstellt eine Schleife, welche pro Treffer einmal wiederholt wird

select” gibt das Trefferkriterium an

Beliebiges Elternelement

Darf jegliche XML-Elemente enthalten

<xsl:for-each select="input[@name=$name]">



</xsl:for-each>

xsl:if

Ja oder Nein-Bedingungen

“test” gibt die Bedingungen an, unter welchen der if-Block ausgeführt wird

Beliebiges Elternelement

Darf jegliche XML-Elemente enthalten

<xsl:if test="$type='text' or $type='password'">


</xsl:if>

xsl:otherwise

Die Standardauswahl, wenn keine der mit “xsl:when” spezifizierten Kriterien getroffen werden xsl:choose

Darf jegliche XML-Elemente enthalten

<xsl:otherwise>


</xsl:otherwise>

xsl:stylesheet

Element auf oberster Ebene. Kommt nur einmal in einem Stylesheet-Dokument vor.

“version” gibt an, welche XSLT-Version benutzt wird “xmlns:xsl” gibt die URL dieses Standards an

Top-level-Element. Enthält alle XML-Elemente <xsl:stylesheet>

… </xsl:stylesheet>

xsl:template

Specifies processing templates

“match” gibt an, unter welchen Bedingungen die Vorlage verwendet werden soll.
“name” gibt der Vorlage einen Namen, welchen xsl:call-template zum Aufruf dieser Vorlage verwenden kann

xsl:stylesheet

Kann jegliche XML-Elemente enthalten

<xsl:template match="//input">


</xsl:template>

xsl:variable

Ermöglicht die Deklaration einer Variable

“name” ist der Variablenname. Auf den Namen kann später mit “$name” zugegriffen werden
“select” ist der Wert der Variable

Beliebiges Elternelement

Keine Kindelemente

<xsl:variable name="type" select="@type"/>

xsl:when

Ja oder Nein-Bedingungen

“test” bestimmt die Bedingungen, bei welchen der if-Block betreten wird

xsl:choose

Darf jegliche XML-Elemente enthalten

<xsl:when test="$type='radio'">


</xsl:when>

Beispiel-XSLT-Stylesheet, welches Logikelemente verwendet[Bearbeiten | Quelltext bearbeiten]

<xsl:stylesheet>
<xsl:template match="//input">
<xsl:variable name="type" select="@type"/>
<xsl:variable name="name" select="@name"/>
<xsl:if test="$type='text' or $type='password' or $type='radio' or $type='checkbox'">
	<xsl:choose>
		<xsl:when test="$type='radio'">
                    <xsl:if test="not(preceding-sibling::input[@type='radio'])">
                        <select name="{@name}">
                        <xsl:for-each select="../input[@name=$name]">
                                <option value="{@value}">
                                        <xsl:apply-templates/>
                                </option>
                        </xsl:for-each>
                        </select>
                    </xsl:if>
		</xsl:when>
		<xsl:when test="$type='text'">
			<input name="{@name}" type="{@type}">
				<xsl:apply-templates/>
			</input>
		</xsl:when>
		<xsl:when test="$type='password'">
			<input name="{@name}" type="{@type}">
				<xsl:apply-templates/>
			</input>
		</xsl:when>
	</xsl:choose>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

XSLT-Elemente zur Ein-/Ausgabe von Dateien[Bearbeiten | Quelltext bearbeiten]

Knoten Beschreibung/ Attribute Eltern-/Kindelemente Beispiel
xsl:call-template Ruft die Vorlage auf, dessen Name angegeben wurde.

name ist das name-Attribut im jeweiligen xsl-template

Jedes Elternelement

Kinder sind xsl:with-param

<xsl:call-template name="lib:make-elem">
xsl:import Ruft eine andere XSLT-Datei auf

href ist die URI der Datei

xsl:stylesheet

Keine Kindelemente

<xsl:import href="..\Library\FuncLib.xslt"/>
xsl:output Gibt an, wie Daten zurückgegeben werden

method gibt an, welche Art von Daten zurückgegeben werden
omit-xml-declaration zeigt an, ob der Anfangs-XML-Tag mit eingebunden werden soll.
encoding gibt an, wie die Daten zurückgegeben werden sollen.

xsl:stylesheet

Keine Kindelemente

<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"/>
xsl:param Bezeichnet einen Parameter, der zusammen mit einer Vorlage mit Hilfe von xsl:call-template aufgerufen wird. xsl:template

Keine Kindelemente

<xsl:param name="elem-name"/>
xsl:text Gibt den Tag-Inhalt aus Jedes Elternelement

Keine Kindelemente

<xsl:text>ClaimNumber ClaimSeqNumber</xsl:text>
xsl:value-of Gibt eine Variable aus

select gibt die Variable an

Jedes Elternelement

Keine Kindelemente

<xsl:value-of select="$s"/>
xsl:with-param Bezeichnet einen Parameter, der an xsl:call-template übergeben wird. Der Parameter muss mit einem xsl:param in der Vorlage übereinstimmen

name gibt den Parameternamen an
select gibt den Wert des Parameters an

xsl:call-template

Keine Kindelemente

<xsl:with-param name="elem-name" select="'hma:ClaimNumber'"/>

Clientseitiges XSLT kann in einen Browser implementiert werden, indem nachfolgende Zeile zur Quell-XML-Datei hinzugefügt wird, direkt nach dem Wurzelknoten: <?xml-stylesheet type="text/xsl" href="family.xsl"?>

Dieses Vorgehen wird auf der Seite http://www.xml.com/pub/a/2000/10/25/msie/index.html beschrieben.

Andere XSLT-Semantiken[Bearbeiten | Quelltext bearbeiten]

Symbol Bedeutung Wo verwendet
| Vereinigungs-Operator. Verwendet, um Knoten in XPath-Ausdrücken zu gruppieren. Attribute von Elementen auswählen, beispielsweise xsl:when, xsl:if, xsl:for-each
& und Jedes Bedingungs- oder Übereinstimmungskriterium, beispielsweise xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select
<!-- Kommentaranfang Überall, außer innerhalb eines Tags
--> Kommentarende Überall, außer innerhalb eines Tags
$ Anfang eines Variablennamens Überall in einem Tag, beispielsweise in xsl:value-of.select und xsl:variable.name
name() Der Name des aktuell bearbeiteten Tags. Nützlich, wenn das Übereinstimmungskriterium |s (Pipe-Zeichen) enthält Jedes Bedingungs- oder Übereinstimmungskriterium, beispielsweise xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select
@ Ein Attribut innerhalb der XML-Datei Jedes Bedingungs- oder Übereinstimmungskriterium, beispielsweise xsl:if.test, xsl:when.test, xsl:template.select and xsl:for-each.select

Von XSLT definierte Funktionen[Bearbeiten | Quelltext bearbeiten]

Die folgenden Funktionen koennen in vielen XSLT-Attributen vorkommen, beispielsweise in xsl:value-of.select and xsl:for-each.select.

Funktion Beschreibung/ Syntax Beispiel
ceiling Die Aufrundungsfunktion ceiling gibt den kleinsten Integerwert zurueck, der gleich oder groesser dem numerischen Wert des Zahlenparameters ist. ceiling(3.57)
concat Fuegt zwei oder mehr Zeichenketten zusammen, welche in Klammern angegeben werden concat($fname,’ ‘, $lname)
count Die Funktion count zaehlt die Anzahl an Knoten in einem Knotensatz und gibt diesen zurueck. count(elements)
floor Die Abrundungsfunktion gibt den groessten Integerwert zurueck, der gleich oder kleiner dem numerischen Wert des Zahlenparameters ist. floor(3.57)
normalize-space Entfernt Leerzeichen vom Anfang und Ende der Zeichenkette. normalize-space($fname)
position Die position-Funktion gibt die Position in der aktuellen Knotenliste zurück, welche gerade von einem xsl:for-each oder xsl:apply-templates-Element bearbeitet wird. Es gibt keine Argumente position()
round Die Rundungsfunktion round rundet eine Nummer zu ihrem nähesten Integerwert. round(3.57)
string Die string-Funktion konvertiert einen Wert in seine Stringrepräsentation. string()
string-length The string-length function returns the number of characters in a string. The string argument is optional. If omitted, the default is to use the string value of the context node. string-length(‘hello’)
substring A segment within a variable value. Substring takes three parameters: the input variable, the first character to be selected, and the length of the resulting string substring($dob,4,2)
substring-after The substring-after function returns a portion out of the string specified in the string argument that occurs after the substring specified in the substring argument. substring-after(‘In 1814 we took a little trip’, ‘we’)
substring-before The substring-before function returns a portion out of the string specified in the string argument that occurs before the substring specified in the substring argument. substring-before(‘In 1814 we took a little trip’, ‘we’)
sum The sum function adds and returns the total value of a set of numeric values in a node-set or list of values. sum(1,3,7,12)
translate Takes the string in the value argument, replaces all occurrences of a string specified in the string1 argument with substitute characters specified in string2 argument and returns the modified string. translate(‘colored armor’, ‘or’, ‘our’)

External links[Bearbeiten | Quelltext bearbeiten]