<xsl:import> |
Permet d'importer les modèles figurant dans une autre feuille de style XSLT. Contrairement à <xsl:include>, tous les modèles importés avec <xsl:import> ont une priorité inférieure à ceux de la feuille de style d'inclusion. Autre différence entre <xsl:include> et <xsl:import>, <xsl:include> peut apparaître à un emplacement quelconque dans une feuille de style alors que <xsl:import> ne peut apparaître qu'au début.
Catégorie
Elément de niveau supérieur
Attributs obligatoires
href Définit l'URI de la feuille de style importée.
Attributs facultatifs
Aucun.
Contenu
Aucun. <xsl:import> est un élément vide.
Apparaît dans
L'élément <xsl:import> est un élément de niveau supérieur qui ne peut apparaître que sous forme d'enfant de l'élément <xsl:stylesheet>.
Défini dans
XSLT section 2.6.2, Importation d'une feuille de style.
Exemple
La feuille de style simple importée est la suivante :
    <?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>
Cette feuille de style ainsi que la feuille de style l'ayant importée sont appliquées au document XML suivant :
    <?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>
Une fois le document XML source traité à l'aide de la feuille de style, les résultats sont les suivants :
    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
L'élément <xsl:import> est maintenant utilisé dans une autre feuille de style :
    <?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>
Les résultats de la seconde feuille de style sont les suivants :
    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
Le modèle des deux feuilles de style était de type match="listitem". Le modèle de la feuille de style importée étant de priorité inférieure, il n'est donc pas utilisé. La feuille de style importée étant la seule à posséder un modèle de type match="title", le modèle importé est donc utilisé pour l'élément <title>.