<xsl:stylesheet>-Element
Gibt das Dokumentelement einer XSLT-Datei an, die alle anderen XSLT-Elemente enthält.
Gibt das Dokumentelement einer XSLT-Datei an, die alle anderen XSLT-Elemente enthält. Dieses Element ist ein Synonym für das <xsl:transform>
-Element.
<xsl:stylesheet
id = id
extension-element-prefixes = NCNames
exclude-result-prefixes = NCNames
version = number>
</xsl:stylesheet>
Attribute
- id
Ein eindeutiger Bezeichner für das Einbetten von XSLT-Dateien.
- extension-element-prefixes
Der Namespace, der als Erweiterungsnamespace verwendet werden soll. Der Wert ist eine Liste mit Namespacepräfixen, die durch Leerraum getrennt sind. Der an die einzelnen Präfixe gebundene Namespace ist als Erweiterungsnamespace definiert. Der Standardnamespace (deklariert durchxmlns
) kann als Erweiterungsnamespace definiert werden, indem#default
in die Liste der Namespacepräfixe eingebunden wird. Das Definieren eines Namespaces als Erweiterungsnamespace ist nur innerhalb der Teilstruktur des Stylesheets wirksam, die an dem Element mitextension-element-prefixes
beginnt. Eine Teilstruktur, die an einem<xsl:stylesheet>
-Element beginnt, enthält keine Stylesheets, die in untergeordneten Elementen dieses<xsl:stylesheet>
-Elements enthalten sind oder in diese importiert wurden.
- exclude-result-prefixes
Der Namespace-URI (Uniform Resource Identifier) als ausgeschlossener Namespace. Der Wert ist eine Liste mit Namespacepräfixen, die durch Leerraum getrennt sind. Der an die einzelnen Präfixe gebundene Namespace ist als ausgeschlossener Namespace definiert. Der Standardnamespace (deklariert durchxmlns
) wird möglicherweise als ausgeschlossener Namespace definiert, indem#default
in die Liste der Namespacepräfixe eingebunden wird. Das Definieren eines Namespaces als ausgeschlossener Namespace ist effektiv innerhalb der Teilstruktur des Stylesheets, dessen Stamm sich im Element mit denexclude-result-prefixes
befindet. Eine Teilstruktur mit einem Stamm in einem<xsl:stylesheet>
-Element enthält keine Stylesheets, die von untergeordneten Elementen dieses<xsl:stylesheet>
-Elements importiert wurden bzw. in solchen enthalten sind.
- version
Erforderlich. Die XSLT-Version, die für die XSLT-Datei erforderlich ist. Der Wert muss für diese XSLT-Version auf"1.0"
festgelegt werden.
Elementinformationen
Anzahl der Vorkommen |
Eins |
Übergeordnete Elemente |
(Keine übergeordneten Elemente) |
Untergeordnete Elemente |
xsl:attribute-set, xsl:import, xsl:include, xsl:output, xsl:param, xsl:template, xsl:variable, msxsl:script |
Hinweise
Jede XSTL-Datei muss <xsl:stylesheet>
als zugehöriges Dokumentelement deklarieren.
Ein Stylesheet kann eine Reihe von Vorlagenregel-Deklarationen (<xsl:template>
) verwenden, um explizite Transformationen für ein Dataset festzulegen. Mithilfe von <xsl:include>
und/oder <xsl:import>
können weitere Stylesheets eingebunden werden. Dadurch können vorhandene, bereits getestete Vorlagenregeln wiederverwendet werden. Das Stylesheet kann auch globale Variablen (<xsl:param>
) und benannte Konstanten (<xsl:variable>
) unterstützen, die transformationsübergreifend verwendet werden können. Mithilfe des <xsl:param>
-Elements können Parameter in ein Stylesheet übergeben werden. Durch die Verwendung eines Erweiterungselements (<msxsl:script>
) lässt ein Stylesheet sogar die Implementierung benutzerdefinierter Funktionen zu. Von einer solchen Vorgehensweise wird jedoch im allgemeinen abgeraten.
Im folgenden Beispiel wird ein <xsl:stylesheet>
-Element mit mehreren allgemeinen Namespaces veranschaulicht.
Ein XSLT-Stylesheet muss mindestens den Namespace für die XSL-Transformation deklarieren. In MSXML, Version 4.0, und höheren Versionen muss dieser Namespace wie folgt deklariert werden:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Wenn Elemente oder Datentypen aus anderen Namespaces verarbeitet werden, müssen die betreffenden Namespaces vom Stylesheet ebenfalls deklariert werden. Die folgende XSLT-Stylesheetdeklaration legt z. B. fest, dass zusätzliche XML-Vokabulare, die für Microsoft-Erweiterungen und XSL-FO (XSL Formatting Objects, XSL-Formatierungsobjekte) definiert sind, verwendet werden müssen.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
Beispiel
In diesem Beispiel wird eine vollständige XSLT-Datei veranschaulicht, die eine Reihe von Vorlagen enthält. Die Stammvorlage (match="/"
) definiert die Struktur des allgemeinen Ausgabedokuments, und die anderen Vorlagen definieren die Struktur der Elemente <name>
, <address>
und <phone>
. Diese HTML-Ausgabedatei wurde mithilfe von msxml.exe an der Eingabeaufforderung erstellt.
XML-Datei (customers.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>
XSLT-Datei (customers.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<xsl:for-each select="customers/customer">
<TR>
<xsl:apply-templates select="name" />
<xsl:apply-templates select="address" />
<xsl:apply-templates select="phone" />
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="name">
<TD STYLE="font-size:14pt font-family:serif">
<xsl:apply-templates />
</TD>
</xsl:template>
<xsl:template match="address">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="phone">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select='.'/>
</xsl:template>
</xsl:stylesheet>
Ausgabe
Dies ist die formatierte Ausgabe:
Dies ist die Prozessorausgabe:
<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>
</BODY>
</HTML>