Balise |
Attributs |
Résumé |
import |
|
Importe la feuille de style spécifiée dans l'URI
|
include |
|
Inclus la feuille de style spécifiée dans l'URI
Note : Importer ou inclure des feuilles de style revient à faire la même chose à l'exception du fait que les règles modèles et les définitions de la feuille de styles qui importe ont une préférence sur celles de la feuille de styles importée.
Les éléments fils de l'élément xsl:import doivent précéder tous les autres éléments fils de l'élément xsl:stylesheet, y compris n'importe quel élément fils de l'élément xsl:include . Lorsque xsl:include est utilisé pour inclure une feuille de styles, tous les éléments xsl:import du document inclus sont déplacés dans le document incluant cette feuille de styles et placés après tous les éléments xsl:import existant dans ce document.
|
strip-space |
|
Spécifie les nodes pour lesquels les nodes enfants ne contenant que des blancs (#x20, #x9, #xD ou #xA) sont à supprimer.
Cette suppression est faite une fois l'arbre pour le document source ou la feuille de styles construit, mais avant tout autre traitement XSLT.
Voir aussi : fonction normalize-space()
Note : Attribut de type TOKENS : séparation des valeurs par des blancs (elements="ARTICLE TITRE ITEM")
|
preserve-space |
|
Spécifie les nodes pour lesquels les nodes enfants ne contenant que des blancs sont à conserver.
|
output |
- method="xml" | "html" | "text"
- version=nmtoken
- encoding=string
- omit-xml-declaration="yes" | "no"
- standalone="yes" | "no"
- doctype-public=string
- doctype-system=string
- cdata-section-elements=qnames
- indent="yes" | "no"
- media-type=string
|
Définit le format de sortie
|
key |
- name=qname
- match=pattern
- use=expression
|
Préparation d'un index en mémoire pour optimiser les références croisées.
Exemple d'utilisation :
Document XML |
<?xml version="1.0"?>
<trucs>
<couleurs>
<couleur idc="c1">bleu</couleur>
<couleur idc="c2">vert</couleur>
<couleur idc="c3">gris</couleur>
</couleurs>
<truc codeCouleur="c3">Ceci est gris</truc>
<truc codeCouleur="c2">Ceci est vert</truc>
<truc codeCouleur="c1">Ceci est bleu</truc>
<truc codeCouleur="c2">Ceci est vert</truc>
<truc codeCouleur="c3">Ceci est gris</truc>
</trucs>
|
Feuille de style |
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"/>
<xsl:key name="CC" match="couleur" use="@idc" />
<xsl:template match="/">
<html><body><dl>
<xsl:apply-templates />
</dl></body></html>
</xsl:template>
<xsl:template match="couleurs" />
<xsl:template match="truc">
<dt><xsl:value-of select="key('CC',@codeCouleur)" /></dt>
<dd><xsl:text /></dd>
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
|
Résultat HTML |
- gris
Ceci est gris
- vert
Ceci est vert
- bleu
Ceci est bleu
- vert
Ceci est vert
- gris
Ceci est gris
|
Note : Le nom de la clé (attribut name ) est choisi arbitrairement
Voir aussi : fonction key()
|
decimal-format |
- name=qname
- decimal-separator=char
- grouping-separator=char
- infinity=string
- minus-sign=char
- NaN=string
- percent=char
- per-mille=char
- zero-digit=char
- digit=char
- pattern-separator=char
|
Déclare un format d'affichage des nombres. Si aucun nom (attribut name ) n'est spécifié, ce format devient le format par défaut.
|
namespace-alias |
- stylesheet-prefix=prefix | "#default"
- result-prefix=prefix | "#default"
|
Déclare un alias d'un URI d'espace de noms sur un autre URI. Permet de contourner le problème du préfixe xsl qui serait à générer dans un document de sortie lui-même feuille de style.
Exemple d'utilisation :
Document XML |
<AAA>
<!-- Dans cet exemple, le document source n'est pas interprété -->
</AAA>
|
Feuille de style |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:alias="alias-namespace"
version="1.0" >
<xsl:output method="xml" indent="yes" />
<xsl:namespace-alias stylesheet-prefix="alias" result-prefix="xsl" />
<xsl:template match="/" >
<alias:stylesheet version="1.0" >
<alias:template match="/" >
<alias:text>
Hello, world!
</alias:text>
</alias:template>
</alias:stylesheet>
</xsl:template>
</xsl:stylesheet>
|
Résultat |
<?xml version="1.0" encoding="UTF-8"?>
<alias:stylesheet
xmlns:alias="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<alias:template match="/">
<alias:text>
Hello, world!
</alias:text>
</alias:template>
</alias:stylesheet>
|
Note : L'utilisation de alias plutôt que de xsl est parfaitement conforme dans une feuille de style.
L'équivalence est faite dans la balise initiale : xmlns:alias="http://...".
|
attribute-set |
- name=qname
- use-attribute-sets=qnames
|
Définit un jeu d'attributs (spécifiés par le contenu). Ce jeu pourra ensuite être utilisé pour créer une balise sans répéter l'ensemble des attributs.
Cette balise contient une ou plusieurs balise(s) <xsl:attribute> .
Exemple d'utilisation :
Document XML |
<AAA>
<!-- Dans cet exemple, le document source n'est pas interprété -->
</AAA>
|
Feuille de style |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" >
<xsl:output method="xml" indent="yes" />
<xsl:attribute-set name="set1" >
<xsl:attribute name="a" >1</xsl:attribute>
<xsl:attribute name="b" >2</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="set2" >
<xsl:attribute name="cc" >33</xsl:attribute>
<xsl:attribute name="dd" >44</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="set3" >
<xsl:attribute name="eee" >555</xsl:attribute>
<xsl:attribute name="fff" >666</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="set4" use-attribute-sets="set3" />
<xsl:template match="/" >
<xsl:element name="A" use-attribute-sets="set1 set2 set3" >
<xsl:attribute name="xxx">valeur</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
|
Résultat |
<?xml version="1.0" encoding="UTF-8"?>
<A a="1" b="2" cc="33" dd="44" eee="555" fff="666" xxx="valeur"/>
|
Note : L'utilisation de l'attribut use-attribute-sets dans la balise attribute-set provoque l'utilisation des balises d'un autre jeu prédéfini (ici, set4 utilise les attributs de set3 ).
|
variable |
- name=qname
- select=expression
|
Définition d'une variable. Une variable peut contenir tout type de donnée. L'attribut name définit le nom de la variable. La valeur de la variable peut se définir de deux façons :
- Soit par le contenu de la balise (exemple : <variable name="deux">2</variable>).
- Soit par l'expression contenue dans l'attribut
select .
La référence à une variable se fait avec un dollar précédant son nom (ex: $deux).
Portée : la portée d'une variable est limitée au node où elle est utilisée.
Voir aussi : param
|
param |
- name=qname
- select=expression
|
Définition d'un paramètre d'exécution. Le mécanisme est très proche de celui des variables. La différence se situe au niveau
de la valeur, qui, pour le paramètre, est une valeur par défaut.
La référence à un paramètre se fait avec un dollar précédant son nom (ex: $deux).
Exemple d'utilisation :
Document XML |
<AAA>
<!-- Dans cet exemple, le document source n'est pas interprété -->
</AAA>
|
Feuille de style |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" >
<xsl:output method="text" />
<xsl:template match="/" >
<html><body>
<!-- appel de fonction -->
<ul>
<xsl:call-template name="print" >
<xsl:with-param name="A" >11</xsl:with-param>
<xsl:with-param name="B" >33</xsl:with-param>
</xsl:call-template>
<!-- appel de fonction -->
<xsl:call-template name="print" >
<xsl:with-param name="A" >55</xsl:with-param>
</xsl:call-template>
</ul>
</body></html>
</xsl:template>
<!-- définition de fonction -->
<xsl:template name="print" >
<xsl:param name="A" />
<xsl:param name="B" >111</xsl:param>
<xsl:element name="li">
<xsl:value-of select="$A" />
<xsl:text > + </xsl:text>
<xsl:value-of select="$B" />
<xsl:text >=</xsl:text>
<xsl:value-of select="$A+$B" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
|
Résultat |
- 11 + 33 = 44
- 55 + 111 = 166
|
Voir aussi : variable, instruction with-param.
|
template |
- match=pattern
- name=qname
- priority=number
- mode=qname
|
Définition d'une règle modèle de contruction du résultat pour la cible donnée (match ).
Lorsque l'attribut name est indiqué, le template ne s'applique que sur appel extérieur par la balise call-template .
En l'absence de nom, le modèle défini s'applique dès que la cible correspondante est rencontrée dans l'arbre source.
|
stylesheet |
- extension-element-prefixes=tokens
- exclude-result-prefixes=tokens
- version=number
|
L'élément stylesheet est la racine d'une feuille de style.
|