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".
|