TUTORIELS 
XSL et CSS: les différences
La comparaison entre XSL et CSS est trompeuse. Le premier se révèle bien plus riche et complet que le second.  (19 mars 2001)
 

Le principal ajout d'XSL par rapport à CSS est sa capacité à définir une sémantique pour des objets qui en sont dépourvus: XSL FO, ou XSL Formatting Objects, se charge ainsi de la définition d'un vocabulaire. Un rappel sur le fonctionnement d'XSL est disponible par ailleurs.

La syntaxe
Examinons une directive (règle) CSS:

Sélecteur {propriété: valeur}

et comparons-la à une directive XSL analogue:

<xsl: template pattern="pattern">
  <objets formatés
/>
</xsl: template>

L'attribut "pattern" joue un rôle analogue au sélecteur (du deuxième niveau de spécifications CSS), et les objets formatés précisent les propriétés du style. Ainsi, la règle CSS suivante:

p { display: block; font-size: 10pt; margin-left: 5px; margin-right: 5px }

<xsl: template pattern="p">
  <
fo:block font-size="10pt"
                indent-start="5px"
                indent-end="5px"
  </fo:block>
</xsl: template>

XSL applique les propriétés de la règle à un nouvel objet formaté, block, dont la définition (la sémantique) n'avait pas besoin d'être définie par CSS puisque préexistante dans le langage HTML.

Les avantages de XSL
Plusieurs avantages découlent de ce système de création d'objets formatés: entre autres,

- il devient possible de changer l'ordre des éléments à l'affichage (ce qui n'est pas possible en appliquant une feuille de style à un code HTML);
- des éléments peuvent être supprimés à un endroit et affichés à un autre;
- du texte peut-être ajouté "à la volée" à la présentation
de la stucture.

Résumons pour mieux comprendre: la différence fondamentale avec CSS vient donc de la définition préalable, dans le langage HTML, d'éléments formatés (qui contiennent une sémantique pour leur présentation). XSL permet de définir jusqu'à cette sémantique, et offre donc des possibilités de manipulation supérieure en terme d'affichage.

XPath
Le XML Path language permet d'accéder aux noeuds hiérarchiques d'un document XML. Il est utilisé, au sein d'une feuille de style (XSLT), dans la spécification de l'attribut "pattern" évoqué plus haut. Comme le nom du langage l'indique, le "sélecteur" voulu est atteint par son "chemin" dans l'arborescence. Ainsi, par exemple:

<xsl:template match="exemple/title">

indique l'application des règles de style au "sélecteur" "title", "fils" de "exemple".

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page