ACCARY-BARBIER / CNAM - Cycle C - 2005-2006 1 1ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.

Slides:



Advertisements
Présentations similaires
La boucle for : init7.c et init71.c
Advertisements

1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Portée des variables VBA & Excel
Transformation de documents XML
DTD Sylvain Salvati
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Les espaces de nommage XML par Philippe Poulard 1
(Classes prédéfinies – API Java)
Cours 2 : Transformation de documents XML
Xpath XPath is a language for finding information in an XML document.
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
Manipulation d’XML avec XSL
CREATION DE FEUILLE DE STYLE pour structuré le document XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
OCaml - Les listes L3 MI.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
OCaml – Les arbres L3 MI.
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Complément Le diagramme des classes
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Manipulation de formulaires en Javascript
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Support des connaissances TP2 XSL-T
Les feuilles de style CSS
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
Animateur : Med HAIJOUBI
Javascript 1° PARTIE : LES BASES
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
Les outils de base : XPath, XSL, XLink, XForms
XSLT : XML Stylesheet Language Transformation
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
JavaScript.
Le langage XML.
XPath XML Path UP Web Année universitaire
XML Stylesheet Language
Créer des packages.
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Publication et Traitement avec XSL
Arbres binaires et tables de hachage
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Sélection de colonnes (la projection)
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
Introduction à CSS Généralités. Introduction Beaucoup de documents XML sont destinés à être présentés. Les information du fichier seul (avec ou sans DTD)
eXtensible Markup Language. Généralités sur le XML.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
Transcription de la présentation:

ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath et XSLT  CHAPITRE 4 : Applications XML

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Document sans feuille de style N ou M Agatha Christie Policier-C-15 Le chien des Baskerville Sir Arthur Conan Doyle Policier-D-3 Dune Franck Heckbert Fiction-H-1

ACCARY-BARBIER / CNAM - Cycle C Visualisation  Avec Internet Explorer

ACCARY-BARBIER / CNAM - Cycle C Document avec feuille de style CSS ou XSL N ou M Agatha Christie Policier-C-15 Le chien des Baskerville Sir Arthur Conan Doyle Policier-D-3 Dune Franck Heckbert Fiction-H-1 OU

ACCARY-BARBIER / CNAM - Cycle C Feuille de style CSS livre{ display:block; margin-left:10pt; margin-bottom:5pt; font-size:12pt } titre{ margin-right:10pt; color:blue; } auteur{ margin-right:10pt; } ref{ color:red; }

ACCARY-BARBIER / CNAM - Cycle C Feuille de style XSL Ma bibliotheque

ACCARY-BARBIER / CNAM - Cycle C Visualisation  CSS sous Internet Explorer  XSL sous Mozilla

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C A quoi sert XPath ?  Décrire un modèle de chemin dans l'arbre d'un document à l'aide d'une expression de chemin  Sélectionner l'ensemble des nœuds atteints en suivant tous les chemins conforme à ce modèle, à partir d'un nœud donné  Exploiter les relations généalogiques existant entre les nœuds qui composent le document

ACCARY-BARBIER / CNAM - Cycle C Objectifs  Localiser – atteindre des fragments du document  Par adressage absolu  Connaissance exacte de la structure manipulée  Chemin complet conduisant aux fragments à atteindre  Par filtrage  Connaissance partielle de la structure manipulée  Atteindre des composants dont on ne connaît pas à priori la position  Informations sur la forme du chemin y conduisant et/ou le contenu des nœuds traversés.

ACCARY-BARBIER / CNAM - Cycle C Objectifs  Traitement homogène de tous les composants d'un document Éléments – attributs – texte  Atteindre et contraindre :  Un composant même  L'élément Titre ou l'attribut Num  Son modèle de contenu  Un Titre contenant le mot introduction, une Section contenant un Titre  Le chemin pour atteindre un composant (en tenant (éventuellement) compte de son environnement)  Un Titre contenu dans une Section ou un Titre que précède un Paragraphe

ACCARY-BARBIER / CNAM - Cycle C Utilisations de XPath  XPath est notamment utilisé :  Dans XSL et XSLT pour localiser un nœud précis ou un ensemble de nœuds afin de leur associer une présentation / une transformation  Dans XPointer pour identifier des fragments de documents  Dans XLink pour pointer une cible précise dans un document.  Dans XQuery, pour localiser un nœud précis ou un ensemble de nœuds afin de le(s) post-traiter  Dans XML Schéma pour exprimer les noms de domaines  …

ACCARY-BARBIER / CNAM - Cycle C Modèle de document  Pour XPath, un document XML est un arbre formé de nœuds de différents types  Document : Nœud racine,  Unique et obligatoire  Distinct de l'élément racine du document  Element : nœud élément,  Attribut : nœud attribut  Text : nœud texte,  ProcessingInstruction : nœud instruction de traitement  Comment : nœud commentaire  nœuds ordonnés selon l'ordre de lecture des constituants du document XML

ACCARY-BARBIER / CNAM - Cycle C Nœuds élément  Un nœud élément est associé à chaque élément  Il est étiqueté avec le nom de l'élément  Il peut contenir des nœuds éléments et/ou des nœuds texte  Il est impossible d'avoir deux nœuds texte consécutifs  Le contenu de l'élément est ordonné  Remarques :  On peut associer à un nœud élément un ou plusieurs nœuds attributs  Un nœud élément est parent de son nœud attribut mais le nœud attribut n'est pas enfant de son parent…

ACCARY-BARBIER / CNAM - Cycle C Nœuds attribut et nœuds texte  Un nœud attribut  Il est étiqueté avec le nom de l'attribut  Il contient sa valeur  Il n'existe pas d'ordre entre les nœuds attributs d'un même élément  Un nœud texte est étiqueté avec sa valeur  Remarques :  Les enfants et les descendants d'un nœud ne sont jamais de type attribut

ACCARY-BARBIER / CNAM - Cycle C Exemple de référence : Structure et balises Prélude à fondation Asimov Isaac Pocket […]

ACCARY-BARBIER / CNAM - Cycle C Exemple de référence : arbre XPATH Élément bibliothèque Instruction xsl ins1 Comment - blabla Document Élément livre Élément livre Élément titre Élément auteurs Élément éditeur Élément achat Élément auteur Élément prénom Élément nom Attr lang fr Attr ref ASI2002 Text prélude à fondation Text Asimov Text Isaac Text Pocket Attr date 10/11/2003 Attr lieu FNAC Attr type roman Attr genre SF […]

ACCARY-BARBIER / CNAM - Cycle C Expressions de chemins XPath  Une expression XPath :  S'évalue en fonction d'un nœud contexte  Désigne un ou plusieurs chemins dans l'arbre à partir de ce nœud  A pour résultat un ensemble de nœud ou une valeur numérique, booléenne ou alphanumérique  Parcours dans l'arbre d'un document : suite d'étapes  Un chemin peut être :  Absolu :  (contexte = racine du doc)  Relatif : étape / / Absolu Relatif

ACCARY-BARBIER / CNAM - Cycle C Étapes XPath  Une étape : trois composants  Un axe : sens de parcours des nœuds  Un filtre : type des nœuds qui seront retenus  Un ensemble de prédicats –facultatifs-: propriétés que doivent satisfaire les nœuds retenus  On peut faire une union de chemins //livre | Axe ] PrédicatFiltre [::

ACCARY-BARBIER / CNAM - Cycle C Évaluation d'une expression XPath  Etape évaluée en tenant compte de son contexte :  Nœud, position initiale du chemin 1.Evaluation de l'étape 1 a partir du nœud contexte :  On obtient un ensemble de nœuds  Taille de cet ensemble (fonction last() )  Position du nœud contexte dans cet ensemble (fonction position() ) 2.Evaluation étapes suivante :  On considère un par un, les nœuds de cet ensemble comme nœud contexte pour l'évaluation  A chaque étape, on prend successivement comme nœud contexte chacun des nœuds résultat de l'étape précédente.

ACCARY-BARBIER / CNAM - Cycle C : nœud initial Élément A C B B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C : première étape Élément A C B B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C : seconde étape Élément A C B B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C : troisième étape Élément A C B B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Axe  Précise la direction à suivre – un sens- pour atteindre les nœuds suivants  Hiérarchie directe, indirecte entre les nœuds  Position relative des nœuds les uns par rapport aux autres  Implique un ordre de parcours des nœuds  Un axe a un type  Attribut  Element  Namespace

ACCARY-BARBIER / CNAM - Cycle C Les axes XPath  self :: (Notation abrégée :. )  child::nom (Notation abrégée : nom )  attribut:: (Notation abrégée )  parent:: (Notation abrégée :.. )  descendant::  descendant-or-self:: (Notation abrégée : / )  ancestor::  ancestor-or-self::  following::  following-sibling::  preceding::  preceding-sibling::

ACCARY-BARBIER / CNAM - Cycle C L'axe self::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe child::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe attribute::att1 Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe parent::A Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe descendant::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe descendant-or-self::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe ancestor::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe ancestor-or-self::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe preceding::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe preceding-sibling::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe following::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C L'axe following-sibling::node() Élément A C nœud contexte Élément B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Deux types de filtres : sur le nom ou le type  Filtrage sur le nom (valable pour les types de nœuds qui ont un nom) :  Element  ProcessingInstruction  Attributs NOM : nœuds de nom NOM  exemple : /livre/auteurs/auteur  * : tout nœud de l'axe  exemple : /livre/*

ACCARY-BARBIER / CNAM - Cycle C /A/B/D Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Nom générique : /A/* Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Filtrage sur le type  text() :  nœuds de type Text  exemple : /livre/titre//text()  comment() :  nœuds de type Comment  exemple : /comment()  processing-instruction() :  nœuds de type ProcessingInstruction  exemple : /processing-instruction('java')  node() :  tous les types de noeuds

ACCARY-BARBIER / CNAM - Cycle C /A/B//text() Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla Document - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Prédicats et chemins  Expressions booléennes construites à partir  D'expressions de chemin  De fonctions prédéfinies.  Expression calculée automatiquement convertie en résultat booléen selon son type et sa valeur.  Valeur numérique  0 ou NAN : prédicat = false.  Autre valeur numérique : prédicat = true.  chaîne de caractères,  Vide : prédicat = false  Non vide : prédicat = true.  Ensemble de nœuds,  Vide : prédicat = false  Non vide : prédicat = true.

ACCARY-BARBIER / CNAM - Cycle C Pour bien comprendre  Exemples de prédicats avec expressions de chemins  /child::livre/child::titre[attribute::genre]  F.A. :  Eléments titre, fils d'éléments livre qui possèdent un attribut genre  /child::livre/child::titre[attribute::type='SF']  F.A. :  Eléments titre, fils d'éléments livre qui possèdent un attribut type dont la valeur vaut 'SF'.  Dans l'expression :  On s'intéresse aux nœuds de type B fils de l'élément racine A  Parmi ces nœuds on ne prend que ceux pour lesquels le prédicat s'évalue à true  renverra vrai seulement si l'élément auquel on l'applique (ici B ) possède un attribut att1.

ACCARY-BARBIER / CNAM - Cycle C Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla nœud contexte - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Élément A C B D D D Instruction Java ins1 Comment - blabla Text - blabla Text - blabla Text - blabla nœud contexte - Attr att2 a3 Attr att1 a2 Attr att3 15 Attr att1 a1 Élément B

ACCARY-BARBIER / CNAM - Cycle C Prédicats et fonctions  Les prédicats peuvent également utiliser des fonctions prédéfinies de XPath pour vérifier des conditions sur les nœuds.  Exemples de prédicats utilisant des fonctions  /child::auteurs/descendant::text()[position()=1]  F.A. : /auteurs//text()[1]  Premier nœud de type Text descendant d'un élément auteurs  Syntaxe abrégée : [position()=1] s'écrit [1].  /child::titre[count(descendant::auteur)≥2]  F.A. : /titre[count(//auteur) ≥ 2]  Eléments titre qui ont au moins 2 descendants de type auteur

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Fonctions appliquées aux noeuds  count(ensemble_de_nœuds)  Compte le nombre de nœuds référencés.  Il existe également des fonctions permettant de positionner un nœud par rapport à ses frères.  position(ensemble_de_nœuds)  Retourne la position du nœud contextuel.  last(ensemble_de_nœuds)  Retourne la position du dernier nœud d'un ensemble de nœuds.  name(nœuds)  Renvoie le nom du nœud contexte.  string(nœud)  Retourne le texte du nœud sans balisage

ACCARY-BARBIER / CNAM - Cycle C Fonctions sur les chaînes de caractères (1/2)  concat(chaine1, chaine2, chaine, …)  concatène toutes les chaînes passées en arguments  Fonctions booléennes pour savoir si une chaîne est incluse dans une autre.  starts-with(chaine1, chaine2)  true si chaine1 est débutée par chaine2  contains(chaine1, chaine2)  true si chaine1 contient chaine2.  string-length(chaine)  Renvoie la longueur de chaîne.  Utilisée sans argument, la fonction renvoie la longueur de la valeur textuelle du nœud courant.

ACCARY-BARBIER / CNAM - Cycle C Fonctions sur les chaînes de caractères (2/2)  Extraction d'une sous-chaîne à partir d'une chaîne  substring(chaine1, m, n)  Sous-chaîne de chaine1 contenant n caractères et commençant au caractère en position m.  substring-after(chaine1, chaine2)  Sous-chaîne de chaine1 qui suit la première occurrence de chaine2.  substring-before(chaine1, chaine2)  Sous-chaîne de chaine1 qui précède la première occurrence de chaine2.  translate(chaine1, chaine2, chaine3)  Remplace dans chaine1 chaque occurrence des caractères de chaine2 par ceux de chaine3.  Ex : translate(chaine, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")  Conversion de chaine en majuscule.

ACCARY-BARBIER / CNAM - Cycle C Fonctions booléennes  true(), false() et not().  lang(chaine)  true si la valeur de l'attribut xml:lang du nœud courant = celle reçue en argument.  boolean(objet)  Conversion en valeur booléenne selon le type :  Numériques –0 ou NaN = false –tout le reste est true  Chaînes –chaîne vide = false –tout le reste est true  Ensembles de noeuds –ensemble vide = false –tout le reste est true

ACCARY-BARBIER / CNAM - Cycle C Fonctions numériques  Opérateurs numériques courants :  Comparaisons :, =, !=  Opérations : +, -, *, div, mod  Fonctions numériques :  number()  Tente une conversion (en cas d'echec on obtient NaN)  ceiling(nombre)  Retourne le plus petit entier égal ou supérieur à nombre.  floor(nombre)  Plus grand entier égal ou inférieur à nombre  round(nombre)  Arrondit nombre à l'entier le plus proche  sum(nombre1, nombre2,...)  Somme les nombres/valeurs des nœuds passés en argument.

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Bilan  XPath est un mécanisme standard de filtrage puissant et complet  La localisation d'un composant peut être exprimée par  Chemin absolu (connaissance exacte de la structure)  Modèle de chemin à suivre (connaissance partielle de la structure)  Mécanisme essentiel pour un langage d'interrogation, de manipulation  Moyen de filtrer les composants du document quel que soit leur type  Necessité d'un jeu d'opérateurs pour exploiter ces données

ACCARY-BARBIER / CNAM - Cycle C Exemples d'expressions XPath(1)  child::livre[position()=last()–1]  F.A. : livre[last()-1)]  avant dernier livre du nœud contexte  following-sibling::livre[position()=1]  F.A. : following-sibling::B[1]  premier frère de droite de type livre du nœud contexte  descendant::livre[position()=12]  F.A. : //livre[12]  douzième livre du document

ACCARY-BARBIER / CNAM - Cycle C Exemples d'expressions XPath(2)  child::livre[child::éditeur and descendant::titre[attibut::genre='SF']]  F.A. : livre[éditeur and  tout livre avec un éditeur et dont le genre est Science Fiction.  descendant::nom[child::text()='Asimov']/anc estor::titre  F.A. : //nom[text()='Asimov']/..titre  tous les titres des livres dont le nom d'un auteur est Asimov.  [self::auteur | self::éditeur]  tout élément fils du nœud contexte qui est soit un auteur, soit un éditeur.

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Introduction à XSLT  XSLT est un langage pour transformer des documents XML en d’autres documents XML  Développé par le W3C, initialement pour le langage de formatage XSL  Recommandation W3C depuis novembre 1999  XSLT 2.0 en cours de développement  Utilise la syntaxe XML, utilise le langage d’expressions XPath  Même type de document ou types différents en entrée et en sortie  XSLT peut être utilisé dans une chaîne de traitement qui utilise aussi Java, Javascript, ASP, PHP, etc.

ACCARY-BARBIER / CNAM - Cycle C Les feuilles de style XSLT  Les feuilles de style XSL (eXtensible Stylesheet Language)  contrôlent la mise en page du document  Comme les feuilles de style CSS  Indiquent comment un fichier XML doit être transformé en un autre fichier XML ou HTML  Ce sont des documents bien formés  déclaration XML en première ligne  déclaration de l'encodage  règles de fermeture des balises, etc.

ACCARY-BARBIER / CNAM - Cycle C Principe  Un document (arbre) source est transformé en un document (arbre) résultat par un moteur de transformation qui applique une feuille de transformation(ou de style)  Fichier XML (+ DTD éventuellement) = D  Feuille de style XSL = F  Processeur XSL = programme qui applique la feuille de style au fichier = P  Le processeur P transforme D en D' grâce à F D + FD' P

ACCARY-BARBIER / CNAM - Cycle C Intérêt de XSL  Plusieurs feuilles de style pour un même document  Caractéristiques d'affichage et de contenu adaptées aux besoins  Contenu adapté pour un type d'utilisateur, d'usage  Affichage adapté selon les plateformes  Exemple d'adaptation sur le fond : fiches bibliographiques en HTML  Affichage détaillé  Affichage résumé  Catalogue de toutes les fiches  Exemple d'adaptation sur la forme : météo en ligne  Ecran 19 pouces : cartes météorologiques, informations détaillées  Téléphone portable : police reduite, informations importantes seulement, pas de cartes

ACCARY-BARBIER / CNAM - Cycle C Rôle du processeur XSL Feuille de style XSL n°1 Feuille de style XSL n°2 Fichier XML initial (bien formé ou valide) Fichier XML résultat (transformé) n°1 Fichier XML résultat (transformé) n°2 Processeur XSL

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Structure de base : les règles  Règle = template : élément de base pour produire le résultat  Une règle s'applique dans le contexte d'un nœud de l'arbre  L'application de la règle produit un fragment du résultat  Résultat global (arbre) construit par la hiérarchisation des règles.  Eléments de l'arbre source XML  Eléments non filtrés  organisés dans un ordre différent,  Eléments nouveaux créés par les règles.

ACCARY-BARBIER / CNAM - Cycle C Résultats de transformation  Règles en deux parties  motif (Pattern) a rechercher dans l'arbre source  Dépend du contexte structural dans l’arbre source  Exprimé dans le langage XPath  modèle utilisé pour former l'arbre résultat  Exemple de règle Je suis maintenant dans un nœud de nom "titre".  Motif de sélection : expression match="titre"  Modèle de la règle = contenu de l'élément  Résultat : affichage dans le document du texte " Je suis maintenant dans un nœud de nom "titre" "

ACCARY-BARBIER / CNAM - Cycle C Structure d'une feuille XSLT <xsl:stylesheet version="1.0" xmlns:xsl=" … INSTRUCTIONS-OU-BALISES-OU-TEXTE … … INSTRUCTIONS-OU-BALISES-OU-TEXTE … … AUTANT DE BLOCS XSL:TEMPLATE QUE NECESSAIRE … bloc 1 début bloc 2 fin

ACCARY-BARBIER / CNAM - Cycle C Processus de transformation XSLT  Analyse (parcours) du document source nœud par nœuds  Recherche d'une règle définie dans la feuille de style  Application des instructions contenues dans cette règle  Une règle trouvée, elle est appliquée  Plusieurs règles applicables :  Règles issues de 2 feuilles de style (importation feuille externe).  Priorité d’importation (élément )  La feuille qui importe est prioritaire sur la feuille importée  Règles de la même feuille : la + prioritaire est choisie  Attribut priority de la règle,  Sélectivité du pattern : règle la plus précise = la plus prioritaire  Aucune règle : règle par défaut selon le type du nœud

ACCARY-BARBIER / CNAM - Cycle C Règles par défaut  Nœuds de type élément de l'arbre XML,  Relance l'application des règles de la feuille au nœud racine ou aux fils du nœud (traitement récursif).  Nœuds de type text() et attribut(),  Recopie le texte ou la valeur de l'attribut.  Nœuds de type processing-instruction() et comment()  Ne rien faire.

ACCARY-BARBIER / CNAM - Cycle C Modèle général de feuille de style XSLT  Appel des règles hiérarchique.  Règle initiale qui s’applique à la racine du document traité (’/’).  Production du cadre du document résultat  Appel des autres règles qui vont, quant à elles, produire le contenu du document résultat.  Règles secondaires effectuent des traitements seulement sur les nœuds qu'elles ciblent  Modification de la mise en page du résultat.

ACCARY-BARBIER / CNAM - Cycle C Exemple : biblio.xsl construction du cadre HTML du document résultat à afficher -->

ACCARY-BARBIER / CNAM - Cycle C Exemple : Règle générale Ma bibliotheque Ma bibliothèque

ACCARY-BARBIER / CNAM - Cycle C Exemple : Règle secondaire "livre" (1/2) (type :, genre : ) aux éditions

ACCARY-BARBIER / CNAM - Cycle C Exemple : Règle secondaire "livre" (2/2) ( Ce livre est en français Ce livre est en anglais Ce livre est en langue inconnue. )

ACCARY-BARBIER / CNAM - Cycle C Exemple : Règle secondaire "auteur"

ACCARY-BARBIER / CNAM - Cycle C Résultat

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Déclaration et élément racine  Feuille XSLT : document XML (déclaration XML)  Elément document (racine) : xsl:stylesheet  Doit être déclaré juste après le prologue du document  Contient tous les autres éléments du document.  Attribut version : numéro de version de la feuille  Attribut xmlns:xsl : espace de nom utilisé pour la feuille  Éléments fils possibles (top-level elements)  Ordre quelconque (sauf import et output en tête) :  import, include, strip-space, preserve-space, output, key, decimal-format, namespace-alias, attribute-set, variable, param, template

ACCARY-BARBIER / CNAM - Cycle C Eléments de base : xsl:output  spécifie les options de l'arbre de sortie  Attributs possibles :  method : méthode de transformation.  version : version de la méthode de sortie (xml 1.0, html 4.01).  encoding : version du jeu de caractères à utiliser pour la sortie.  omit-xml-declaration : prise en compte de la déclaration XML.  standalone : arbre de sortie avec ou sans DTD.  doctype-public : identifiant public utilisé par la DTD associée.  doctype-system : identifiant system utilisé par la DTD associée.  cdata-section-elements : éléments dont le contenu doit être traité via une section CDATA.  indent : transformation sous forme d'arbre si valeur = yes.  media-type : type MIME des données résultantes.

ACCARY-BARBIER / CNAM - Cycle C Eléments de base : xsl:templates  définit un modèle / règle à appliquer à un nœud et à un contexte spécifiques.  Attributs :  name (facultatif) : nom donné à la règle en vu d'un appel explicite par l’instruction dans un autre élément.  match : Nœuds sources auxquels la règle s'applique.  Valeur = ensemble de chemins XPath séparés par des ’|’ (union).  Seuls les axes child et attribute et les opérateurs // et / sont permis.  mode (facultatif) : permet d'avoir plusieurs règles en fonction du mode de sortie. { contenu de la règle }

ACCARY-BARBIER / CNAM - Cycle C Eléments de base : xsl:apply-templates  relance l'application des règles sur les nœuds-fils de l'élément dans le traitement duquel il est appelé.  select (facultatif)  Absent : traitement de tous les fils du nœud courant (y compris nœuds texte).  Présent : traitement uniquement des nœuds de l'expression  peut être vide.  Le traitement des nœuds-fils utilisera,  Les règles définies dans la feuille de style pour ces éléments si elles existent,  Les règles par défaut.  Ex : Dans biblio.xsl, l'appel dans la règle principale permet aux autres règles d'être exécutées.

ACCARY-BARBIER / CNAM - Cycle C Eléments de base : xsl:value-of  recopie la valeur d'une expression  Expression peut correspondre à un élément, à un attribut ou à tout autre nœud contenant une valeur.  select : chemin du nœud dont on veut copier le contenu.  recopie le nœud (balisage compris)  Ex : Dans biblio.xsl, permet de recopier la valeur des nœuds "éditeur" parcourus.

ACCARY-BARBIER / CNAM - Cycle C Boucles et choix : xsl:for-each  permet de créer une boucle dans laquelle sont appliquées un certain nombre de transformations.  select : définit l'ensemble des nœuds devant être parcouru par la boucle.  prend les nœuds un par un comme nœud contexte  Ex : Dans biblio.xsl, l'exemple suivant permet de recopier à la suite la valeur de tous les nœuds "auteur" parcourus.

ACCARY-BARBIER / CNAM - Cycle C Boucles et choix : xsl:sort  permet d'effectuer un tri sur un ensemble de nœuds.  Utilisé dans et  Peut être appelé plusieurs fois pour effectuer un tri multicritères.  attributs :  select : spécifie un nœud comme clé de tri.  data-type (facultatif) : type des données à trier.  order : ordre du tri.  lang (facultatif) : jeu de caractères à utiliser pour le tri.  case-order (facultatif) : tri sur les majuscules ou minuscules  Ex : Dans biblio.xsl, l'exemple suivant permet de recopier à la suite la valeur de tous les nœuds "auteur" parcourus mais en les classant par ordre alphabétique.

ACCARY-BARBIER / CNAM - Cycle C Boucles et choix : xsl:if  permet d'effectuer des tests sur les attributs et les éléments du document XML.  test : prend la valeur 1 ou 0 selon le résultat de l'évaluation de la condition (true ou false).  En cas de réussite au test, le contenu de l'élément est appliqué.  Pas de else…  Ex : Dans biblio.xsl, l'exemple suivant permet de tester si l'attribut genre existe et de l'afficher seulement en cas de réussite au test., genre : action

ACCARY-BARBIER / CNAM - Cycle C Boucles et choix : xsl:choose , et permettent de définir une liste de choix et d'affecter à chaque choix une transformation différente.  Chaque choix est défini par un élément  Un traitement par défaut peut être spécifié grâce à l'élément.  Ex : Dans biblio.xsl, l'exemple suivant permet de tester la valeur de l'attribut lang et d'afficher des résultats différents en fonction de la réponse au test. Ce livre est en français Ce livre est en anglais Ce livre est dans une langue non répertoriée.

ACCARY-BARBIER / CNAM - Cycle C Création : xsl:element et xsl:attribute  permet d'insérer un nouvel élément dans l'arbre résultat  name : nom donné au nouvel élément.  use-attribute-sets : ensemble des attributs à associer à l'élément créé.  permet de définir un nouvel attribut à ajouter à l'élément de l'arbre résultat.  name : nom de l'attribut à ajouter dans le contexte courant.  Valeur de l'attribut créé = celle du contenu de l'élément valeur

ACCARY-BARBIER / CNAM - Cycle C Définition de variables : xsl:variable  sert à créer les variables dans XSLT.  name : spécifie le nom de la variable.  Plusieurs possibilités de contenu(valeur de la variable) :  select avec une valeur (une constante)  select avec une expression XPath  Variable définie par son contenu :  voici le contenu de la variable  Appel à la variable se fait avec $nom_variable 

ACCARY-BARBIER / CNAM - Cycle C Portée d'une variable  Portée d'une variable limitée aux éléments-frères et à leurs descendants.  Si une variable est déclarée dans une boucle ou un choix, on ne pourra pas l'utiliser hors de cet élément.  Deux types de variables :  variables globales (élément de premier niveau).  visibles dans tout le programme XSLT  avant le template  variables locales (dans les corps de règle).  visibles dans les following-sibling et leur descendants  après le template

ACCARY-BARBIER / CNAM - Cycle C Définition de paramètres : xsl:param  permet de créer un paramètre qui peut ensuite être passé à une règle grâce à  name : spécifie le nom de la variable  select : donne la valeur par défaut du paramètre.  Deux niveaux de définition :  Dans le corps d'une règle (local)  Fourni par l'appel de règle ( call ou apply )  Élément de premier niveau (global)  Fils de xsl:stylesheet  Appel au parametre se fait avec $nom_param 

ACCARY-BARBIER / CNAM - Cycle C Exemple de paramètre  La règle Afficher attend une chaîne :  Passage du paramètre :

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C Conclusion sur XSLT  Un langage de règles totalement adapté au traitement de documents XML  Parcours d’un document, vu comme un arbre  Déclenchement de règles sur certains nœuds  Association de plusieurs programmes à un même document  Intégration du langage XPath

ACCARY-BARBIER / CNAM - Cycle C Chapitre 3 : XPath et XSLT  1. Visualisation des documents XML  2. XPath  2.1. Principes  2.2. Les axes  2.3. Les filtres  2.4. Les prédicats  2.5. Fonctions de base  2.5. Exemples  3. XSLT  3.1. Transformation de documents  3.2. Modèle de traitement XSLT  3.3. Eléments constituants un document XSLT  3.4. Conclusion  En savoir plus…

ACCARY-BARBIER / CNAM - Cycle C En savoir plus…  Cours et tutoriels en ligne ….    Bernd Amann et Philippe Rigaux, 2002, Comprendre XSLT, O'Reilly