<xsl:namespace-alias> |
Permet de définir un alias pour un espace de noms dans l'éventualité où l'utilisation directe de l'espace de noms compliquerait le traitement. Cet élément rarement utilisé est la méthode la plus simple pour rédiger une feuille de style générant une autre feuille de style.
Catégorie
Elément de niveau supérieur
Attributs obligatoires
stylesheet-prefix Définit le préfixe utilisé dans la feuille de style pour faire référence à l'espace de noms. result-prefix Définit le préfixe de l'espace de noms auquel l'alias fait référence. Ce préfixe doit être déclaré dans la feuille de style, peu importe si les éléments de la feuille de style l'utilisent ou non.
Attributs facultatifs
Aucun.
Contenu
Aucun. <xsl:namespace-alias> est un élément vide.
Apparaît dans
<xsl:stylesheet>. L'élément <xsl:namespace-alias> 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 7.1.1, Eléments de résultat littéral.
Exemple
Cet élément n'est pas utilisé très souvent, son existence reposant uniquement sur l'hypothétique cas de figure où une feuille de style XSLT aurait besoin de générer une autre feuille de style XSLT. Dans le cas d'essai suivant, on crée une feuille de style qui génère la transformation d'identité, une feuille de style qui copie simplement tous les documents d'entrée dans l'arborescence de résultat. La feuille de style originale utilisant l'alias de l'espace de noms est la suivante :
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:xslout="(the namespace URI doesn't matter here)">

      <xsl:output method="xml" indent="yes"/>

      <xsl:namespace-alias stylesheet-prefix="xslout"
        result-prefix="xsl"/>

      <xsl:template match="/">
        <xslout:stylesheet version="1.0">
          <xslout:output method="xml"/>
          <xslout:template match="/">
            <xslout:copy-of select="."/>
          </xslout:template>
        </xslout:stylesheet>
      </xsl:template>

    </xsl:stylesheet>
L'exécution de cette feuille de style avec tout document XML renvoie la nouvelle feuille de style suivante :
    <?xml version="1.0" encoding="UTF-8"?>
    <xslout:stylesheet xmlns:xslout="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
    <xslout:output method="xml"/>
    <xslout:template match="/">
    <xslout:copy-of select="."/>
    </xslout:template>
    </xslout:stylesheet>
La feuille de style générée peut être utilisée pour copier tout document XML. Dans la feuille de style originale, l'attribut <xsl:namespace-alias> est utilisé, faute d'autre moyen disponible permettant une identification auprès du processeur XSLT avec lequel les éléments XSLT devraient être traités, ceux devant être traités comme littéral ont été transmis à la sortie. L'utilisation de l'alias de l'espace de noms permet de générer les éléments XSLT requis dans la sortie. Dans le document résultat, la valeur correcte de l'espace de noms a été déclarée automatiquement dans l'élément <xslout:stylesheet>.