Techniques de R éé criture et Transformations Pierre-Etienne Moreau.

Slides:



Advertisements
Présentations similaires
(Nombre de chromatide pour 1 paire de chromosome)
Advertisements

Aires et périmètres.
« Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde Relation Développeurs.
Structure XML Structures XML Transformation XML et XSL
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
Transformation de documents XML
SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Cours n° 9 Conception et Programmation à Objets
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
Techniques de R éé criture et Transformations Pierre-Etienne Moreau.
R éé criture pour la programmation et la preuve Claude Kirchner Pierre-Etienne Moreau.
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
Calculs numériques en Prolog
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Manipulation d’XML avec XSL
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Les entrées /sorties en Java François Bonneville
LOGO Profile Enterprise Java Beans Réaliser par: HAMROUNI Aymen HOUIJI Manel WESLATI Yassine.
Enesys RS Data Extension
Connexion base de données
Chapitre IV Object, interfaces, classes imbriquées.
Cours n°3 Les formulaires
XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple
1 Le Store WebContent Benjamin NGUYEN UVSQ & INRIA-SMIS Spyros ZOUPANOS U.Paris Dauphine & INRIA-LEO Workshop Sources Ouvertes et Service – Caen 2010.
Eléments d ’algèbre relationnelle
XSLT XSL : XSL : formatting objects - langage de formattage; XSLT : langage de transformation bas sur la spcificatioon Xpath (langage dadressage dans des.
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
Les algorithmes: complexité et notation asymptotique
Laurent Capelli Solution anti SPAM : Codage adresse mail Comment se protéger des robots chercheurs d'adresse mail éviter les chaînes du type «
Langages du Web Sémantique
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
IFT1025, Programmation 2 Jian-Yun Nie
Interfaces (fin) classes locales et internes, Object, clonage.
XSLT Langage de transformation darbre par Yves Bekkers.
Introduction au WebMapping
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Faculté I&C, Claude Petitpierre, André Maurer 1 Concepts dhéritage Héritage dimplémentation hasA Héritage de spécialisation isA.
I.S.I.S. Information System Initial Specification Rétro-conception de Bases de données Cyr Gabin Bassolet TIMC – équipe OSIRIS 21 décembre 2004.
Les pointeurs en C. valeur : main () { float valeur; void* pointeur; }
Description de documents XML multistructurés au moyen de nœuds retards Jacques Le Maitre LSIS Université du Sud Toulon-Var.
Excel (Partie 2).
Thematic Alignment of Static Documents with Meeting Dialogs Dalila Mekhaldi Diva Group Department of Computer Science University of Fribourg.
ClientsComptes Clients (codeCli,nom) Comptes (numC,codeType) Gestion bancaire ClientsComptes Clients (codeCli,nom) Comptes (numC,codeType) Gestion bancaire.
Valeurs moyennes et efficaces
Programmation procédurale Les différents schémas
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.
Solution td 1.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
La notion de type revisitée en POO
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.
Solution cherche Problème Pierre-Alain Muller ObjeXion - ESSAIM
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Module : Langage XML (21h)
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Lire et manipuler du XML...
LES TABLEAUX EN JAVA.
Principes de programmation (suite)
Asynchronous Javascript And Xml
Introduction à Internet
20 Données semi-structurées et XML
Arbre binaire.
Transcription de la présentation:

Techniques de R éé criture et Transformations Pierre-Etienne Moreau

Application à XML

Document XML  XML permet de d é crire des documents structur é s Paul Mark Jurgen Julien Pierre  On peut voir un document XML comme un arbre

Transformation de documents XML  On a envie de pouvoir manipuler ces donn é es  pour y rechercher de l ’ information  pour g é n é rer de nouveaux documents (HTML, LaTeX, PDF, XML, etc.)  Quels sont les outils permettant de le faire  XSLT / XPath  Xquery  Xduce / Cduce  DOM  …  Peu permettent de manipuler un document XML en Java  Les manipulations se font souvent en utilisant DOM directement

Exemple  On veut savoir s ’ il existe un noeud de la forme Julien Paul Mark Jurgen Julien Pierre

Filtrage  Il faut savoir si un pattern XML filtre vers un noeud de document XML  On aimerait pouvoir é crire %match(t) { Julien -> { // Noeud trouv é }  Ou plus g é n é ralement : X -> { … }

Mod è le de donn é e (simplifi é ) ElementNode(name:str, attrList:TNodeList, childList:TNodeList) -> TNode AttributeNode(name:str, value:str) -> TNode TextNode(data:str) -> TNode conc(TNode*) -> TNodeList

XML vs. Term  Un document XML peut se voir comme un arbre est repr é sent é par : ElementNode("A", conc(AttributeNode("a", "at1")), conc(ElementNode("B",conc(),conc())) )

Pattern XML  On veut pouvoir é crire un pattern de la forme X qui sera encod é par : ElementNode("A", conc(AttributeNode("a", "at1")), conc(X) )

Questions  A-t-on :  X ?  Quel est le type de X ?  TNode ?  TNodeList ?  On voudrait pouvoir é crire  X*  Quelles sont les solutions ?

Questions  En fonction du parseur, peut être reconnu comme    A-t-on :  X   ?  X*   ?  Comment est encod é   ? ElementNode("A", conc(AttributeNode("a", "at1")), conc( TextNode("  "), ElementNode("B",conc(),conc()), TextNode("  ")) )  Est-ce que cela filtre ?

Notation explicite (_*,X,_*) qui correspond à : conc(_*,X,_*) A-t-on (_*,X,_*)   ? Oui, il y a 3 solutions

Notation implicite (_*,X,_*) qui correspond à : [X] qui correspond é galement à X A-t-on X   ? Oui, il y a 3 solutions

Attributs  Les attributs sont repr é sent é s par une liste de couples (nom,valeur)  Il existe é galement des notations implicites et explicites  Ainsi :  correspond à  qui correspond à

Questions  A-t-on :  ?  Pourquoi ?  car ?  A-t-on :  ?  Non, car :  (_*, a="at1", _*, b="at2", _*) !<< (b="at2", a="at1")  Il faudrait du filtrage AC avec é l é ment neutre!

Attributs dans Tom  On consid è re un ordre sur les noms d ’ attributs  et les formes canoniques o ù les attributs sont tri é s  Ainsi, est repr é sent é par ElementNode("A", conc(AttributeNode("a", "at1"), AttributeNode("b", "at2")), conc())  De même, pour les motifs

Utilisation dans Tom Node sort(Node subject) { %match(subject) { (X1*,p1,X2*,p2,X3*) -> { if(`compare(p1,p2) > 0) { return sort(`xml( X1* p2 X2* p1 X3* )); } return subject; }

Comparaison d ’ attributs int compare(Node t1, Node t2) { %match(t1, t2) { n1, n2 -> { return `a1.compareTo(`a2); } } return 0; }