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