Élément <xsl:import>
Importe un autre fichier XSLT.
<xsl:import
href = "uri-reference" />
Attributs
- href
Requis. Référence URI (Uniform Resource Identifier) identifiant le fichier XSLT à importer.
Informations sur les éléments
Nombre d'occurrences |
Illimité |
Éléments parents |
|
Éléments enfants |
(Pas d'éléments enfants) |
Notes
Un fichier XSLT peut importer un autre fichier XSLT à l'aide d'un élément <xsl:import>. Importer un fichier XSLT équivaut à l'inclure, si ce n'est que les définitions et les règles de modèle contenues dans le fichier destination prennent le pas sur celles du fichier XSLT importé. L'élément <xsl:import> possède un attribut href dont la valeur est une référence URI identifiant la feuille de style à importer. L'URI relatif se résout par rapport à l'URI de base de l'élément <xsl:import>.
L'élément <xsl:import> n'est autorisé que comme élément de niveau supérieur. Les éléments enfants <xsl:import> doivent précéder tous les autres éléments enfants d'un élément <xsl:stylesheet>, y compris tous les éléments enfants <xsl:include> . Lorsque <xsl:include> est utilisé pour inclure une feuille de style, tous les éléments <xsl:import> contenus dans le document inclus y sont déplacés de manière à suivre tous les éléments <xsl:import> existant dans ce document inclus.
Les éléments <xsl:stylesheet> rencontrés durant le traitement d'une feuille de style qui contient des éléments <xsl:import> sont traités comme formant une arborescence d'importation. Dans l'arborescence d'importation, chaque élément <xsl:stylesheet> possède un enfant d'importation pour chaque élément <xsl:import> qu'il contient. Tous les éléments <xsl:include> sont résolus avant de construire l'arborescence d'importation. Un élément <xsl:stylesheet> contenu dans l'arborescence d'importation est défini comme ayant une priorité d'importation inférieure à celle d'un autre élément <xsl:stylesheet> de l'arborescence d'importation s'il est visité avant cet élément <xsl:stylesheet> dans un parcours post-ordonnancement de cette arborescence (autrement dit, un parcours de l'arborescence d'importation où un élément <xsl:stylesheet> est visité après ses enfants d'importation). Toutes les définitions et règles de modèle ont une priorité d'importation déterminée par l'élément <xsl:stylesheet> qui les contient.
Par exemple, supposons que les conditions suivantes sont vraies.
Le fichier XSLT A importe les fichiers XSLT B et C, dans cet ordre.
Le fichier XSLT B importe le fichier XSLT D.
Le fichier XSLT C importe le fichier XSLT E.
L'ordre de priorité d'importation (en commençant par la plus faible) est D, B, E, C, A.
Notes
Puisque les éléments <xsl:import> doivent apparaître avant toute définition ou règle de modèle, une implémentation qui traite les fichiers XSLT importés à l'endroit où elle rencontre l'élément <xsl:import> trouvera les définitions et les règles de modèle en ordre croissant de priorité d'importation.
En général, une définition ou une règle de modèle de plus haute priorité d'importation prévaut sur une définition ou une règle de modèle de plus faible priorité d'importation. C'est défini dans le détail pour chaque type de définition et pour les règles de modèle.
Une erreur se produit si un fichier XSLT s'importe lui-même, directement ou indirectement. À part cela, le cas où un fichier XSLT ayant un URI particulier est importé en plusieurs endroits n'est pas traité spécialement. L'arborescence d'importation aura un élément <xsl:stylesheet> séparé pour chaque emplacement qui est importé.
Notes
Si <xsl:apply-imports> est utilisé, le comportement peut être différent du comportement qui aurait été observé si le fichier XSLT avait été importé uniquement à l'emplacement ayant la plus haute priorité d'importation.
Fichier XSLT (importer.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:attribute-set name="note-style">
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
Voir également la rubrique suivante :