Première Partie
Les langages XPath et XSLT
II -
Guide de lecture
Chapitre XPath
Chapitre
Au cœur d'XSLT
Chapitres sur les instructions XSLT (transformation, programmation,création)
Chapitre
Découpage d'une application XSLT
III -
Le langage XPath
Modèle arborescent d'un document XML vu par XPath
Nœud de type
root
Nœud de type
element
Nœud de type
attribute
Nœud de type
namespace
Nœud de type
processing-instruction
Nœud de type
comment
Nœud de type
text
Exemple d'arbre XML d'un document
XPath, un langage d'expressions
Expressions sans argument de type node-set
Expressions numériques
Expressions à base de chaînes de caractères
Expressions booléennes
Expressions avec arguments de type node-set
Comparaison de deux node-sets avec l'opérateur =
Comparaison de deux node-sets avec l'opérateur !=
Appartenance et test d'inclusion
Expressions mixtes
Principes de la construction d'un chemin de localisation
Nœud contexte
Chemins de localisation
Evaluation d'un chemin de localisation
Etape de localisation
Axes de localisation
Les treize axes de localisation
Représentation graphique
Indices de proximité
Déterminant (Node Test)
Le déterminant est un nom
Le déterminant est une *
Le déterminant est un descripteur de type
Prédicats
Contexte d'évaluation d'un prédicat
Conversion booléenne de node-set
Exemples de prédicats dans une étape de localisation
Chemins de localisation
Evaluation d'un chemin de localisation
Evaluation d'une étape de localisation par rapport à un node-set
Evaluation d'un chemin relatif
Evaluation d'un chemin absolu
Clé pour la lecture d'un chemin de localisation
Lecture d'un chemin de localisation sans prédicat
Lecture d'un chemin de localisation avec prédicats
Lecture d'un chemin de localisation dans un prédicat
Exemples de chemins de localisation
Formes courtes des chemins de localisation
Principe
Exemples de chemins de localisation en formes courtes
Variantes syntaxiques
Expressions diverses
Evaluation d'une étape de localisation par rapport à un node-set renvoyé par une expression
Enumération d'un node-set renvoyé par une expression
Règle pour définir l'énumération d'un node-set
Exemple
Application d'un prédicat à une expression renvoyant un node-set
IV -
Au cœur du langage XSLT
Structure d'un programme XSLT
Eléments XSLT, instructions, et instructions de premier niveau
Règles de transformation
Forme d'une règle XSLT
Modèle de transformation
Modèle de transformation littéral
Un premier exemple de programme XSLT
Lancement du processeur XSLT
Principe de fonctionnement d'un processeur XSLT
Construction - sérialisation
Les trois phases du processus complet
Spécification d'une transformation
Modèle de traitement
Traitement du document XML source
Traitement d'une liste de nœuds source
Traitement d'un nœud source membre d'une liste de nœuds source
Instanciation d'un modèle de transformation relativement à un nœud courant et une liste courante
Motifs (patterns)
Concordance de motifs
Recherche de la concordance de motifs (pattern matching)
Syntaxe et contrainte pour un motif XSLT
Exemples de motifs
Priorités entre règles
Algorithme de calcul des priorités par défaut
Forçage de la priorité
Résumé
Instruction xsl:value-of
Exemple
Déroulement du processus de traitement sur cet exemple
Constitution d'une liste ne contenant que la racine
Traitement de cette liste
Traitement du nœud
Instanciation du modèle
Valeur des différents node-sets
Instruction xsl:apply-templates
Exemple
Déroulement du processus de traitement sur cet exemple
Constitution d'une liste ne contenant que la racine
Traitement de cette liste
Traitement du nœud
Instanciation du modèle de transformation
Traitement du nœud <Saison>
Instanciation du modèle de transformation
Première branche du traitement (nœud <Concert>)
Deuxième branche du traitement (nœud <Théâtre>)
Troisième branche du traitement (nœud <Théâtre>)
Synthèse de ces trois traitements indépendants
Règles par défaut
Règles par défaut pour la racine d'un arbre XML ou un élément
Règles par défaut pour un nœud de type
text
ou
attribute
Règles par défaut pour un nœud de type
comment
ou
processing-instruction
Exemples
Comportement inattendu d'un programme XSLT
V -
Les instructions de transformation
Instruction xsl:template
Syntaxe
Sémantique
Instruction xsl:value-of
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Variante syntaxique
Instruction xsl:apply-templates
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Variante syntaxique
select="..."
Variante syntaxique
mode="..."
Exemple
Instruction xsl:for-each
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Autre sémantique
Exemple
Instruction xsl:sort
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Variantes syntaxiques
Attribut
select
Autres attributs
Exemple
Tri à clés multiples
Instruction xsl:copy-of
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Exemple trivial
Autre exemple
VI -
Les instructions de programmation
Instruction xsl:if
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Instruction xsl:choose
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Instruction xsl:variable
Bande-annonce
Syntaxe
Règle XSLT typique
Sémantique
Variables globales et locales
Utilisation d'une variable
Dans une expression XPath
Dans un motif
Exemple d'utilisation d'une variable
Evaluation d'une variable globale
Exemple
Temporary Source Tree
TST obtenu littéralement
TST calculé
TST-texte
Opérations sur un TST (XSLT¬1.1 ou plus)
Exemples d'utilisation d'un TST (XSLT1.1 ou plus)
Result Tree Fragment (XSLT 1.0)
Opérations sur un RTF (XSLT 1.0)
Règles de visibilité
Règles de visibilité pour les variables globales
Règles de visibilité pour les variables locales
Conflits de noms de variables
Instruction xsl:param
Bande-annonce
Syntaxe
Sémantique
Utilisation d'un paramètre global
Utilisation d'un paramètre local
Instruction xsl:template
Bande-annonce
Syntaxe
Modèle nommé typique
Sémantique
Exemple
Instruction xsl:call-template
Bande-annonce
Syntaxe
Sémantique
Exemple
Instruction xsl:apply-templates
Syntaxe
Sémantique
Instruction xsl:message
Syntaxe
Sémantique
Instruction xsl:key
Bande-annonce
Syntaxe
Sémantique
Construction et exploitation de la table associative
Variante
Exemples
VII -
Les instructions de création
Instruction xsl:text
Bande-annonce
Syntaxe
Sémantique
Exemple
Variante syntaxique
Sémantique
Exemple
Création de texte XML par un élément source littéral
Exemple
Descripteur de valeur différée d'attribut (Attribute Value Template)
Suite de l'exemple
Instruction xsl:element
Bande-annonce
Syntaxe
Sémantique
Exemple trivial
Exemple plus évolué
Première étape
Deuxième étape
Variante syntaxique namespace="..."
Exemple sans namespace="..."
Autre exemple sans namespace="..."
Exemple avec namespace="..."
Variante syntaxique use-attribute-sets="..."
Instruction xsl:attribute
Bande-annonce
Syntaxe
Règle XSLT typique
Emploi moins typique
Sémantique
Exemple trivial
Exemple plus évolué
Variante syntaxique namespace="..."
Exemple avec namespace="..."
Instruction xsl:attribute-set
Bande-annonce
Syntaxe
Sémantique
Variante syntaxique use-attribute-sets="..."
Exemple
Variante de l'exemple
Commentaire de l'exemple
Compléments
Instruction xsl:copy
Bande-annonce
Syntaxe
Variante syntaxique
Sémantique
Copie d'un nœud de type
element
Copie d'un nœud de type
attribute
Copie d'un nœud de type
namespace
Copie du nœud de type
root
Copie d'un nœud de type
text
Copie d'un nœud de type
comment
Copie d'un nœud de type
processing-instruction
Instruction xsl:comment
Syntaxe
Sémantique
Exemple
Instruction xsl:processing-instruction
Syntaxe
Sémantique
Instruction xsl:number
Bande-annonce
Syntaxe
Sémantique
Calcul d'un numéro d'ordre
Différents modes de calcul d'un numéro d'ordre
Réinitialisation d'un numéro d'ordre
Numéro d'ordre sans décompte
Numéro d'ordre dans un document source secondaire
Rendu de la numérotation
VIII -
Découpage d'une application XSLT
Instruction xsl:include
Syntaxe
Sémantique
Processus mis en œuvre
Erreurs possibles
Position des instructions xsl:include
Intérêt de l'instruction xsl:include
Exemple
Instruction xsl:import
Syntaxe
Sémantique
Processus mis en œuvre
Intérêt de l'instruction xsl:import
Exemple
Instruction xsl:apply-imports
Syntaxe
Règle XSLT typique
Sémantique
Exemple
Evolution