Transformation de documents XML

Slides:



Advertisements
Présentations similaires
Données structurées et XML
Advertisements

Introduction aux Web Services Partie 1. Technologies XML
XML.
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
eXtensible Markup Language
Introduction à XSLT Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Données structurées et XML
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.
TP 3-4 BD21.
Manipulation d’XML avec XSL
CREATION DE FEUILLE DE STYLE pour structuré le document XML
Cours XSLT/XPath - Yves Laborde
Introduction aux Web Services Partie 1. Technologies HTML-XML
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
XSLT XSL : XSL : formatting objects - langage de formattage; XSLT : langage de transformation bas sur la spcificatioon Xpath (langage dadressage dans des.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
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.
Introduction au XML Choopan Rattanapoka Université Louis-Pasteur, Starsbourg.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Manipulation de formulaires en Javascript
XML : concours d’acronymes ou futur standard ?
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.
XSLT : trier et mettre en valeur le contenu d’un document XML
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Support des connaissances TP2 XSL-T
XML Plan du cours Introduction au fichier XML
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
Les outils de base : XPath, XSL, XLink, XForms
JavaScript Nécessaire Web.
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.
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
PHP 5° PARTIE : LES COOKIES
JavaScript.
XPath XML Path UP Web Année universitaire
XML Stylesheet Language
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
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
 Requêtes MySQL en PHP Introduction
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
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)
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
eXtensible Markup Language. Généralités sur le XML.
XPath Intro 1 Notation 2 Exemples 3 Utilisations de XPath
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
XPath XML Path language Yves Bekkers Mise à jour : 9 octobre 2003.
Transcription de la présentation:

Transformation de documents XML XPath et XSLT Transformation de documents XML

XPath : XML Path Language Utilisé par XSLT et XPointer Adressage d’une partie d’un document XML Syntaxe non XML Utilisable dans une URI Possibilité de faire des tests (Pattern) Supporte XML Namespaces W3C Recommandation, November 1999

Expression XPath Un XPath est composé d’une expression L’expression est évaluée Ensemble de Nœuds Element Attribut … Boolean Number String Une expression est évaluée dans un context

Location Paths Exemples de Location Path child::para child::* attribute::name /descendant::olist/child::item Les Location Path ne sont qu’une partie de XPath mais la partie la plus utilisée

Location Path : Syntaxe Contexte / : racine (Chemin Absolu) : contexte courant (Chemin Relatif) Etape Axe (fils, parent, …) suivi de :: Test (Livre, …) Prédicat pour affiner la sélection Possibilité de chaîner les étapes.

Etape : Axe ancestor, ancestor-or-self attribute child descendant, descendant-or-self following, following-sibling namespace parent preceding, preceding-sibling self

Etape : Test Nom * Type node() text() comment() processing-instruction() processing-instruction(name)

Etape : Prédicat ‘[‘ Expression ‘]’ Quelques expressions position()=3 position()=last()-1 attribute::type=‘warning’ Prédicats peuvent être chaîné [ ][ ]

Exemples Xpath (Location Path) child::para[position()>1] /descendant::figure[position()=42] child::para[attribute::type=‘warning’][position()=5] /descendant::para ancestor::div self::para child::chapter[child::title]

Abréviations child peut être implicite child::div/child::para => div/para attribute peut être remplacé par @ /descendant-or-self::node()/ peut être remplacé par // self.node() peut être remplacé par . parent::node() peut être remplacé par ..

Les Expressions XPath Location Path seulement une partie de XPath XPath : des Expressions Fonctions string Fonctions boolean Manipulation de Nœud …

XSLT : XSL Transformation Partie de XSL Extensible Stylesheet Language Transformation de document XML Syntaxe XML Fonctionnement par pattern-matching W3C Recommandation November 1999

Principe de Fonctionnement XML XML PDF html

Traitement XSLT Effectué sur une liste de nœuds Initialement cette liste ne contient que le nœud racine Recherche des templates correspondant aux nœuds de la liste. Exécution des templates Ecriture sur la sortie Mise à jour de la liste

Une feuille de style XSLT Un document XML Prologue Spécifique <xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/Transform”> Des éléments caractérisant la feuille de style xsl:import xsl:include xsl:output … Des Templates

Les Templates XSLT Les templates XML définissent la transformation Identification d’une source XPath Traitement (Ex : création d’élément XML) Contenu du template Ex: <xsl:template match=“/”> <H1> <xsl:apply-templates/> </H1> </xsl:template>

Les Templates XSLT <xsl:template match = pattern (XPath location) name = qname (pour Appeler un template) priority = number (règles d’ordre) mode = qname (Pls traitements / Elt> <!-- Contenu --> </xsl:template>

Exemples de Template Une partie de document XML This is an <emph> important </emph> point Un template d’une feuille de style <xsl:template match=“emph”> <fo:inline-sequence font-weigth=“bold”> <xsl:apply-templates/> </for:inline-sequence> <xsl:template> Le résultat This is an important point

Contenu d’un template Si un template contient du texte, ce texte sera écrit sur la sortie. Ex : <xsl:template match=“/”> Feuille de style remplacant tout par ce texte ?!!! </xsl:template>

Contenu d’un template Si un template contient des éléments XML ainsi que des attributs XML ceux ci seront écrit sur la sortie. Ex : <xsl:template match=“/”> <HTML> <HEAD>… </HEAD> … </xsl:template> Il est néanmoins conseillé d’utiliser les fonctions de création d’élément XML

Fonctions de création Création d’un élément Création d’un attribut <xsl:element name = qname> Création d’un attribut <xsl:attribute name = qname> valeur Création de texte <xsl:text > texte Création d’instructions de traitement <xsl:processing-instruction name=qname> Création de commentaires <xsl-comment> text

Fonction xsl:apply-templates Fonction permettant d’appliquer un template sur les fils du nœud courant (met à jour la liste de nœuds) <xsl:apply-templates select = expr mode = qname> contenu </xsl:apply-templates> Ex : <xsl:template match=“*”> <xsl:apply-templates/> </xsl:template>

Fonction xsl:value-of La fonction xsl:value-of créer un nœud text correspondant à la valeur du résultat de l’expression <xsl:value-of select = string-expr > Ex: <xsl:template match=“person”> <p> <xsl:value-of select=“@given-name”/> </p> </xsl:template>

Répétition Il est possible d’appliquer un template à un ensemble d’éléments. <xsl:for-each select = node-expr> Contenu </xsl:for-each> Ex: <xsl:template match=“/”> <xsl:for-each select=“eleve”> …

Traitement conditionnel XSLT propose deux instructions conditionnel <xsl:if test = boolean-exp> Contenu </xsl:if> <xsl:choose> <xsl:when test=boolean-expr> … </xsl:when> <xsl:when test=boolean-expr> … </xsl:when> … <xsl:otherwise> … </xsl:otherwise> </xsl:choose>

Et encore Possibilité de trier les éléments de la liste. Utilisé après un xsl:apply-templates ou un xsl:for-each <xsl:sort select=string-expr …> XSLT permet de créer des variables qui pourrons être utilisées dans la feuille de style. Une variable peut être un objet de n’importe quel type. <xsl:varaible name=qname select=expr > Autres fonctions XSLT Opération sur les nombres Opération sur les chaînes de caractères Envoi de messages Copy, …

Modes Les modes permettent à un élément d’être traité plusieurs fois, en produisant un résultat différent à chaque fois. <xsl:template match=“fils” mode=“m1”> … <xsl:template match=“fils” mode=“m2”> … <xsl:apply-templates mode=“m2”>

Template nommé L’utilisation de l’attribut name de l’élément xsl:template permet de spécifier un nom de modèle. Un template nommé peut ne pas avoir d’attribut match Un template nommé peut être appelé par <xsl:call-template name=qname>

Import de template XSLT founit deux mécanismes pour combiner des feuilles de style <xsl:include href=uri-reference/> Copier/Coller de la feuille de style <xsl:import href=uri-reference/> Liens vers la feuille de style importé. En cas de conflit de template, les feuilles importées sont moins prioritaire.

Liens document XML et feuille de style XSLT Le document XML peut inclure la feuille de style ou simplement la référencer. <?xml version="1.0" ?> <?xml:stylesheet type="text/xsl" href="test.xsl"?> …

Moteurs XSLT IE 5.0 (Microsoft) Xalang (Apache) Premier navigateur à proposer un moteur de transformation XSLT. Cependant, le moteur XSLT de IE5 n’est pas entièrement conforme au standard (développé avant) Xalang (Apache) Moteur de transformation proposé par le groupe Apache. Entièrement compatible avec le standard. Unité autonome.

Conclusion Langage de transformation de document XML Syntaxe XML (relativement simple) Fonctionnement Pattern/Matching En principe utiliser pour construire un document XSL Transformation Client ou Serveur Recommandation W3C Novembre 1999