Introduction
Comme vous savez XML est un language de structuration de données et non de présentation. Ainsi XSL (eXtensible StyleSheet Language) est un language recommandé par le W3C pour effectuer la représentation des donnée d’un document XML.
XML est un language permettant de définir des feuille de style pour les document XML, au même titre que les CSS (Cascading StyleSheets) pour le language HTML. XSL est compatible avec les CSS.
Toutefois, contrairement aux CSS, XSL permet aussi de retraiter un document XML afin d’en modifier totalement sa structure, ce qui permet à partir d’un document XML d’être capable de générer d’autres types de documents (PostScript, HTML, Tex, RTF, …) ou bien un fichier XML de structure différente.
Ainsi la structuration des données (définie par XML) et leur représentation (définie par un langage tel que XSL) sont séparées. Cela signifie qu’il est possible à partir d’un document XML de créer des documents utilisant différentes représentations (HTML pour créer des pages web, WML pour les mobiles WAP, …).
XSLT
XSLT ou eXtensible Stylesheet Transformation permet de transformer la structure des éléments XML.
Un document XML peut être représenté comme une structure arborescente. Ainsi XSLT permet de transformer les documents XML à l’aide de feuilles de style contenant des règles appelées template rules (ou règles de gabarit en français).
Le processeur XSLT (composant logiciel chargé de la transformation) crée un structure logique arborescente (on parle d’arbre source) à partir du document XML et lui fait subir des transformations selon les template rules contenues dans la feuille XSL pour produire un arbre résultat représentant, par exemple, la structure d’un document HTML. Les composants de l’arbre résultat sont appelés objets de flux.
Chaque template rule définit des traitements à effectuer sur un élément (noeud ou feuille) de l’arbre source. On appelle “patterns” (en français motifs, parfois “éléments cibles“) les éléments de l’arbre source.

L’arbre source peut être entièrement remodelé et filtré ainsi qu’ajouter du contenu à l’arbre résultat, si bien que l’arbre résultat peut être radicalement différent de l’arbre source.
Structure d’un document XSL
Un document XSL étant un document XML, il commence obligatoirement par la balise suivante :
70205f3f977e2dcd6319bc2f747eb65d
D’autre part, toute feuille de style XSL est comprise entre les balises <xsl:stylesheet …> et </xsl:stylesheet>. La balise xsl:stylesheet encapsule des balises xsl:template définissant les transformations à faire subir à certains éléments du document XML.
3ba7a2ef3d38f0a6b7036e8c4d54197c<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template ... > <!-- traitements à effectuer --> </xsl:template> </xsl:stylesheet>
Association d’une feuille XSL à un document XML
Une feuille de style XSL (enregistré dans un fichier dont l’extension est .xsl) peut être liée à un document XML (de telle manière à ce que le document XML utilise la feuille XSL) en insérant la balise suivante au début du document XML :
2cee1de5d62ac6afaf725a40ddc95eaa
Exemple de transformation
Les template rules sont des balises XSL permettant de définir des opérations à réaliser sur certains éléments du document XML utilisant la page XSL, c’est-à-dire généralement de transformer un tag XML en un tag HTML (généralement plusieurs).
Voici un exemple simple de transformation via XSLT :
Le fichier XML source (data.xml):
36211b4790c6064cfca83228f08b206b 84674794fe0392892ad43adb83118f40
Le fichier XSL (template.xsl):
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">ddd750512ee1e60b9427d2665827f9af
Voici la représentation de la résultante:
My CD Collection
| Title | Artist |
|---|---|
| Empire Burlesque | Bob Dylan |
| Hide your heart | Bonnie Tyler |
| Greatest Hits | Dolly Parton |
| Still got the blues | Gary Moore |