eXtensible Style Language
Introduction
Dans ce chapitre je vais essayer de vous présenter brièvement les concepts de base
des feuilles de style XSL en m'appuyant sur le document de travail du W3C de Juillet 1998
car, c'est sur celui-ci que s'appuie en partie Internet Explorer 5.0.
Les informations que vous trouverez dans cette partie différeront peut-être un peu de
la norme étant donné que pour faire fonctionner nos exemples avec IE 5.0 il m'a fallu
les adapter "à la sauce" Microsoft. A partir de là, il est possible qu'en
fonction de l'évolution de la norme et des prochaines versions d'Internet Explorer que
nos exemples ne fonctionnent plus. Cependant l'essentiel est de comprendre le principe de
fonctionnement de cette nouvelle norme.
Ce que nous essayerons de comprendre :
- 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 ou 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 ça sans
modifier le document original.
Généralités
Ce qu'il faut retenir, c'est que pour définir une règle de style il faut :
| 1. décrire le squelette ou arbre du document (cf. XSLT:
XSL Tree) |
 |
| 2. décrire le style que l'on veut appliquer à chaque
articulation du squelette ou à chaque de noeud de l'arbre |
 |
En effet comme nous l'avons vu précédemment un document XML est vu auprès d'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
A ne pas confondre avec votre "boss", la règle que j'appellerai du
"patron" ou template rule si vous préférez décrit la structure de chaque
noeud de l'arbre ainsi que le style à appliquer à ce noeud.
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 noeud de
l'arbre
- on associe une action, une mise en forme, un formatage ou une transformation au noeud
résultant
Un motif sélectionne un noeud (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 noeuds 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="accueil">
<fo:block
font-family="times new roman, serif"
font-size="12pt"
text-color="red"
</fo:block>
</xsl:template> |
Exemple
Afin d'être un peu plus concrets voyons un exemple très simple.
Voici le document XML :
<accueil>Bonjour monde !</accueil> |
Et voici notre fichier XSL (légèrement simplifié afin de comprendre sa structure) :
<xsl:stylesheet>
<xsl:template match="/">
<b><i><xsl:value-of
select="accueil"/></i></b>
</xsl:template>
</xsl:stylesheet> |
Voilà le résultat :
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 accueil 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.
Conclusion
Je ne m'attarderais donc pas plus pour l'instant sur la norme XSL car les
spécifications n'étant pas encore achevées tout ce que je pourrai vous décrire
aujourd'hui ne sera plus valable demain. En effet, Microsoft Internet Explorer 5.0 étant
le seul à implémenter une partie de cette norme s'appuie sur des spécifications
ultérieures à celle que l'on connaît actuellement. De plus, XSL est une norme
relativement complexe à mettre en oeuvre et assez controversées par les différents
acteurs du marché.
Par conséquent, je pense qu'il est encore trop tôt pour utiliser XSL mais qu'il vaut
mieux à l'heure actuelle utiliser plutôt XML + CSS qui fonctionnent très bien ensemble
et qui sont à peu près conformes aux standards.
De cette manière, vos documents XML auront toutes les chances de perdurer.
|