XSL : eXtensible Stylesheet Language
XSL : Généralités
1. Introduction
XSL (eXtensible Stylesheet Language) est un langage qui permet de décrire la manière dont des documents XML doivent être présentés. Ainsi, là où XML structure le fond d'un document, son contenu, XSL est utilisé pour structurer sa forme. La portée de XSL ne se résume pas à la mise en forme de documents XML puisque ce langage permet également de transformer un document XML en un autre document XML, reprenant tout ou une partie du contenu original.
Le W3C définit XSL comme une famille de langages qui se compose de :
- XSLT (XSL Transformations) : le langage de transformation de documents XML ;
- XPath (XML Path) : le langage utilisé par XSLT pour naviguer dans un document XML ;
- XSL-FO (XSL Formatting Objects) : un vocabulaire pour formater le contenu d’un doc XML.
2. XML : Rappels
XML (eXtensible Markup Language = Langage de balisage extensible) est un standard du W3C qui permet de créer des langages de structuration de données spécialisés et personnalisés.
C’est ce qu’on appelle un méta-langage, mais c’est aussi un format de fichier.
XML est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises, à la différence que les balises XML décrivent le contenu plutôt que la présentation : Contrairement aux balises HTML servant à définir l’aspect d’une page Web, un fichier XML contient des balises définissant des données.
Généralement, on représente un document XML sous la forme d’un arbre.
3. Qu'est-ce qu'XSL ?
XSL est une recommandation du W3C depuis janvier 2000 et est issu de :
- DSSSL (Document Style Semantics and Specification Language ou Langage de sémantique et de spécification du style de document) qui est la norme internationale ISO 10179 de feuilles de style pour les SGML (Langage normalisé de balisage généralisé)
- CSS2 (Cascade StyleSheet 2), les feuilles de style en cascade, sur lesquelles vous aurez un exposé par Vincent Robert très prochainement.
XSL est souvent considéré comme l’équivalent du CSS pour HTML, mais c’est plus que ça : l’objectif de XSL est de définir un langage de présentation de document, indépendant des systèmes et des logiciels. On pourra ainsi avec XSL mettre en forme des données XML sous forme Web (HTML) et imprimable (au format PDF par exemple).
Il est intéressant de noter qu’une feuille de style XSL est elle-même un doc XML.
4. Que permet XSL ?
XSL permet d'effectuer de nombreuses opérations sur des documents XML :
- Réutiliser les données : on peut appliquer une feuille de style XSL à plusieurs documents XML
- Réutiliser les données : on peut appliquer une feuille de style XSL à plusieurs documents XML
- Présenter de plusieurs manières les données : utiliser sur un même document XML avec plusieurs doc XSL pour autant de représentations différentes des données sur différents supports (moniteur, écran de télévision, téléphone portable, impression et même version auditive)
- Standardiser facilement les styles : utiliser la même feuille de style pour tous les documents XML
- Libérer les auteurs de contenus des contraintes de style et de présentation : on différencie bien le contenu de la présentation avec le modèle XML/XSL (données/règles de présentation)
D'une manière générale, XSL permet de :
Formater un document XML
Une feuille de style XSL agit à la manière d’une feuille de style CSS, en appliquant des styles sur les éléments XML.
Transformer un document XML
C’est là que XSL se différencie du CSS (en plus du fait qu’un doc XSL est un doc XML). Il est possible de combiner les fonctionnalités suivantes :
- De trier les données XML, de définir l’ordre dans lequel elles vont être affichées au niveau du formatage
- De sélectionner les données à afficher
- De réorganiser les éléments d’un document XML et de générer un autre document XML de structure totalement différente. Cette fonctionnalité est utilisée pour intégrer un doc XML à un ensemble de doc XML. Si les éléments ne correspondent pas, il faut les rendre compatibles.
5. Conclusion
XSL permet de disposer pour XML, de nombreuses fonctionnalités, plus évoluées que celle de CSS pour l’HTML. Nous allons maintenant étudier la technologie principale de XSL, souvent assimilé à XSL : XSLT.