Tutoriel Règles XSLT en PDF (Intermédiaire)
Règles XSLT : Ce qu'il faut savoir. Le terme désigne l'ensemble des mécanismes de transformation XML fondés sur des xsl:template et des patterns XPath ; un processeur XSLT instancie ces règles pour produire un arbre résultat puis le sérialiser. Version XSLT couverte : 1.0. Le guide aborde la gestion des espaces de noms, le prologue XML et les étapes d'exécution par un processeur, ainsi que des extraits de feuilles de style et schémas pour la mise en pratique.
🎯 Ce que vous allez apprendre
Structure d'une feuille XSLT et élément racine xsl:stylesheet
Comprendre la nature d'un programme XSLT comme document XML, pourquoi les éléments doivent être qualifiés par l'espace de noms xsl et comment configurer la sortie via xsl:output. Construction d'une feuille valable et choix du format de sérialisation du document résultat.
Définition et déclenchement des règles avec xsl:template
Différencier l'attribut match (patterns XPath) et name (appel par xsl:call-template) et maîtriser le cycle d'instanciation d'une règle dans un nœud-contexte pour orchestrer l'exécution des templates.
Sélection de nœuds et usages de xsl:apply-templates
Maîtriser les sélecteurs select (ex. //NOM, //SEANCE/@ID) et l'impact sur le nœud‑contexte afin de composer des flux de traitement par enchaînement d'xsl:apply-templates pour produire des structures résultat complexes.
Modularité : xsl:import vs xsl:include
Connaître la différence de préséance entre xsl:import et xsl:include, l'obligation de placer xsl:import en premier, et les stratégies pour surcharger ou fusionner des règles afin d'organiser des feuilles réutilisables.
Patterns XPath applicables dans match
Appréhender les contraintes des expressions utilisables dans match, les motifs interdits et les limites d'évaluation pour cibler des ensembles de nœuds conformes à la sémantique XSLT 1.0.
📑 Sommaire du document
- Règles XSLT
- Le document source
- Structure d’un programme XSLT
- L’élément xsl:stylesheet
- Deux types d’éléments
- Principaux éléments de premier niveau
- xsl:import et xsl:include
- Les règles XSLT
Configuration du processeur et exécution des règles
Avant la génération de l'arbre résultat, le processeur XSLT lit le document source et la feuille de style, compile les templates et applique les patterns. L'étape d'exécution (runtime) inclut la résolution des espaces de noms, l'évaluation des expressions XPath et la sérialisation du résultat. Vérifier l'arbre résultat et la sérialisation facilite le débogage : comparer le document attendu et le flux de sortie permet d'identifier les templates non déclenchés ou les sélecteurs incorrects.
Environnements d'exécution et processeurs
Tester les règles peut se faire avec plusieurs implémentations : Saxon (large support des standards), libxslt (implémentation courante pour XSLT 1.0) et navigateurs offrant un support XSLT 1.0 limité. L'exécution s'effectue soit via une API (bibliothèques Java, Python, etc.), soit en ligne de commande ou au sein d'un navigateur. Contrôler les messages d'erreur du processeur et comparer l'arbre résultat à l'attendu permet d'itérer rapidement.
Exemple de transformation XML vers HTML
Cas concret : transformer un élément source <titre> en balise de sortie <h1>. Exemple minimal : source XML, feuille XSLT et sérialisation HTML attendue.
<programme>
<titre>Introduction XSLT</titre>
</programme>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/programme">
<html><body>
<xsl:apply-templates select="titre"/>
</body></html>
</xsl:template>
<xsl:template match="titre">
<h1><xsl:value-of select="." /></h1>
</xsl:template>
</xsl:stylesheet>
<html><body>
<h1>Introduction XSLT</h1>
</body></html>
Gestion des espaces de noms et prologue XML
La déclaration des noms d'espace est indispensable pour la validité d'une feuille de style : l'attribut xmlns:xsl="http://www.w3.org/1999/XSL/Transform" doit apparaître on xsl:stylesheet. Le prologue XML (par exemple <?xml version="1.0" encoding="UTF-8"?>) précède l'élément racine et définit l'encodage et la version. Sans noms d'espace correctement déclarés, le processeur XSLT ne reconnaîtra pas les éléments XSL et la transformation échouera, empêchant la génération de l'arbre résultat et sa sérialisation.
💡 Pourquoi choisir ce cours ?
Approche pragmatique centrée on les règles : extraits de feuilles de style, exemples d'exécution et schémas DOM illustrent l'instanciation et la sérialisation. Rédigé par Marc Giraud, le document met l'accent on la méthodologie, les cas testables et les bonnes pratiques pour une intégration fiable dans des projets d'intégration XML.
👤 À qui s'adresse ce cours ?
- Public cible : développeurs web et intégrateurs XML qui transforment des documents source en pages HTML ou en flux de données, ainsi que administrateurs de contenu travaillant avec des feuilles de style.
- Prérequis : connaissances de base du XML (syntaxe, prologue et arbres DOM), notions d'XPath et familiarité avec la logique de programmation (variables, appels de fonctions) ; la compréhension d'HTML aide pour la mise en forme du document résultat.
❓ Foire Aux Questions (FAQ)
Quelle est la différence pratique entre xsl:import et xsl:include ? Avec xsl:import, les règles du fichier importé ont une préséance moindre, ce qui permet de surcharger des templates dans le programme appelant ; xsl:import doit apparaître en premier. xsl:include insère le contenu sans notion de priorité et sert à fusionner sans surcharge.
Quelles expressions XPath peut-on utiliser dans l'attribut match ? L'attribut match accepte des patterns désignant des ensembles de nœuds (par ex. PROGRAMME/SEANCE ou @ID) ; les patterns n'autorisent pas certaines expressions non positionnelles ou axes non évaluables dans un pattern standard.