<xsl:import> |
Diese Anweisung gestattet den Import der Vorlagen aus einem anderen XSLT-Stylesheet. Im Gegensatz zu <xsl:include> haben alle Vorlagen, die mit <xsl:import> importiert werden, eine niedrigere Priorität als die Vorlagen in dem Stylesheet, in das importiert wird. Ein weiterer Unterschied ist, dass <xsl:include> an beliebiger Stelle in einem Stylesheet vorkommen kann, während <xsl:import> gleich am Anfang erscheinen muss.
Kategorie
Element der obersten Ebene
Obligatorische Attribute
href Dieses Attribut definiert den URI des zu importierenden Stylesheets.
Optionale Attribute
Keine
Inhalt
Keiner. <xsl:import> ist ein leeres Element.
Übergeordnetes Element
<xsl:import> ist ein Element der obersten Ebene und kann nur dem Element <xsl:stylesheet> untergeordnet werden.
Definition
XSLT-Abschnitt 2.6.2, Stylesheet-Import
Beispiel
Hier ein simples Stylesheet, das importiert werden soll:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:apply-templates select="list/title"/>
        <xsl:apply-templates select="list/listitem"/>
      </xsl:template>

      <xsl:template match="title">
        <xsl:value-of select="."/>
        <xsl:text>: </xsl:text>
        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
      </xsl:template>

      <xsl:template match="listitem">
        <xsl:text>HERE IS LISTITEM NUMBER </xsl:text>
        <xsl:value-of select="position()"/>
        <xsl:text>:  </xsl:text>
        <xsl:value-of select="."/>
        <xsl:value-of select="$newline"/>
      </xsl:template>

    </xsl:stylesheet>
Sowohl dieses Stylesheet als auch das importierende werden mit dem folgenden XML-Dokument getestet:
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Hier das Ergebnis, wenn Sie das XML-Ausgangsdokument mit diesem Stylesheet verarbeiten:
    A few of my favorite albums:

    HERE IS LISTITEM NUMBER 1:  A Love Supreme
    HERE IS LISTITEM NUMBER 2:  Beat Crazy
    HERE IS LISTITEM NUMBER 3:  Here Come the Warm Jets
    HERE IS LISTITEM NUMBER 4:  Kind of Blue
    HERE IS LISTITEM NUMBER 5:  London Calling
    HERE IS LISTITEM NUMBER 6:  Remain in Light
    HERE IS LISTITEM NUMBER 7:  The Joshua Tree
    HERE IS LISTITEM NUMBER 8:  The Indestructible Beat of Soweto
Jetzt wird die Anweisung <xsl:import> in einem anderen Stylesheet verwendet:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:import href="listitem.xsl"/>

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:apply-templates select="list/title"/>
        <xsl:apply-templates select="list/listitem"/>
      </xsl:template>

      <xsl:template match="listitem">
        <xsl:value-of select="position()"/>
        <xsl:text>.  </xsl:text>
        <xsl:value-of select="."/>
        <xsl:value-of select="$newline"/>
      </xsl:template>

    </xsl:stylesheet>
Hier die vom zweiten Stylesheet erzeugten Ergebnisse:
    A few of my favorite albums:

    1.  A Love Supreme
    2.  Beat Crazy
    3.  Here Come the Warm Jets
    4.  Kind of Blue
    5.  London Calling
    6.  Remain in Light
    7.  The Joshua Tree
    8.  The Indestructible Beat of Soweto
Beachten Sie, dass beide Stylesheets eine Vorlage mit match="listitem" hatten. Die Vorlage im importierten Stylesheet hat eine niedrigere Priorität und wird daher nicht verwendet. Nur das importierte Stylesheet hat eine Vorlage mit match="title", daher wird die importierte Vorlage auf das Element <title> angewendet.