Freigeben über


<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 durch xmlns) 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 mit extension-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 durch xmlns) 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 den exclude-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:

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>

Siehe auch

Referenz

<xsl:transform>-Element