Avec XSL / XSL-T
La solution ultime pour l'affichage et la mise en forme de documents XML se nomme : XSL (eXtensible Stylesheet Language). Avec XSL on a une maîtrise absolue sur le rendu d'un document XML; Non seulement XSL permet de personnaliser la présentation des informations, mais il permet aussi de choisir, d'organiser, de modifier, d'ajouter ou encore de trier et filtrer les données. Avec XSL, on a un accès total à l'ensembles des éléments constituants d'un document XML.
Dans cette section, je vais vous présenter les bases d'une sous-spécification de XSL connue sous l'acronyme XSL-T (XSL Transformation). En fait, XSLT transforme un document XML en document HTML.
Un document XSL est un document XML bien formé respectant la sémantique XSL. Une présentation XSL, permet d'allier la souplesse du HTML avec la richesse des styles CSS ainsi que la puissance des scripts DOM.
D'autres transformations sont possibles avec XSL-T : XML vers SVG, XML vers WML
et avec la sous-spécification XSL-FO : XML vers RTF, XML vers PDF.
-
Document XSL : Notions de base :
Une feuille de style XSL est un document texte qui doit être externe au document XML et porter l'extension
.xsl
Le document XSL doit contenir un prologue et un élément racine faisant référence à l'espace de nom utilisé.
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:steelesheet>
Les styles XSL ne définissent pas de règles de styles mais des modèles (templates). Chaque modèle définit le ou les nœuds pour lesquels il doit s'appliquer, il peut contenir des objets de transformation (éléments HTML/XHTML et XSL).
Si aucun mode de sortie n'est spécifié ou si le mode choisi est XML, les éléments de sortie HTML
doivent impérativement respecter la syntaxe XHTML ; En d'autres termes, chaque élément
HTML doit être correctement fermé.
<xsl:template match="pattern">
<div style="font: 12px">
<xsl:value-of select="pattern" />
</div>
</xsl:template>
Dans ce petit exemple, le modèle est défini par l'élément XSL
<xsl:template> et l'attribut match détermine le nœud pour lequel doit s'appliquer le modèle. L'élément XSL
<xsl:value-of> permet de récupérer le contenu texte de l'élément XML spécifié par la valeur de l'attribut select. La valeur des attributs match et select doit être un chemin de localisation (path) désignant une branche particulière de la hiérarchie du document XML ; Dans la terminologie XSL ce type de chemin est appelé
pattern.
La syntaxe des patterns est un langage particulier non-XML connu sous le nom de XPath.
Comme pour les styles CSS, il nous faut établir une liaison entre le document XML et la feuille de styles XSL à l'aide d'une instruction de traitement.
<?xml-stylesheet type="text/xsl" href="URL document styles XSL"?>