XSL est un langage d'expression de feuilles de styles définissant, d'une part, un langage de transformation de documents XML (XSLT) et, d'autre part, un langage permettant de spécificer une sémantique de formatage. C'est grâce à XSL que peuvent être réalisées des présentations de document XML, que celles-ci soient liées au papier, à WML, au Web, ou à tout autre support électronique.

D'aucuns diront que la présentation sur papier n'est pas de même nature que celle sur le Web... et ils auront raison. En revanche, il est intéressant d'utiliser un même langage de spécification pour définir les représentation nécessaires aux deux environnements. Un paragraphe est toujours un paragraphe, même s'il doit être présenté de façon différente.

Du coup, l'objectif de XSL est de fournir un langage de spécification de formatage seulement, et non pas un moteur de composition.

Recommandations (attention, cette partie est maintenue de façon occasionnelle)
pictos/frflag.gif 
Le langage extensible de feuille de style (XSL)
- Recommandation, 15-10-2001, version 1.0
- accès à l'historique des versions
xmlns:fo="http://www.w3.org/1999/XSL/Format"
pictos/enflag.gif 
Extensible Stylesheet Language
- Recommandation, 15-10-2001, version 1.0
- accès à l'historique des versionsnouveau
xmlns:fo="http://www.w3.org/1999/XSL/Format"
pictos/enflag.gif 
XSL Requirements Summary
- Projet en cours, 11-05-1998, version 19980511
- accès à l'historique des versions
Objectifs

L'objectif de XSL est de définir un langage de présentation de document, indépendant des systèmes et des logiciels. Autant la validité de ce concept est prouvée sur Internet, autant, dès lors qu'il s'agit de présenter des documents sur papier, il n'existe pas ce type de méthode en dehors de la sphère SGML.

L'intérêt ? En environnement ouvert, comme Internet, il devient possible d'exprimer des intentions de présentation ; charge au logiciel de restitution d'utiliser au mieux cette information. De façon plus générale, surtout pour l'impression, l'intérêt est de pouvoir définir de façon formelle une spécification de présentation et d'utiliser, ensuite, des logiciels de présentation, de façon indifférenciée.

Si l'objectif n'était que Internet, la spécification ne serait pas aussi importante ! C'est parce que l'objectif est de "sortir" de ces pages Internet construites à partir de tableaux et, aussi, parce que l'objectif est le formatage papier que la recommandation est gigantesque : modéliser les acquis de présentation hérités de plus de 200 années de culture papier nécessite un ensemble d'objets de formatage important. La taille de la spécification est également liée à un objectif d'internationalisation : elle doit permettre d'écrire en anglais et en français ; elle doit aussi permettre d'écrire en arabe (de droite à gauche) et en japonais (de haut en bas).

Principes

Une feuille de styles XSL est définie comme un document XML contenant des spécifications de transformation et de formatage d'objets. Elle permet de transformer un document XML d'entrée en un autre document XML, dont les éléments de structure sont tous liés à des éléments typographiques représentant des intentions de formatage : des pages, des fenêtres, des paragraphes, des listes, etc.

Le document XML résultant de la transformation doit ensuite être pris en charge par un outil de formatage, qui créera une version papier, PDF, DVI, RTF, HTML, Wap, ou tout autre format. La spécification différencie donc deux processus : la transformation d'arbre (tree transformation) et le formatage (formating).

Le document présenté pouvant être structurellement très différent du document XML d'origine, tout le pouvoir de transformation d'XSLT doit pouvoir être utilisé dans la première partie du processus, pour ajouter, par exemple, des tables de matières ou encore filtrer et réordonner des informations.

Principe de fonctionnement des processeurs XSL (issu de [ recommandation Extensible Stylesheet Language]

Pour permettre de réaliser une impression papier de qualité et automatisée, le modèle de présentation introduit des notions d'aires, dans lesquelles se coulent des flux de texte. Ainsi, il est possible de composer un document bilingue, où chaque paragraphe est écrit en français et en italien, en coulant le flux francais dans une aire représentant la colonne de gauche, tandis que l'autre flux se coule dans l'aire représentant la colonne de droite.

D'un point de vue typographique, XSL définit les objets de formatage nécessaires aux documents, fenêtres, pages, hyperliens, paragraphes, listes, tableaux, images, caractères, etc.

Où en est-on ?

La recommandation a longtemps erré, avant de décider de reprendre comme base, afin de l'industrialiser, la norme DSSSL. Aujourd'hui la recommandation est votée.

Il est intéressant de remarquer que beaucoup de personnes trouvent cette spécification trop lourde et, donc, inapplicable. Ceci est confirmé par le fait qu'il y a, dans cette étape de maturité de la recommandation, peu de logiciels qui implémentent l'existant.

Pourquoi ? Certainement car, d'un part, beaucoup d'acteurs de Web ne reconnaissent pas la nécessité d'une impression sur papier de qualité. Mais, d'autre part et surtout, car il n'existe que peu de logiciels aujourd'hui capables de réaliser, sur des pages un tant soit peu complexes, des formatages automatiques de qualité. En effet, tous les logiciels de PAO, même s'ils réalisent certains traitements automatisés (comme pour l'application de feuilles de styles simples), laissent toujours, en dernier ressort, l'utilisateur décider et agir sur la composition finale des pages. Ceci n'est plus possible si l'on souhaite que les documents soient formatés de façon complètement automatisée et, du coup, XML et les documents structurés nécessitent de nouvelles classes d'outils de composition... Toute la question sera ensuite de savoir qui décidera de se lancer sur ce marché.

Exemple

La feuille de styles ci-après, présuppose, dans un document, un élément date, contenant les éléments jour, mois et an.

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:fo="http://www.w3.org/1999/XSL/Format">

...

<xsl:template match="date">

<fo:block text-align="centered" font-size="10pt" line-height="12pt" space-before.optimum="3pt" font-style="italic">

<xsl:text>Paris, le </xsl:text>

<xsl:value-of select="jour"/>

<xsl:text>-</xsl:text>

<xsl:value-of select="mois"/>

<xsl:text>-</xsl:text>

<xsl:value-of select="an"/>

</fo:block>

</xsl:template>

...

</xsl:stylesheet>

Cette feuille de styles, appliquée au document suivant :

<doc>

...

<date>

<jour>11</jour>

<mois>06</mois>

<an>2000</an>

</date>

...

</doc>

... générera le paragraphe ci-après, dans un arbre d'objets de formatage.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

...

<fo:block text-align="centered" font-size="10pt" line-height="12pt" space-before.optimum="3pt" font-style="italic">Paris, le 11-06-2000</fo:block>

...

</fo:root>

FR EN
puce 
Free Library, édité par PerfectXML.com
Extraits d'ouvrages publiés sur le sujet
puce 
Using XSL Formatting Objects, J. David Eisenberg, 17/01/2001, édité par xml.com
Première partie
puce 
Using XSL Formatting Objects, J. David Eisenberg, 24/01/2001, édité par xml.com
Deuxième partie
FR EN
puce 
FOP (Formateur)
puce 
3B2 (Formateur)
puce 
XSL Formater (Formateur)
puce 
FOP (Formateur)
puce 
3B2 (Formateur)
puce 
XSL Formater (Formateur)
FR EN
puce 
Titre : Exemples d'utilisation de XSL
Répertoire d'exemples maintenu par la liste XSL-FO@yahoogroups.com

Valid XHTML + RDFa