Introduction :
Le XSL (eXtended Style Language) permet de créer des feuilles de styles pour les documents XML.
Cependant les normes en XML évoluant de façon rapide, il est probable que ce qui est dit maintenant ne marchera plus dans les années à venir.
Pour crée une feuille XSL il faut :
![]() |
Les concepts généraux de XSL. |
![]() |
La construction d'un arbre de résultat à partir d'un document XML. |
![]() |
Le formatage et la stylisation d'un arbre de résultat. |
XSL est particulièrement puissant dans le sens où l'on peut, à partir du document source, obtenir un document résultat qui peut être très différent. Par exemple, on pourrait créer des graphiques à partir des valeurs contenues dans le document XML, de même que l'on pourrait bâtir automatiquement un sommaire et un index et tout cela sans modifier en rien le document original
Principes :
Pour définir une feuille de style il faut :
![]() |
Décrire le squelette du document XSL . |
![]() |
Décrire le style que l'on veut utiliser à chaque articulation du squelette . |
En effet comme nous l'avons vu précédemment un document XML est vu à travers un interpréteur XML (ou parser) comme une structure arborescente, un peu à l'image d'une arborescence d'un disque dur.
La règle du patron :
La règle que j'appellerai du "patron" ou template rule décrit la structure de chaque nœud de l'arbre ainsi que le style à appliquer à ce nœud.
Une feuille de style XSL est tout simplement un document XML qui contient tout un ensemble de règles. Ainsi, comme tout bon document XML elle doit suivre les règles de construction afin d'être bien formée.
Cette règle se décompose en deux parties :
![]() |
on associe un motif (pattern) au patron (template) afin d'identifier chaque nœud de l'arbre |
![]() |
on associe une action, une mise en forme, un formatage ou une transformation au nœud résultant |
Un motif sélectionne un nœud (en fait une balise ou élément) en utilisant un ou plusieurs des critères suivants :
![]() |
un nom |
![]() |
l'ancêtre de l'élément |
![]() |
un identifiant unique (ID) |
![]() |
des jokers |
![]() |
un attribut de l'élément source |
![]() |
sa position relative par rapport à ses éléments voisins ou frères |
Le formatage de l'arbre
Dans l'ancienne spécification, la mise en forme des nœuds de l'arbre se fait en utilisant les balises du jeu d'instruction de HTML; c'est actuellement ce qui fonctionne avec Internet Explorer 5.0.
Dans la nouvelle spécification, la mise en forme ressemble plus à la syntaxe de CSS à laquelle quelques éléments on été scindés pour d'augmenter la précision du formatage des documents.
Voici à quoi ressemble XSL dans sa nouvelle mouture:
<xsl: template match="hello"> <fo:block font-family="times new roman, serif" font-size="12pt" text-color="green" </fo:block> </xsl:template> |
Exemple : Afin d'être un peu plus concrets voyons un exemple très simple.
Voici le document XML : | Et voici notre fichier XSL (légèrement simplifié afin de comprendre sa structure) : |
<hello>HELLO WORLD !</hello> | <xsl:stylesheet> <xsl:template match="/"> <b><i><xsl:value-of select="hello"/></i></b> </xsl:template> </xsl:stylesheet> |
Voilà le résultat :
Bonjour monde !
Dans cet exemple basique, nous avons sélectionné l'élément racine du document (root) qui est en réalité notre document tout entier en utilisant élément template avec l'attribut match.
Ensuite nous recherchons l'élément ou balise hello en utilisant le mot clé value-of select que nous encadrons par les balises de mise en forme HTML.
Vous pouvez remarquer que tous les éléments XSL sont préfixés par xsl:, ceci est obligatoire et constitue ce que l'on appelle l'espace de nom ou name-space. Les espaces de nom sont utilisés afin de bien dissocier les différentes syntaxes que l'on peut trouver dans un document XML.
Conclusions :
![]() |
Le XSL se révèle comme un éditeur de feuille de style puissant et souple . |
![]() |
Cependant la norme est en pleine modification (peu stable à long terme). |
![]() |
De plus elle est assez complexe à mettre en oeuvre et peu évoluée sur certains points. |
Il est donc trop tôt pour utiliser des feuilles de styles XSL. Il vaut mieux utiliser le couple XML +
CSS car il suit plus le concept définit dans le cahier des charges de l'XML.
Ainsi les documents XML crées peuvent être diffusés sur le net sans se retrouver obsolète du jour au lendemain .