Chapitre 21
Chapitre 21
Chapitre 21
encore exploiter les donnéesTout au long de ce tutoriel, nous avons découvert de nombreuses
technologies régulièrement utilisées en parallèle d'un document XML. Chaque technologie
ayant un but très précis : écrire une définition ou encore exploiter les données contenues dans
un document XML, par exemple.
Dans cette quatrième partie, nous allons aborder une nouvelle technologie appelée XSLT.
Cette technologie va nous permettre de transformer nos documents XML, c'est-à-dire, de
créer de nouveaux documents à partir des informations contenues dans un document XML.
Comme d'habitude, nous allons débuter en douceur. Ce premier chapitre a donc pour objectif
de faire connaissance avec la technologie qui va nous occuper dans les prochains chapitres.
Comme toutes les technologies que nous avons abordé dans ce tutoriel, XSLT est un standard
du W3C depuis 1999 pour sa première version et 2007 pour sa seconde version. Comme
d'autres technologies que nous avons vu jusqu'ici, les documents XSLT sont écrits à l'aide
d'un langage de type XML.
Si XSLT permet de faire les transformations, la technologie s’appuie sur une autre
technologie (que nous avons déjà vue ensemble) pour sélectionner des informations à
transformer : XPath.
Si vous aviez sauté la partie du tutoriel traitant de XPath ou si vous avez besoin de vous
rafraîchir la mémoire, n'hésitez pas à relire la partie 3 du cours !
Comment ça marche ?
Le principe de fonctionnement est assez simple : un document XSLT est associé à
undocument XML afin de créer un nouveau document d'une nature différente ou identique.
Principe d'une transformation XSLT
L'extension du fichier
Comme c'était le cas pour les DTD et les schémas XML, nous allons prendre l'habitude
d'écrire nos documents XSLT dans un fichier distinct du document XML dont les données
seront transformées.
Le prologue
Puisque la technologie XSLT utilise un langage de type XML, nous n'allons pas déroger à la
règle du prologue.
Comme vous pouvez le constater, le prologue est identique à ce que nous avons déjà vu pour
les documents XML et les schémas XML. Si vous avez besoin de vous rafraîchir la mémoire
sur les différents éléments qui composent ce prologue, je vous invite à relire la partie 1 de ce
tutoriel traitant du sujet.
Le corps
Le corps d'un fichier XSLT, au même titre qu'un document XML classique est constitué d'un
ensemble de balises dont l'élément racine. Comme c'était déjà le cas pour un schéma XML,
l'élément racine d'un document XSLT est imposé.
</xsl:stylesheet>
On remarque la présence de 2 attributs dans cet élément racine. Le premier est le numéro de
version que l'on souhaite utiliser. Dans le cadre de ce tutoriel, c'est la version 1 que nous
allons utiliser. Bien qu'une version 2 existe, la première version de XSLT reste encore
aujourd'hui majoritairement utilisée.
Le second attribut qui est xmlns:xsl nous permet de déclarer un espace de noms. Une
nouvelle fois, si vous n'êtes pas à l'aise avec cette notion, je vous encourage à lire le chapitre
dédié aux espaces de noms en annexe de ce tutoriel.
Via la déclaration de cet espace de noms, toutes les balises utilisées dans un document XSLT
doivent être préfixées par xsl:.
La balise output
Directement après l'élément racine, nous allons prendre l'habitude de placer
l'élément<xsl:output />. Cet élément permet de décrire le document produit à l'issue des
différentes transformations. Cet élément prend plusieurs attributs.
L'attribut method
UTF-8.
ISO-8859-1.
etc.
L'attribut indent
Ce troisième attribut permet d'indiquer si l'on souhaite que le document produit à l'issue des
transformations soit indenté ou non. 2 valeurs sont possibles :
Yes.
No.
Les autres attributs
Ces 2 attributs sont utilisés dans le cas où l'on souhaite associer un document DTD au
document produit par la transformation XSLT.
Maintenant que nous avons passé en revue tous les éléments permettant de construire la
balise<xsl:output />, je vous propose de voir quelques exemples.
Notre premier exemple nous permet de préciser que l'on souhaite produire un document XML
:
<xsl:output
method="xml"
encoding="UTF-8"
indent="yes" />
<xsl:output
method="html"
encoding="UTF-8"
doctype-system="http://www.w3.org/TR/html4/strict.dtd"
indent="yes" />
Pour résumer
Pour résumer, voici à quoi ressembleront nos documents XSLT :
<!-- le prologue -->
<xsl:output
method="html"
encoding="UTF-8"
doctype-system="http://www.w3.org/TR/html4/strict.dtd"
indent="yes" ></xsl:output>
</xsl:stylesheet>
Ce référencement se fait via une petite ligne à placer sous le prologue et avant l'élément racine
du document XML :
Il permet de définir le type du document que nous souhaitons référencer. Dans notre cas,
puisqu'il s'agit d'un document XSLT, il convient de renseigner la clef "text/xsl".
L'attribut href
Cet attribut, très connu de ceux qui manipulent régulièrement le HTML et ses variantes,
permet d'indiquer l'URI du document que l'on souhaite référencer.
Dans mon exemple, il s'agit d'un chemin relatif puisque le document XML et le document
XSLT sont situés dans le même dossier.
Pour résumer
Voici à quoi nos fichiers XML ressembleront :
<racine>
</racine>
En résumé
Un document XSLT est associé à un document XML afin de créer un nouveau
document.
L'extension portée par les documents XSLT est ".xsl".
Un document XSLT doit être référencé dans le document XML qu'il transforme.