La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Les technologies XML Cours 2 : Transformation de documents XML (XPath, XSLT) Janvier 2009 - Version 1.0 -

Présentations similaires


Présentation au sujet: "1 Les technologies XML Cours 2 : Transformation de documents XML (XPath, XSLT) Janvier 2009 - Version 1.0 -"— Transcription de la présentation:

1 1 Les technologies XML Cours 2 : Transformation de documents XML (XPath, XSLT) Janvier Version 1.0 -

2 2 SOMMAIRE DU COURS TRANSFORMATIONS DE DOCUMENTS XML Transformation dun document XML XLL, XLink, XPointer Syntaxe de XPath Recherche simple Recherche simple Recherche par contexte Recherche par contexte Recherche par prédicats Recherche par prédicatsOpérateursXSL Conclusion :

3 3 TRANSFORMATION DUN DOCUMENT XML 1/2 Les outils destinés à transformer les documents XML représentent ceux-ci comme un arbre de nœuds XML. XSL est le langage qui permet décrire des feuilles de style. Une feuille de style est constituée dun ensemble de règles de transformations, sappliquant chacune à un ou plusieurs nœuds de larbre et permettant de transformer ce nœud en un nouveau nœud de larbre résultat. XPath est le langage qui permet dadresser une partie ou plusieurs parties dun document, cest à dire un ou plusieurs nœuds du document XML.

4 4 TRANSFORMATION DUN DOCUMENT XML 2/2 Transformation effectuée par un processeur XSL Selon

5 5 … XLL / XLink / XPointer … Le langage XLL est un langage de description de liens comportant deux parties : XLink et XPointer. XLink permet de manipuler des liens plus complexes que les liens hypertextes HTML (liens vers nimporte quel balise ou attribut, liens bidirectionnels) et de décrire le comportement dun lien. XPointer permet non seulement de localiser une position dans un document mais aussi une plage de document.

6 6 XSLT 1/6 XSL : eXtensible Stylesheet Language. Objectifs : Ce langage déclaratif permet de transformer un document XML en : un autre document XML, HTML, WML, SMIL un document papier: PDF, LaTeX du texte

7 7 XSLT 2/6 Principes : Le langage XSLT décrit des règles pour transformer un document XML. Ces règles de transformations sappliquent chacune à un ou plusieurs nœuds de larbre et spécifient la transformation à effectuer sur un nœud pour le transformer en un nouveau nœud de larbre résultat. Un processeur XSLT lit dune part un document XML et dautre part un document XSLT et génère un nouveau document en appliquant les règles de transformation.

8 8 XPATH XPath est le résultat dun effort dhomogénéisation de la syntaxe et de la sémantique de fonctions communes à XSLT et XPointer pour adresser des parties dun document. XPath permet deffectuer des requêtes dans un document XML. XPath est aux documents XML, ce quest SQL aux bases de données. XPath est utilisé par XSLT pour faire de la transformation de documents XML.

9 9 RAPPEL : LES DIFFERENTS TYPES DE NOEUDS 1/2 Exemple de fichiers XML :

10 10 RAPPEL : LES DIFFERENTS TYPES DE NOEUDS 2/2 Arbre correspondant :

11 11 SYNTAXE XPATH 1/8 La syntaxe de base XPath est semblable à ladressage dans un système de fichiers. Ex. : Documents XML : Pierre Martin Martine Durand Syntaxe XPath : /annuaire/entree/nom Résultat : Pierre Martin Martine Durand

12 12 SYNTAXE XPATH 2/8 Recherche simple :

13 13 SYNTAXE XPATH 3/8 Autre exemple : Bonjour Hello

14 14 SYNTAXE XPATH 4/8 Recherche par contexte :

15 15 SYNTAXE XPATH 5/8 Recherche par prédicats :

16 16 SYNTAXE XPATH 6/8 Recherche par prédicats (suite) :

17 17 SYNTAXE XPATH 7/8 Utilisation dopérateurs : Exemple : Requête: and name()=B] Réponse: Hello

18 18 SYNTAXE XPATH 8/8 Quelques exemples :

19 19 Processeurs XSLT Processeur coté client – intégré au navigateur Mozilla FireFox, Internet Explorer 6.1. Processeur côté serveur : un processeur installé sur le serveur envoie, après traitement le document résultant au client déployement des servlets de transformation sous tomcat).

20 20 XSLT 3/6 Fonctions de base (transformations) offertes par une feuille de style XSLT : extraction de données extraction de données génération de texte génération de texte suppression de contenu (noeuds) suppression de contenu (noeuds) déplacement de contenu (noeuds) déplacement de contenu (noeuds) duplication de contenu (noeuds) duplication de contenu (noeuds) tri de données tri de données Site de référence :

21 21 XSLT 4/6 Dans lexemple qui suit, on souhaite transformer un document XML en document HTML : Document XML source: Document XML source: Durand Martine Document HTML cible : Document HTML cible : Durand Martine

22 22 XSLT 5/6 Document XSLT correspondant : Document XSLT correspondant :

23 23 XSLT 6/6 En résumé : XSL est un langage XML permettant de définir des feuilles de style XSL est un langage XML permettant de définir des feuilles de style Les composants dun document XSL sont : Les composants dun document XSL sont : XSLT : pour manipuler les documents XPath : pour naviguer dans la structure hiérarchique des documents XSL Formatting Objects : pour définir la mise en forme des documents

24 24 STRUCTURE DUN DOCUMENT XSLT 1/6 Structure dun document XSLT : xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

25 25 STRUCTURE DUN DOCUMENT XSLT 2/6 Lélément racine : Lélément racine : Lattribut version indique la version de XSLT exigées par la feuille de styles Lattribut xmlns:xsl indique lURI de lespace de nom xsl (il est possible de déclarer plusieurs espaces de nom). Les éléments fils de sont appelés éléments de premier niveau

26 26 STRUCTURE DUN DOCUMENT XSLT 3/6 et permettent dinclure des règles dun document XSLT dans un autre. et permettent dinclure des règles dun document XSLT dans un autre. La différence entre ces 2 instructions résident dans la gestion des conflits en terme dapplication des règles : La différence entre ces 2 instructions résident dans la gestion des conflits en terme dapplication des règles : avec xsl:import les règles importées ont une préséance moindre que celles du programme importateur (lordre dimportation est important) avec xsl:include il ny a pas de notion de préséance xsl:incude doit être le premier élément de premier niveau du programme.

27 27 STRUCTURE DUN DOCUMENT XSLT 4/6 permet de définir le format de sortie. permet de définir le format de sortie. Exemple : Exemple : encoding=iso /> Cette déclaration précise que : Cette déclaration précise que : le document cible est le format HTML, le fichier cible sera indenté, les caractères du fichier XML dentrée sont encodé selon la norme iso

28 28 STRUCTURE DUN DOCUMENT XSLT 5/6 (suite) : La notion dencoding a son importance si le fichier XML contient des caractères accentués et est déclaré avec lentête La notion dencoding a son importance si le fichier XML contient des caractères accentués et est déclaré avec lentête En effet le fichier XML sera correctement transformé si lon déclare le même encodage au niveau du XML et du XSLT. En effet le fichier XML sera correctement transformé si lon déclare le même encodage au niveau du XML et du XSLT.

29 29 STRUCTURE DUN DOCUMENT XSLT 6/6 et : et : permet la suppression des espaces blancs superflus pour les éléments énumérés dans la liste. permet la suppression des espaces blancs superflus pour les éléments énumérés dans la liste. Exemple : permet de préserver les espaces blancs tels quels pour des éléments énumérés dans une liste. permet de préserver les espaces blancs tels quels pour des éléments énumérés dans une liste. Exemple :

30 30 LES REGLES DE TRANSFORMATION 1/11 définit une règle XSLT : définit une règle XSLT : Un document XSLT se compose dun ensemble de règles (template) permettant de construire le résultat. Un document XSLT se compose dun ensemble de règles (template) permettant de construire le résultat. Lapplication dune règle produit un fragment du document résultat. Lapplication dune règle produit un fragment du document résultat. Lordre des règles na pas dimportance. Lordre des règles na pas dimportance. Une règle sapplique dans le contexte dun nœud de larbre. Une règle sapplique dans le contexte dun nœud de larbre. Le corps dune règle se compose dun ensemble dinstructions. Le corps dune règle se compose dun ensemble dinstructions.

31 31 LES REGLES DE TRANSFORMATION 2/11 : : L'attribut match est un motif (XPath) qui identifie le ou les nœud(s) source pour lesquels la règle s'applique. Cet attribut est exigé à moins que l'élément ait un attribut name. L'attribut match est un motif (XPath) qui identifie le ou les nœud(s) source pour lesquels la règle s'applique. Cet attribut est exigé à moins que l'élément ait un attribut name. Exemple : - Si un template contient du texte ou des éléments XML (autres que des instructions XSL), ces éléments seront écrits sur la sortie. Il est néanmoins conseillé dutiliser les fonctions de création délément XML.

32 32 Exemples Déjeuner sur l'herbe Déjeuner sur l'herbe Edouard Manet Edouard Manet Déjeuner des Canotiers Déjeuner des Canotiers Auguste Renoir Auguste Renoir Waterloo Bridge, le soleil dans le brouillard Waterloo Bridge, le soleil dans le brouillard Claude Monet Claude Monet Mardi Gras, soleil couchant, boulevard Montmartre Mardi Gras, soleil couchant, boulevard Montmartre Camille Pissaro Camille Pissaro Les Joueurs de cartes Les Joueurs de cartes Paul Cézanne Paul Cézanne

33 33 Exemples (XSL) …… - la mise en forme html -le 1 élément uniquement -le 1 élément uniquement

34 34 Exemples …… TitreArtiste

35 35 LES REGLES DE TRANSFORMATION 3/11 Les fonctions de création de noeuds: Création dun élément : Création dun élément : Création dun attribut : Création dun attribut : valeur valeur Création de texte : Création de texte : texte texte Création dinstructions de traitement : Création dinstructions de traitement : Création de commentaires : Création de commentaires : text text

36 36 LES REGLES DE TRANSFORMATION 4/11 et et crée un nœud de type texte correspondant au résultat de lévaluation de lexpression. crée un nœud de type texte correspondant au résultat de lévaluation de lexpression. Syntaxe : Exemples : fournit un moyen simple pour copier le nœud courant. fournit un moyen simple pour copier le nœud courant. Syntaxe : Exemple :

37 37 LES REGLES DE TRANSFORMATION 5/11 Les instructions et : Lattribut test spécifie une expression. Après évaluation de cette expression, le résultat est converti en booléen. Si le résultat est vrai alors le contenu du modèle est appliqué, sinon rien. Lattribut test spécifie une expression. Après évaluation de cette expression, le résultat est converti en booléen. Si le résultat est vrai alors le contenu du modèle est appliqué, sinon rien. Exemples : Exemples :

38 38 LES REGLES DE TRANSFORMATION 6/11 Linstruction de répétition : Cet élément permet d'appliquer des règles de style sur chaque nœud identique d'un template. Le contenu de cette instruction est un modèle. Cet élément permet d'appliquer des règles de style sur chaque nœud identique d'un template. Le contenu de cette instruction est un modèle. Exemple : Exemple :

39 39 LES REGLES DE TRANSFORMATION 7/11 permet d'effectuer un tri sur des donn é es selon des crit è res sp é cifi é s : permet d'effectuer un tri sur des donn é es selon des crit è res sp é cifi é s : Lorsqu'un élément ou a un ou plusieurs fils, les nœuds sélectionnés sont triés et traités en fonction des clés de tri spécifiés. Lorsque des éléments xsl:sort sont utilisés dans xsl:for-each, ils doivent apparaître en premier. Exemple :

40 40 LES REGLES DE TRANSFORMATION 8/11 permet d appliquer un mod è le de mani è re r é cursive aux fils du n œ ud courant : permet d appliquer un mod è le de mani è re r é cursive aux fils du n œ ud courant : En l'absence de l'attribut select, l'instruction traite tous les fils du nœud courant, y compris les nœuds textuels. Exemple : …

41 41 LES REGLES DE TRANSFORMATION 9/11 Il existe trois façons dappeler un template : Sélectionner les nœuds à traiter à laide dune requête XPath et leur appliquer les templates correspondants : Appliquer les templates correspondants à tous les fils du nœud courant : Appeler un template grâce à son nom (à la manière dun sous-programme). Contrairement aux deux méthodes précédentes, on ne lapplique pas à un ensemble de sous-éléments du nœud courant mais à ce même nœud (pas de changement de contexte).

42 42 LES REGLES DE TRANSFORMATION 10/11 Sélection dune règle parmis plusieurs règles candidates: Il existe des priorités implicites qui permettent au processeur de choisir On peut aussi donner explicitement une priorité Lorsque le choix est impossible, le processeur sarrête. Priorités implicite : plus cest spécifique, plus cest prioritaire Priorité : Les motifs simples (autres quun nom délément ou dattribut) tels que * par exemple. Priorité 0 : Les motifs constitués dune seule étape XPath, avec un nom délément ou dattribut et sans prédicat. Priorité 0.5 : Tous les autres (prédicats, plusieurs étapes)

43 43 LES REGLES DE TRANSFORMATION 11/11 Les modes: Leur raison dêtre réside dans le fait quun même nœud peut être traité par plusieurs règles (un chapitre par exemple peut être traité une fois pour construire lindex et une autre fois pour publier le contenu). Pour distinguer les deux règles, on les distinguera par mode.

44 44 VARIABLES ET PARAMETRES 1/2 définit une variable XSLT : définit une variable XSLT : Syntaxe de la déclaration : 0 Syntaxe de linvocation : Max : {$MAX} La portée dune variable est limitée à lélément dans lequel elle a été définie. Une fois déclarée, la valeur dune variable ne peut être modifiée par la suite.

45 45 VARIABLES ET PARAMETRES 2/2 définit un paramètre XSLT: définit un paramètre XSLT: Syntaxe de la déclaration : 0 La principale différence entre une variable et un paramètre est quun paramètre peut être passé en paramètre à un template. Cela se fait de la manière suivante : 0

46 46 FONCTIONS XSLT 1/2 XSLT fournit un certain nombre de fonctions : La fonction format-number convertit son premier argument en une chaîne utilisant le motif de formatage spécifié par le second argument. Ce motif de formatage est composée dun préfixe optionnel, dun motif de formatage et dun suffixe optionnel. Le motif de formatage est une séquence de caractères spéciaux définis dans le tableau suivant : Exemples :

47 47 FONCTIONS XSLT 2/2 Caractères de formattage de la fonction format-number :

48 48 CONCLUSION SUR XSLT Avantages dXSLT : A partir dun même document XML, on peut générer plusieurs formats en sortie (HTML, WML…) Inconvénients dXSLT : Bien que la version 1.0 ait été stabilisée, les outils implémentant XSLT ne respectent pas tous la recommandation (fonctionnalités manquantes, ajout de fonctionnalités et déléments propriétaires). XSLT versus CSS : XSLT peut tout à fait être utilisé de manière combinée avec les CSS, en particulier quand la cible est du HTML4 ou du XHTML1.

49 49


Télécharger ppt "1 Les technologies XML Cours 2 : Transformation de documents XML (XPath, XSLT) Janvier 2009 - Version 1.0 -"

Présentations similaires


Annonces Google