Pour importer des XSL à partir d'autres XSL, utiliser la balise :
<xsl:import href="..." />
Il est bien sûr possible d'y mettre un chemin relatif tel que [maXslVoisine].xsl afin de récupérer les fichiers à proximité.
Cependant, il est recommandé pour une partie des fichiers d'utiliser des protocoles afin de récupérer simplement les XSL et éventuellement de pouvoir les récupérer à plusieurs endroits possibles
Quand il n'y a aucun protocole, le chemin du fichier est donc relatif.
<xsl:import href="commons/menus.xsl" />
En ajoutant le protocole skin, il est possible d'aller chercher n'importe quel fichier dans la charte graphique courante en utilisant un chemin relatif à la racine du dossier cms/skins/[skinName]/.
<xsl:import href="skin://stylesheets/menus.xsl" />
Le protocole template permet de récupérer un fichier dans un gabarit donné dans la charte graphique courante. Le chemin doit correspondre au chemin du dossier cms/skins/[skinName]/templates/[templateName]/.
Sous cette forme, le protocole template renvoie le fichier du gabarit courant dans la charte graphique courante :
<xsl:import href="template://stylesheets/menus.xsl" />
Ici, comme précédemment sauf que s'il n'y a pas de gabarit courant, c'est le fichier du gabarit page qui sera automatiquement renvoyé :
<xsl:import href="template:#page://stylesheets/menus.xsl" />
Enfin, cet exemple force le gabarit qu'il faut utiliser, cela peut notamment être utile pour faire hériter un nouveau gabarit d'un autre gabarit et y ajouter quelques subtilités :
<xsl:import href="template:page://stylesheets/menus.xsl" />
Le protocole plugin permet de récupérer une XSL dans un plugin donné. Si le plugin n'existe pas ou n'est pas présent, une erreur surviendra. Le chemin attendu doit partir de la racine du plugin.
<xsl:import href="plugin:web://stylesheets/utils.xsl"/>
Lors de l'utilisation du protocole service, le CMS cherche le fichier dans l'ordre :
Lors de l'utilisation du protocole view, le CMS cherche le fichier dans l'ordre :
Si le plugin Web n'est pas présent, le protocole ne regarde pas au niveau de la charte graphique, ni du plugin Web.
Ce protocole n'est utilisé qu'à des fins de surcharge de quelques documents, l'idéal étant de prendre exemple sur la charte graphique de démonstration. Il est notamment utilisé pour surcharger docbook2html.xsl qui permet de transformer du contenu riche en HTML. Ce protocole est une concaténation de plusieurs fichiers selon les plugins activés dans le projet : CMS (avec l'ensemble des éléments classiques), forms (avec les éléments spécifiques aux formulaires), inlinemedia (avec les objets médias), etc. Lors de la surcharge de n'importe quel élément de docbook2html.xsl, il faut :