Master Informatique 2 «RADI» Thème Applications Documentaires XML. Frédérik Bilhaut

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Master Informatique 2 «RADI» Thème Applications Documentaires XML. Frédérik Bilhaut fbilhaut@info.unicaen.fr"

Transcription

1 Master Informatique 2 «RADI» Thème Applications Documentaires Frédérik Bilhaut XML Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 1

2 Plan du cours (4 2h) La sphère XML Le document structuré Le document XML Les spécifications associées Les documents composites Spécification de schémas XML Document Type Definition : DTD Manipulation de documents XML Navigation dans les arbres : XPath Transformation d'arbres : XSLT Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 2

3 La sphère XML Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 3

4 Le document structuré Un document structuré distingue deux aspects : Les données (textuelles ou autre) Le marquage de leur structure (champs, types, relations, etc.) La «s émantique» des données fait partie intégrante du document Exemple de document non structuré : Dupond;Jean;42 rue St Pierre;14000;Caen;Enseignant Durand;Pierre;27 rue des Lilas;14520;Maltot;Commerçant... Exemple de document structuré : [Personne] Nom=Dupond Prénom=Jean Adresse=42 rue St Pierre CP=14000 Ville=Caen Profession=Enseignant... Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 4

5 Document structuré vs. non structuré Avantages du document non structuré : Moins volumineux Parsing peu coûteux Aucune variabilité syntaxique Inconvénients : Manque de souplesse : Tous les champs doivent être spécifiés Toutes les entrées doivent avoir le même format Quasi impossible à interpréter sans spécification externe du format Les données et rien que les données Faible pérennité Pour le document structuré, c'est l'inverse! Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 5

6 Le document XML XML : extensible Markup Language «S uccesseur» de S GML (Standard Generalized Markup Language) Recommandation du World Wide Web Consortium (www.w3c.org) Standard ISO 8879 en 1986 Développé à partir de GML dans les années 70, dernière version en 2001 Exemples d'applications : HTML, DocBook Version 1.0 du 10 février 1998 (dernière édition le 6 octobre 2000) Version 1.1 du 4 février 2004 (changements mineurs) Définit une syntaxe pour les documents structurés Caractéristiques principales : Format textuel : tout document XML est aussi un fichier texte brut Modèle arborescent : tout document XML est aussi un arbre XML est un métalangage : c'est une syntaxe générique permettant de définir des langages spécifiques (des applications) tels que XHTML. Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 6

7 Aperçu de la syntaxe XML (document XHTML) <?xml version="1.0" encoding="utf 8"?> <html> <head> <title>exemple de document XML</title> </head> <! Ceci est un commentaire > <body> <h1>ceci est un exemple de document XML</h1> <p> Ceci est un paragraphe. Nous montrons ici un exemple de fichier XHTML. Successeur de HTML, ce langage est une application de <a href="http://www.w3c.org">xml</a>. </p> <p align="right"> Ceci est un second paragraphe. Comme il est spécifié dans l'attribut <em>align</em>, il devra être aligné à droite. </p> </body> </html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 7

8 Les avantage de XML (1) : Le méta langage XML n'est pas révolutionnaire, seulement indispensable! Une spécification simple Syntaxe rudimentaire et fortement contrainte Structure strictement arborescente Facilité d'implémentation, conformité facilement vérifiable ( SGML) C'est un langage auto descriptif Format ouvert et universel pour l'échange de données à grande échelle Des organismes spécialisés centralisent la spécification des formats La structure des données est spécifiée explicitement Le contenu est accessible aussi bien à l'humain qu'à l'ordinateur C'est un langage modulaire Un même document peut incorporer plusieurs jeux de balises Les espaces de noms permettent d'éviter les conflits Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 8

9 Les avantage de XML (2) : Les spécifications et outils associés Standardisation de nombreux formats interopérables Ex : XHTML + MathML + SVG Parseurs XML disponibles dans tous les environnements Plus besoin de définir une syntaxe ad hoc pour chaque application Gain de temps : développer une syntaxe et un parseur n'est pas trivial! Interopérabilité : simplifie l'échange de données avec d'autres agents La structure d'un langage peut être spécifiée formellement (ex: DTD), les parseurs peuvent les utiliser pour vérifier la conformité d'un document Langages déclaratifs de manipulation de documents (ex: XSLT) Implémentations disponibles sous toutes les plate formes Outils de visualisation et d'édition des documents (ex: CSS) Outils de stockage et d'interrogation Bases de données XML, langages de requêtes (ex: XQuery) Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 9

10 Les différents aspects d'un document XML XML <document> <title> ABC </title> <section> <para> ABC </para>... </section> </document> Fichier «t exte» Ex : Unicode T Séq. Document «ren du» Ex : feuille de style CSS T T Structure arborescente Ex : DOM Frédérik Bilhaut Université de Caen MI2 RADI 2004/

11 Les différents aspects d'un document XML (2) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

12 La syntaxe XML Un document XML comporte différents types d'objets : Des éléments (ou balises) : <title>... </title> Des attributs (sur les éléments) : <a href="http://...">...</a> Des fragments de texte : Ceci est un fragment textuel Des commentaires : <! Ceci est un commentaire > Des instructions de traitement : <?xml stylesheet...?> Des entités : &copyright; Les «ex ceptions» syntaxiques : Caractères réservés : < > & " deviennent < > & " Éléments vides : <a name="toto"/> Sections littérales : <![CDATA[X&Y; Z>T]]> Référence à une DTD : <!DOCTYPE article SYSTEM "article.dtd"> Le prologue : <?xml version="1.0"...?> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

13 Correspondance arbre/document Chaque objet correspond à un noeud dans l'arbre Le document dans son ensemble a une structure strictement arborescente La racine de l'arbre doit être un élément. C'est le premier élément du document, et il ne peut avoir de frère Tout élément est un noeud ou une feuille de l'arbre Y compris le texte, les attributs, etc. Frédérik Bilhaut Université de Caen MI2 RADI 2004/

14 Correspondance arbre/document (2) article #comment "Exemple" title #text "Le titre" #text "Du texte ici " section #attr id=42 nl para <?xml version="1.0"?> <article> <! Exemple > <title>le titre</title> <section id="42"> <para> Du texte ici <nl/> et là. <acro>xml</acro>&tm; </para> </section> </article> #text " et là." acro #entity tm #text "XML" Frédérik Bilhaut Université de Caen MI2 RADI 2004/

15 Orientation document vs. orientation données On peut distinguer deux types d'arbres XML : Orientés «documents» Orientés «données» On représente un document textuel dans sa linéarité La structure de l'arbre coïncide avec la structure logique du document. La structure de l'arbre coïncide avec le modèle de données utilisé On peut trouver des documents hybrides <?xml version="1.0"?> <document lang="fr"> <title>le titre</title> <section> <para class="intro"> Voici un arbre XML orienté document. </para> </section> </document> <?xml version="1.0"?> <! Voici un arbre orienté données représentant un graphe > <graph name="mon graphe"> <node id="1">noeud 1</node> <node id="2">noeud 2</node> <node id="3">noeud 3</node> <arc from="1" to="2"/> <arc from="1" to="3">label</arc> </graph> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

16 Gestion de l'encodage des caractères Un document XML peut (devrait) spécifier l'encodage utilisé En théorie, la fin d'un problème ancien mais persistant! Encodages courants : UTF 8 (Unicode), ISO (Latin 1) Il est possible de faire référence à des caractères «sp éciaux» Entités numériques spécifiant directement un numéro Unicode <?xml version="1.0" encoding="utf 8"?> <document> <paragraph> Pour spécifier des caractères spéciaux, on peut utiliser des entités "numériques" faisant référence à des caractères Unicode. </paragraph> <formula> x 0, f(x) < e </formula> </document> x 0, f x e Frédérik Bilhaut Université de Caen MI2 RADI 2004/

17 Gestion des sauts de lignes Différentes représentations des sauts de lignes (EOL) La spécification XML reconnaît toutes ces combinaisons Linux : h10 Windows : h13 + h10 Mac : h13... Un parseur doit les remplacer toutes par h10 L'application n'a pas à tenir compte du type de sauts de lignes utilisés XML 1.1 reconnaît de nouveaux types de fin de lignes IBM mainframes : h85 Fin de ligne Unicode : h2028 Frédérik Bilhaut Université de Caen MI2 RADI 2004/

18 Spécification de schémas XML étant un méta langage, son utilisation se traduit par la définition d'applications spécifiques (ex : XHTML, SVG,...) XML définit une syntaxe générique Chaque application définit un schéma (ou vocabulaire) spécifique Exemple de spécification informelle d'un schéma : Le présent document spécifie un schéma XML permettant de représenter des graphes orientés. Les différentes balises définies sont : graph (la racine), node et arc. Un élément graph décrit un graphe, et contient des éléments node (au moins un) et arc (de 0 à n). Il accepte l'attribut optionnel name spécifiant l'intitulé du graphe. Un élément node décrit un noeud du graphe, et contient éventuellement du texte définissant son label. Il demande l'attribut obligatoire id spécifiant un identifiant unique. Un élément arc décrit un arc du graphe, et contient éventuellement du texte définissant son label. Il demande les attributs obligatoires from et to, spécifiant respectivement les identifiants du noeud de départ et du noeud d'arrivée (ceux ci doivent obligatoirement être spécifiés au sein du même noeud graph). Frédérik Bilhaut Université de Caen MI2 RADI 2004/

19 Spécification de schémas (1bis) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

20 Spécification de schémas (2) Pour un document donné, la spécification du schéma peut être : Implicite : Elle est (en principe) spécifiée dans un document échangé entre les utilisateurs du format. Cette spécification est plus ou moins formellement, par exemple en langage naturel «contraint» Elle n'est pas accessible aux processus informatiques Le bon fonctionnement de l'échange d'information repose uniquement sur la confiance entre les intervenants. Explicite : Elle est spécifiée formellement dans un format bien défini Elle est accessible à la fois aux humains et aux processus informatiques Un document peut indiquer explicitement le schéma auquel il se conforme Les outils informatiques peuvent vérifier la conformité d'un document relativement à un schéma, et indiquer d'éventuelles erreurs Frédérik Bilhaut Université de Caen MI2 RADI 2004/

21 Spécification de schémas (3) Plusieurs langages formels permettent de spécifier un schéma : Document Type Definition (DTD) XSchema Format ancien (date de SGML) et peu expressif, mais encore couramment utilisé (fait partie de la spécification XML) Utilise une syntaxe spécifique Son utilisation reste obligatoire pour définir des entités Spécification du W3C, en relation avec d'autres spécifications Plus puissant que DTD (modularité, gestion des types, des espaces de noms...) Il est lui même un vocabulaire XML ( par ex: génération auto. de la doc.) Mais relativement complexe et ne lève pas toutes les limitations des DTD Relax NG «Concurrent» de XSchema, aux propriétés semblables Spécification indépendante visant la normalisation ISO Se veut plus souple et plus simple que XSchema Frédérik Bilhaut Université de Caen MI2 RADI 2004/

22 Document bien formé vs. document valide Deux niveaux de conformité d'un document XML : Le document bien formé Respecte scrupuleusement la syntaxe XML Respecte l'encodage de caractères annoncé Intéressant en soi car la sémantique d'un document XML bien formé est clairement définie (par opposition aux documents HTML dont l'interprétation faut appel à des heuristiques propres à chaque navigateur) Le document valide Un document est dit valide relativement à un schéma donné (DTD ou autre) Un document valide est aussi bien formé Un document valide n'est plus considéré comme tel si le document spécifiant son schéma n'est pas accessible L'utilisation d'un schéma n'est pas obligatoire, mais devient quasi indispensable pour toute application «r éelle» : le schéma est totalement formalisé et sert de référence tant pour les processus informatiques que pour les intervenants humains Frédérik Bilhaut Université de Caen MI2 RADI 2004/

23 «Rendu» d'un document XML Différentes méthodes permettent de produire des «vues» d'un document XML On peut avoir plusieurs vues d'un même document À chaque vue correspondra une feuille de style Le procédé dépend principalement du type de document S'il est orienté document : Le plus souvent, une feuille de style type CSS convient La FdS spécifie les modalités d'affichage de chaque type de noeud Le document est affiché selon sa propre structure S'il est orienté données : Le plus souvent, une transformation est nécessaire (par ex. XSLT) Par exemple en XHTML, XSL:FO, etc. Frédérik Bilhaut Université de Caen MI2 RADI 2004/

24 Affichage d'un fichier XML orienté «document» avec une feuille de style <?xml version="1.0"?> <document lang="fr"> <title>le titre</title> <section> <para type="intro"> Voici un arbre XML. </para> <para> Du texte du texte. Du texte du texte. Du texte du texte. Du texte du texte. </para> <para> Encore du texte. Encore du texte. Encore du texte. </para> </section> </document> document { CSS display: block; } title { font size: 16pt; text align: center; } para { text indent: 5pt; } para[type=intro] { font style: italic; } Le titre Voici un arbre XML. Du texte du texte. Du texte du texte. Du texte du texte. Du texte du texte. Encore du texte. Encore du texte. Encore du texte. Frédérik Bilhaut Université de Caen MI2 RADI 2004/

25 Affichage d'un fichier XML orienté «données» avec transformation Exemple des graphes Orienté «données» : on va le tran sformer dans une représentation adaptée à la représentation visuelle Au moins deux représentations possibles : Matrice d'adjacence Tableau HTML Graphique (noeuds & arcs) Dessin SVG <?xml version="1.0"?> <graph> <node id="1">n1</node> <node id="2">n2</node> <node id="3">n3</node> <arc from="1" to="2"/> <arc from="2" to="3"/> <arc from="3" to="1"/> </graph> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

26 Affichage d'un fichier XML orienté «données» avec transformation (1) transformation <?xml version="1.0"?> <graph> <node id="1">n1</node> <node id="2">n2</node> <node id="3">n3</node> <arc from="1" to="2"/> <arc from="2" to="3"/> <arc from="3" to="1"/> </graph> N1 N1 N3 X N2 N3 N2 X X <?xml version="1.0"?> <html> <table> XHTML <tr> <th/> <th>n1</th> <th>n2</th> <th>n3</th> </tr> [...] </table> </html> table { CSS width: 80%; } th { font weight: bold; } Frédérik Bilhaut Université de Caen MI2 RADI 2004/

27 Affichage d'un fichier XML orienté «données» avec transformation (2) transformation <?xml version="1.0"?> <graph> <node id="1">n1</node> <node id="2">n2</node> <node id="3">n3</node> <arc from="1" to="2"/> <arc from="2" to="3"/> <arc from="3" to="1"/> </graph> N1 N2 N3 <?xml version="1.0"?> <svg> <g> <circle x="5" y="20" radius="40"/> <text x="15" y="35"> N1 </text> [...] SVG </g> </svg> circle { border width: 2px; } text { CSS align: center; } Frédérik Bilhaut Université de Caen MI2 RADI 2004/

28 Affichage d'un fichier XML orienté «document» avec transformation transformation <?xml version="1.0"?> <document lang="fr"> <title>le titre</title> <section> <para type="intro"> Voici un arbre XML. </para> <para> Du texte du texte. Du texte du texte. Du texte du texte. Du texte du texte. </para> <para> Encore du texte. Encore du texte. Encore du texte. </para> </section> </document> <?xml version="1.0"?> <root> <page sequence> <flow> <block> Du texte [...] </block> [...] XSL:FO </flow> </page sequence> </root> Le titre Voici un arbre XML. PDF Du texte du texte. Du texte du texte. Du texte du texte. Du texte du texte. Encore du texte. Encore du texte. Encore du texte. Frédérik Bilhaut Université de Caen MI2 RADI 2004/

29 Exemple de document XML visualisé avec CSS Frédérik Bilhaut Université de Caen MI2 RADI 2004/

30 Exemple de documents visualisés après transformations en HTML Frédérik Bilhaut Université de Caen MI2 RADI 2004/

31 Exemple d'éditeur XML basé sur CSS (WYSIWYM) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

32 Les espaces de noms Les espaces de noms (ou namespaces) permettent d'éviter les conflits entre des vocabulaires différents À chaque vocabulaire est associé un espace de noms Un espace de nom est identifié sans ambiguïté par une URI Fait partie de la spécification du vocabulaire XHTML : SVG : L'attribut xmlns permet de spécifier l'espace de nom utilisé : <?xml version="1.0" encoding="utf 8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>exemple de document XML</title> </head> [...] </html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

33 Les espaces de noms (2) Les namespaces peuvent être spécifiés en tout point de l'arbre La déclaration d'un namespace s'applique pour l'ensemble du sous arbre <?xml version="1.0" encoding="utf 8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>exemple de document XML</title> </head> <body> <p>voir le graphique ci dessous :</p> <g xmlns="http://www.w3.org/2000/svg"> <circle... /> </g> </body> </html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

34 Les espaces de noms (3) Pour faire faciliter la cohabitation des namespaces, on peut leur associer des préfixes Il seront utilisés pour spécifier le namespace de chaque élément Le choix des préfixes est local et arbitraire <?xml version="1.0" encoding="utf 8"?> <html:html xmlns:html="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg"> <html:head> <html:title>exemple de document XML</html:title> </html:head> <html:body> <html:p>voir le graphique ci dessous :</html:p> <svg:g> <svg:circle... /> </svg:g> </html:body> </html:html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

35 Les espaces de noms (4) Les préfixes peuvent cohabiter avec le namespace par défaut Celui ci s'applique quand aucun préfixe n'est spécifié <?xml version="1.0" encoding="utf 8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg"> <head> <title>exemple de document XML</title> </head> <body> <p>voir le graphique ci dessous :</p> <svg:g> <svg:circle... /> </svg:g> </body> </html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

36 Exemple de document composé XHTML MathML SVG Frédérik Bilhaut Université de Caen MI2 RADI 2004/

37 Les parseurs XML Bibliothèques permettant la manipulation de documents XML Acceptent tout documents bien formé Éventuellement, valident le document relativement à un schéma Parseurs à «m odèle objet» (Document Object Model / DOM) Construit un modèle objet de l'arbre XML Ce modèle est indépendant du langage de programmation (spéc. W3C) Disponible dans tous les langages de programmation / scripts Possibilité de naviguer facilement dans tout le document Simplifie la création de nouveaux documents (sans se soucier de la syntaxe), permet la migration de fragments d'un document à l'autre Occupation mémoire proportionnelle à la taille du document la taille des documents manipulables dépend de la mémoire disponible Procède systématiquement à l'analyse de l'intégralité du document Frédérik Bilhaut Université de Caen MI2 RADI 2004/

38 Les parseurs XML (2) Extrait du «Document Object Model» Frédérik Bilhaut Université de Caen MI2 RADI 2004/

39 Les parseurs XML (3) Parseurs de type «év énementiel» (Simple API for XML / SAX) Le document est vu comme une liste plate d'objets élémentaires Balises de début/fin, fragments textuels, commentaires, etc. ( objets DOM) Le document est parcouru linéairement un événement est émis pour chaque élément rencontré Début du document Balise début: "article" Commentaire: "Exemple" <?xml version="1.0"?> Balise début: "titre" <article> Texte: "Le titre" <! Exemple > Balise fin: "title" <title>le titre</title> Balise début: "section", {id="42"} <section id="42"> Balise début: "para" <para> Texte: "Du texte ici" Du texte ici <nl/> Balise début: "nl" et là. Balise fin: "nl" </para> Balise fin: "para" </section> Balise fin: "section" </article> Balise fin: "article" Fin du document Frédérik Bilhaut Université de Caen MI2 RADI 2004/

40 Les parseurs XML (4) Parseurs de type «év énementiel» (suite) Des parseurs SAX sont disponibles dans quasiment tous les langages Leur implique l'implémentation d'une interface quasiment standard A chaque méthode correspond un événement Le parseur les appelle en fonction des évènements détectés Frédérik Bilhaut Université de Caen MI2 RADI 2004/

41 Les parseurs XML (5) Parseurs de type «év énementiel» (suite) Occupation mémoire minime car le document n'y est jamais représenté dans son ensemble Possibilité de traiter des documents de taille quelconque Traitement rapide On ne s'occupe que les éléments nécessaires Pas de temps consacré à la construction des objets du DOM On n'a pas de vue globale sur le document C'est à l'utilisateur de mémoriser le nécessaire au cours du traitement État courant, données en attente de traitement, etc. En général automate à pile En «lecture» s eulement (pas de génération de XML) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

42 Vue d'ensemble de la sphère XML Modèles de documents XHTML SVG XForms Transformation & requêtes XSLT SOAP MathML DocBook Services Web SMIL XSL FO XQuery WSDL... Chemins, liens & pointeurs OpenOffice XML Web Sémantique RDF RDF Schema DOAP... FOAF OWL Spécification de schémas XSchema XPath XPointer XLink XInclude Spécifications associées DTD Relax NG Frédérik Bilhaut Université de Caen MI2 RADI 2004/2005 CSS HTTP URI Unicode ECMAScript 42

43 Exemples de documents XML DocBook : Documents LinguaStream XHTML + MathML + SVG composite.xhtml Fichier «A nt» Document annoté / annotations document.lsd, semantics.lss Chaîne de traitement stream.ls Document composite Documentation technique (entre autres) docbook.dbx Équivalent Java/XML du «M akefile» ant.svg Diagramme UML Fichier «D ia» diagramme.dia Document SVG diagramme.svg Frédérik Bilhaut Université de Caen MI2 RADI 2004/

44 La plate forme LinguaStream Frédérik Bilhaut Université de Caen MI2 RADI 2004/

45 Document Type Definitions Frédérik Bilhaut Université de Caen MI2 RADI 2004/

46 Document Type Definitions (DTD) Le format «D TD» permet de définir formellement un schéma (ou vocabulaire) XML. Format «d e base» (fait partie de la s pécification XML) Une alternative parmi d'autres (XSchema, RelaxNG,...) Une DTD définit en intension toutes les formes possibles d'un document conforme au schéma décrit Un schéma définit une classe de documents Chaque document est une instance particulière Un document XML peut indiquer la DTD à laquelle il se conforme Lien vers un document externe, intégrée au document, ou mixte Dans ce cas, un parseur XML pourra valider le document Si le document n'est pas conforme, le traitement est interrompu Frédérik Bilhaut Université de Caen MI2 RADI 2004/

47 Déclaration du type de document Par inclusion dans le document : <?xml version="1.0" standalone="yes"?> <!DOCTYPE document [ <! Définition du schéma > ]> <document>... </document> Dans un document séparé (préférable) : <?xml version="1.0" standalone="no"?> <?xml version="1.0"?> <!DOCTYPE document SYSTEM "schema.dtd"> <!ELEMENT document...> <document>... </document> <!ELEMENT section...> <!ELEMENT para...> document.xml schema.dtd Frédérik Bilhaut Université de Caen MI2 RADI 2004/

48 Aperçu de la syntaxe DTD <?xml version="1.0" encoding="utf 8"?> <!ELEMENT document (title, section+)> <!ATTLIST document lang NMTOKEN #IMPLIED> <!ELEMENT section (title, (para section)+> <!ATTLIST section id ID #IMPLIED lang NMTOKEN #IMPLIED> <!ELEMENT para (#PCDATA em sub exp)*> <!ELEMENT title (#PCDATA)> <!ELEMENT em (#PCDATA)> <!ELEMENT nl EMPTY> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

49 Définition des éléments <!ELEMENT document (title, section+)> mot clef Obligatoirement en majuscules Nom de l'élément : modèle de contenu Mot clef : nom de l'élément Graphie exacte de la balise dans le document Nom XML valide : pas d'espaces, respect de la casse, etc. Modèle de contenu Définit les éléments autorisés à l'intérieur de cette balise Définit leur multiplicité, éventuellement un ordre, etc. Syntaxe type «expres sions régulières» Frédérik Bilhaut Université de Caen MI2 RADI 2004/

50 Modèle de contenu des éléments Cas général : liste de sous éléments Séparés par des virgules : ordre défini Séparés par des barres verticales : ordre non défini <!ELEMENT section (para section)> Premier parenthèses obligatoires Un parenthésage supplémentaire permet de combiner les opérateurs : <!ELEMENT chapitre (titre, intro, section)> <!ELEMENT section (intro, (para section))> Opérateurs de multiplicité : Optionnel non répétable (0~1) : x? Optionnel répétable (0~*) : x* Obligatoire répétable (1~*) : x+ <!ELEMENT chapitre (titre?, intro*, section+)> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

51 Modèle de contenu des éléments (2) Rq : chaque élément «fils» doit à son tour définir son propre modèle de contenu <!ELEMENT toto (a b)*> <toto><a>...</a><b>...</b><b>...</b><a>...</a></toto> <toto><a>...</a><b>...<a>...</a>...</b></toto> Données textuelles Mot clef #PCDATA (Parsed Character Data) <!ELEMENT para (#PCDATA)> <para>en 3e année, on constate que...</para> Le contenu est fréquemment mixte : <!ELEMENT para (#PCDATA em sub exp)*> <para>en 3<exp>ème</exp> année, on constate...</para> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

52 Modèle de contenu des éléments (3) Contenu non spécifié <!ELEMENT toto ANY> La structure du contenu n'est pas contrainte, mais : Peu intéressant en DTD (surtout utile durant la mise au point du schéma) Le contenu doit rester bien formé Les balises contenues doivent avoir été déclarées dans la DTD En XSchema, le «an y» pourra être associé à un namespace Contenu vide On peut demander qu'un élément soit obligatoirement vide <!ELEMENT toto EMPTY> <toto x="y"/> ou <toto x="y"></toto> (sauf en SGML) Un modèle peut autoriser un contenu vide sans le rendre obligatoire <!ELEMENT toto (#PCDATA x y)*> On ne peut pas mêler «empty» à d' autres éléments <!ELEMENT toto (EMPTY titi)> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

53 Définition des attributs mot clef <!ATTLIST document attr1 type1 mode1 attr2 type2 mode2... > nom d'attribut Si la DTD est donnée, seuls les attributs déclarés pourront être spécifiés Un attribut donné ne peut être spécifié qu'une seule fois Nom de l'élément : déclaration de défaut Règles générales concernant les attributs type de donnée nom de l'élément Graphie exacte de la balise dont on définit les attributs Nom d'attribut Graphie exacte de l'attribut (règles XML habituelles) Les noms commençant par «xml» s ont interdits Frédérik Bilhaut Université de Caen MI2 RADI 2004/

54 Définition des attributs (2) Types de données disponibles : CDATA : chaîne de caractères littérale (Character Data) ID : identifiant unique au sein du document (un seul par élément) IDREF : référence à un identifiant du même document NMTOKEN(S) : un (ou plusieurs) symboles (Name Token) ENTITY et NOTATION : marginal et ± obsolète, cf. spécification XML Liste de choix possibles dans un ensemble de symboles prédéfinis Énumération des symboles séparés par des barres verticales : (a b c) Rq: XSchema est beaucoup plus expressif sur ce point (types «fins») Déclaration de défaut (ou mode) : Valeur par défaut : en vigueur lorsque l'attribut ne sera pas spécifié #REQUIRED : l'attribut devra obligatoirement être spécifié #IMPLIED : l'attribut est facultatif #FIXED : valeur figée et non re définissable Frédérik Bilhaut Université de Caen MI2 RADI 2004/

55 Définition des attributs (3) Exemples <!ELEMENT document...> <!ATTLIST document lang (fr en es de other unknown) #REQUIRED author CDATA #IMPLIED version CDATA #FIXED "1.2"> <!ELEMENT section...> <!ATTLIST section id ID #IMPLIED includeintoc (yes no) yes> <!ELEMENT para...> <!ATTLIST para class NMTOKEN #IMPLIED> <!ELEMENT xref...> <!ATTLIST xref target IDREF #REQUIRED> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

56 Définition d'entités générales <!ENTITY nom "valeur"> nom de l'entité Permet de définir ses propres entités Elles seront remplacées par leur valeur de substitution lors du parsing Nom de l'entité valeur de substitution Graphie exacte de l'entité telle qu'elle apparaîtra dans les documents Règles XML habituelles Valeur de remplacement Texte et/ou références à d'autres entités (prédéfinies ou non) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

57 Définition d'entités générales (2) Exemple <?xml version="1.0"?> <!DOCTYPE document [ <!ENTITY cp " "> <!ENTITY copyright "&cp; James Bond"> <!... > ]> <document> <para> Du texte et encore du texte. [...] </para> <para> &copyright; </para> </document> Du texte et encore du texte. Du texte et encore du texte. James Bond Frédérik Bilhaut Université de Caen MI2 RADI 2004/

58 Retour sur l'exemple des graphes Le présent document spécifie un schéma XML permettant de représenter des graphes orientés. Les différentes balises définies sont : graph (la racine), node et arc. Un élément graph décrit un graphe, et contient des éléments node (au moins un) et arc (de 0 à n). Il accepte l'attribut optionnel name spécifiant l'intitulé du graphe. L'attribut figé version détermine la version de cette spécification (1.2). Un élément node décrit un noeud du graphe, et contient éventuellement du texte définissant son label. Il demande l'attribut obligatoire id spécifiant un identifiant unique. Un élément arc décrit un arc du graphe, et contient éventuellement du texte définissant son label. Il demande les attributs obligatoires from et to, spécifiant respectivement les identifiants du noeud de départ et du noeud d'arrivée (ceux ci doivent être spécifiés au sein du même noeud graph). Spécification informelle du schéma N1 N2 N3 Exemple de graphe <?xml version="1.0"?> <graph version="1.2"> <node id="1">n1</node> <node id="2">n2</node> <node id="3">n3</node> <arc from="1" to="2"/> <arc from="2" to="3"/> <arc from="3" to="1"/> </graph> Exemple d'instance Frédérik Bilhaut Université de Caen MI2 RADI 2004/

59 Retour sur l'exemple des graphes (2) : la DTD <?xml version="1.0" encoding="iso "?> <!ELEMENT graph (node+, arc*)> <!ATTLIST graph name CDATA #IMPLIED> version CDATA #FIXED "1.2"> <!ELEMENT node (#PCDATA)> <!ATTLIST node id ID #REQUIRED> <!ELEMENT arc EMPTY> <!ATTLIST arc to IDREF #REQUIRED from IDREF #REQUIRED> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

60 Exercice : proposer une DTD à partir d'un document «type» <?xml version="1.0" encoding="utf 8"?> <project basedir="." default="compile" name="mon projet"> <description> Ceci est un exemple valide de fichier "Ant". </description> <property name="options" value=" v"/> <path id="monclasspath"> <pathelement location="lib/xerces.jar"/> <pathelement location="lib/xalan.jar"/> </path> <target name="compile" depends="clean"> <javac srcdir="." encoding="iso "> <classpath refid="monclasspath"/> </javac> <rmic base="." classname="fr.unicaen.test.serviceimpl"> <classpath refid="monclasspath"/> </rmic> </target> <target name="documentation"> <ant antfile="build.xml" target="pdf" dir="doc/manual"/> <ant antfile="build.xml" target="javahelp" dir="doc/manual"/> </target> <target name="clean"> <delete> <fileset dir="." includes="**/*.class"/> <fileset dir="." includes="**/*.java~" defaultexcludes="no"/> </delete> </target> </project> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

61 Les limites du formalisme DTD Manque de modularité Pas de gestion de types évolués De plus en plus de documents sont composites, i.e. utilisent simultanément plusieurs schémas On ne peut ni associer une DTD à un namespace, ni combiner proprement plusieurs DTD Formats numériques, dates, contraintes sur les chaînes de caractère, etc. Limites sur les modèles de contenu Ex 1 : dans un graphe, au moins un noeud et zéro ou plusieurs arcs, dans n'importe quel ordre <!ELEMENT graph (arc*,node,(node arc)*)> (!) Ex 2 : un élément peut contenir trois types de sous éléments (a, b et c), avec au moins un de chaque, dans un ordre quelconque??? Frédérik Bilhaut Université de Caen MI2 RADI 2004/

62 Les limites du formalisme DTD (2) Pas de notion d'extensibilité ou d'héritage Il est fréquent que plusieurs éléments partagent des propriétés communes Des solutions existent en DTD mais sont très primitives On ne dispose que des commentaires pour documenter le schéma La syntaxe DTD n'est pas un vocabulaire XML Substitution de «macr os» Pas de gestion des annotations Ex : balises chapter, section, appendix etc. possédant toutes un attribut id et un premier sous élément title Impossible de manipuler le contenu d'une DTD avec les outils XML! Etc. DTD est hérité de SGML et n'a pas suivi toutes les évolutions de XML Mais il reste encore très fréquemment utilisé Heureusement, la plupart de ses limites sont levées par XSchema Frédérik Bilhaut Université de Caen MI2 RADI 2004/

63 XPath & XSLT Frédérik Bilhaut Université de Caen MI2 RADI 2004/

64 Transformation d'un document XML Retour sur l'exemple des graphes <?xml version="1.0"?> <graph> <node id="1">n1</node> <node id="2">n2</node> <node id="3">n3</node> <arc from="1" to="2"/> <arc from="2" to="3"/> <arc from="3" to="1"/> </graph> N1 N1 N3 X N2 N3 N2 X X <?xml version="1.0"?> <html> <table> <tr> <th/> <th>n1</th> <th>n2</th> <th>n3</th> </tr> <tr> <th>n1</th> <td></td> <td>x</td> <td></td> </tr> [...] </table> </html> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

65 Transformation d'un document XML Un exemple plus complexe, réalisable en XSLT pur <?xml version="1.0"?> <Airport lat=" " lon=" " ident="lfrk"> <Runway length=" "> <ILS frequency="110.95"> [...] </ILS> </Runway> [...] </Airport> Document XML décrivant un aérodrome (schéma spécifique) Carte au format SVG ( OACI) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

66 Transformation d'arbres La transformation d'arbres est une opération très courante : Pour exprimer les mêmes données sous un autre format ( équivalent) Pour exprimer les données sous un format directement affichable Ex : ne garder que les noeuds X ayant une propriété Y Ajouter des données «nouvelles» (même format ou par compos ition) Ex : DocBook HTML, GraphML SVG Pour sélectionner une partie de données Ex : OpenOffice WordML, GraphML GXL Ex : table des matières, index, etc. Deux façons de procéder : Impérative : programme utilisant un parseur et une API de génération Déclarative : utilisation d'un formalisme permettant de décrire les transformations à effectuer + moteur adéquat Ex : XSLT, XQuery, STX,... Frédérik Bilhaut Université de Caen MI2 RADI 2004/

67 exstensible Stylesheet Language (XSL) Spécification du W3C qui regroupe trois langages distincts XSLT : transformations d'arbres XML XPath : spécification de sous arbres XSL FO : Mise en forme (Formatting Objects, non traité ici) Trois spécifications maintenant indépendantes XSLT : version 1.0 en 1999, version 2.0 actuellement en doc. de travail XPath : version 1.0 en 1990, version 2.0 actuellement en doc. de travail XSL FO : version, 1.0 en 2001 XPath XSLT XQuery XPointer Frédérik Bilhaut Université de Caen MI2 RADI 2004/

68 XPath Frédérik Bilhaut Université de Caen MI2 RADI 2004/

69 Introduction à XPath La langage XPath est utilisé pour désigner un ou plusieurs noeuds d'un arbre XML Syntaxe compacte et non XML Inclusion simple dans les attributs XML, les URI, etc. La syntaxe XPath définit des expressions L'évaluation d'une expression s'opère dans un contexte bien défini Le contexte est généralement un noeud du document En évaluant une expression, on peut obtenir différents types de valeurs : Un ensemble de noeuds (liste non ordonnée et non redondante) Une chaîne de caractères Une valeur booléenne Une valeur numérique Frédérik Bilhaut Université de Caen MI2 RADI 2004/

70 Quelques exemples basiques Une expression est généralement un chemin dans l'arbre XML Principe similaire aux chemins d'accès dans un système de fichiers Le contexte est analogue au répertoire courant ( noeud courant) Mais : une expression XPath peut désigner plusieurs noeuds, et peut n'en désigner aucun Chemins simples : Noms d'éléments séparés par des «/» /document/section/paragraph tout paragraphe fils d'une section fille de la racine (document) Chemins relatifs (au contexte courant) : paragraph ou./paragraph tout paragraphe fils du noeud courant section/paragraph tout paragraphe fils d'une section fille du noeud courant Frédérik Bilhaut Université de Caen MI2 RADI 2004/

71 Quelques exemples basiques (2) Chemins simples (suite) : Utilisation du joker section/* section//* tout noeud descendant d'une section fille du noeud courant Accès aux noeuds parents../paragraph tout noeud fils direct d'une section fille du noeud courant tout noeud paragraphe fils direct du noeud parent Chemins à profondeur variable //paragraph.//paragraph n'importe quel paragraphe (dans l'ensemble du document) n'importe quel paragraphe descendant du noeud courant /document/section//paragraph un paragraphe descendant d'une section Frédérik Bilhaut Université de Caen MI2 RADI 2004/

72 Axes de déplacements dans l'arbre Pour chaque étape d'un chemin on peut spécifier un «axe» Celui ci spécifie la «direction» du déplacement Par défaut, l'axe suivi est celui des noeuds fils Pour alléger la notation ce dernier peut être omis (cf. ex. précédents) XPath définit les axes suivants : L'axe des noeuds fils (child) : contient tous les fils directs L'axe des noeuds descendants (descendant) : tous les fils, directs ou non L'axe parent (parent) : le noeud parent s'il existe L'axe des ancêtres (ancestor) : tous les noeuds parents, directs ou non L'axe des frères successeurs (following sibling) : tous les frères suivants (dans l'ordre du document) L'axe des frères prédécesseurs (preceding sibling) : idem pour les frères précédents Frédérik Bilhaut Université de Caen MI2 RADI 2004/

73 Axes de déplacements dans l'arbre (2) XPath définit les axes suivants (suite) : L'axe des successeurs (following) : tous les noeuds suivants dans l'ordre du document, à l'exclusion de la descendance, des attributs et des espaces de noms L'axe des prédécesseurs (preceding) : idem pour les noeuds précédents L'axe des attributs (attribute) : contient les attributs de l'élément courant s'il s'agit d'un élément (vide sinon) L'axe réflexif (self) : contient le noeud courant L'axe descendant ou réflexif (descendant or self) : contient le noeud courant et ses descendants L'axe ancêtre ou réflexif (ancestor or self) : idem pour les ancêtres L'axe des espaces de noms (namespace) : espaces de noms déclarés s'il s'agit d'un élément (vide sinon) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

74 Axes de déplacements dans l'arbre (3) Remarque 1 : partitionnement du document Les axes des ancêtres, des descendants, des prédécesseurs, des prédécesseurs et réflexif partitionnent le document (sauf attributs et espaces de noms) : ils ne se recouvrent pas les uns les autres et, à eux tous, contiennent tous les noeuds d'un document. Remarque 2 : à chaque axe est associé un type de noeud principal Axe des attributs : attribute Axe des espaces de noms : namespace Tous les autres axes : element Frédérik Bilhaut Université de Caen MI2 RADI 2004/

75 Syntaxe complète d'une étape de localisation Un chemin comporte une ou plusieurs étapes de localisation La syntaxe de chaque étape est : axe::test[prédicat ]...[prédicat ] L'élément axe spécifie le «sens» du déplacement 1 parent, ancestor, following,... L'élément test est une contrainte sur type ou le nom du noeud N Nom de balise ou d'attribut, ex : child::document, attribute::id, etc. Joker * : vrai pour tout noeud du type de noeud principal, ex : attribute::* Contrainte text() : noeud textuel Contrainte comment() : commentaire Contrainte processing instruction() : instruction de traitement Contrainte node() : vrai pour tout noeud Les prédicats permettent de procéder à des filtrages supplémentaires Ex : sur la position dans l'arbre, sur les attributs (pour un élément), etc. Les prédicats seront détaillés plus loin Frédérik Bilhaut Université de Caen MI2 RADI 2004/

76 Syntaxe abrégée des étapes de localisation Pour alléger la syntaxe des raccourcis syntaxiques sont définis : L'axe des fils est implicite : section/para child::section/child::para Accès aux attributs attribute::class Descendants : //para /descendant or self::node()/child::para Noeud courant :./para self::node()/child::para Noeud parent :../para /parent::node()/child::para Exemples : chapter//para text() noeuds textuels fils du noeud descendants para des enfants chapter du noeud courant tous les attributs du noeud l'attribut lang du parent du noeud courant Frédérik Bilhaut Université de Caen MI2 RADI 2004/

77 Expressions simples La syntaxe XPath reconnaît également des expressions plus «cla ssiques» : XPath gère différents types de données Expressions booléennes : x or (y and z) Expressions arithmétiques : x * (y z) Appels fonctionnels : f(x,y,z) Appel à des variables : $v Valeurs littérales : 37.5, 'chaîne de caractères', "autre chaîne" Numérique (réels), booléen, chaîne, liste de noeuds, etc. Le typage est dynamique et implicite, avec possibilité de conversion explicites Appels fonctionnels : La spécification définit un ensemble de fonctions utilitaires XPath 2.0 élargit cet ensemble et permet d'écrire ses propre fonctions Frédérik Bilhaut Université de Caen MI2 RADI 2004/

78 Expressions simples (2) Expressions booléennes : Expressions arithmétiques : Opérateurs : and, or Fonctions de base : not(), true(), false() Comparateurs : =,!=, <, >, <=, >= Opérateurs : +,, *, div, mod (priorités habituelles) Exemples de fonctions disponibles (cf. spéc. pour liste complète) Sur des ensembles de noeuds : last() : retourne la dimension contextuelle (i.e. nombre de noeuds sélectionnés par l'étape précédente) position() : position dans le contexte (dans la liste des noeuds sélectionnés par le test ou le prédicat précédent) count($ns) : nombre de noeuds dans la liste de noeuds $ns name($ns) : retourne le nom du noeud en première position dans $ns (il existe aussi local name() et namespace uri() pour gérer les espaces de noms) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

79 Expressions simples (3) Exemples de fonctions disponibles (suite) : Sur les valeurs numériques : sum($nl) : retourne la somme de tous les objets présents dans $nl une fois convertis en numériques floor($v) : retourne le plus grand nombre entier inférieur à l'argument round($v) : retourne le nombre entier le plus proche de l'argument Sur les chaînes de caractères : concat($v1,...,$vn) : retourne le résultat de la concaténation des arguments starts with($s1,$s2) : retourne vrai si $s1 commence par la chaîne $s2 contains($s1,$s2) : retourne vrai si $s1 contient la chaîne $s2 Conversion de type (selon des règles bien définies, cf. spécification) : string($v) : retourne une chaîne représentant $v boolean($v) : retourne un booléen «éq uivalent» à $v (nombre 0, liste de noeuds non vide, chaîne de longueur non nulle, etc.) number($v) : retourne un équivalentn umérique de $v (si possible, NaN sinon) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

80 Les prédicats Un prédicat ajoute une contrainte sur les noeuds sélectionnés à l'étape de localisation à laquelle il appartient 1 N Les prédicats sont appliqués dans l'ordre de leur apparition Rappel de la syntaxe d'une étape : axe::test[prédicat ]...[prédicat ] Le premier s'applique aux noeuds sélectionnés par le couple axe/test Chacun d'entre eux s'applique à l'ensemble sélectionné par les précédents Un prédicat est une expression XPath quelconque Son contexte d'évaluation sera le noeud auquel le prédicat est appliqué Elle est évaluée pour chaque noeud préalablement sélectionné Si le résultat est un nombre : le noeud est sélectionné si ce nombre est égal à sa position contextuelle Sinon, le résultat sera converti en valeur booléenne selon les règles de la fonction boolean (le noeud est sélectionné si cette valeur est vraie) Frédérik Bilhaut Université de Caen MI2 RADI 2004/

81 Les prédicats (2) Exemples : para[3] : désigne le troisième fils para du noeud courant para[last()] : le dernier fils para du noeud courant /doc/chapter[5]/section[2] : le 2 ème noeud section du 5ème chapter de doc : les fils para du noeud courant qui ont un attribut type dont la valeur est "warning" ème : le 5 fils para du noeud courant parmi ceux qui ont un attribut type dont la valeur est "warning" ème : le 5 fils para du noeud courant à condition qu'il possède un attribut type dont la valeur est "warning" chapter[title='introduction'] : les fils chapter du noeud courant ayant au moins un fils title dont le contenu textuel est "Introduction" : les fils employee du noeud courant qui possèdent simultanément les attributs secretary et assistant Frédérik Bilhaut Université de Caen MI2 RADI 2004/

82 Exercice : soit le document XML suivant... <?xml version="1.0" encoding="utf 8"?> <project basedir="." default="compile" name="mon projet"> <description> Ceci est un exemple valide de fichier "Ant". </description> <property name="options" value=" v"/> <path id="monclasspath"> <pathelement location="lib/xerces.jar"/> <pathelement location="lib/xalan.jar"/> </path> <target name="compile" depends="clean"> <javac srcdir="." encoding="iso "> <classpath refid="monclasspath"/> </javac> <rmic base="." classname="fr.unicaen.test.serviceimpl"> <classpath refid="monclasspath"/> </rmic> </target> <target name="documentation"> <ant antfile="build.xml" target="pdf" dir="doc/manual"/> <ant antfile="build.xml" target="javahelp" dir="doc/manual"/> </target> <target name="clean"> <delete> <fileset dir="." includes="**/*.class"/> <fileset dir="." includes="**/*.java~" defaultexcludes="no"/> </delete> </target> </project> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

83 ... Formuler les «requêtes» XPath suivantes : (1) L'ensemble des noeuds target qui dépendent du but dont le nom est "clean" (2) Le noeud target par défaut (son nom est égal à l'attribut default du noeud project) (3) La taille en caractères de la description du projet (4) La valeur de la propriété "options" (5) Le nombre de buts dépendant d'autres buts (6) Tous les descendants du projet ayant un attribut srcdir différent de son basedir (7) La dernière tâche du but "documentation" (8) Toutes les tâches à effectuer pour le but "compile" (9) Le deuxième pathelement de chaque path (10) Les tâches javac qui contiennent au moins un classpath (11) Les tâches javac qui contiennent au moins deux classpath (12) Les tâches javac suivies d'une tâche rmic dont le classname débute par "fr.unicaen" Frédérik Bilhaut Université de Caen MI2 RADI 2004/

84 Solutions de l'exercice (1) 'clean')] (2) = (3) string length(/project/description) (4) = (5) (6) (7) = 'documentation']/*[last()] (8) = 'compile']/* (9) //path/pathelement[2] (10) //javac[classpath] (11) //javac[count(classpath) >= 2] (12) //javac[following::rmic[starts 'fr.unicaen')]] Frédérik Bilhaut Université de Caen MI2 RADI 2004/

85 XSLT Frédérik Bilhaut Université de Caen MI2 RADI 2004/

86 Introduction à XSLT Formalisme de représentation déclarative d'un procédé de transformation d'arbres XML C'est un vocabulaire XML Son espace de noms est : Recommandation du W3C : La spécification XSLT définit une syntaxe et sa sémantique Comme il est d'usage, le préfixe utilisé dans le présent document sera xsl Il existe de multiples implémentations ( dans tous les langages) Ex. en Java : Xalan (http://xml.apache.org) Les grandes lignes d'une transformation XSLT : Analyse de la feuille XSLT Chargement du document source en mémoire (arbre DOM) Application des règles de transformation au document source Fabrication et sortie du document résultat Frédérik Bilhaut Université de Caen MI2 RADI 2004/

87 Introduction à XSLT (2) Une feuille XSLT est principalement composée d'en ensemble de modèles (ou templates) Chaque template est spécifie des règles de transformation applicables à un ou plusieurs types de noeuds Un template est composé de deux éléments principaux : Spécification des noeuds auxquels il s'applique (en général) Spécification du sous arbre XML à générer Expression XPath Éléments statiques (noeuds XML quelconques) Éléments dynamiques (noeuds XSLT) Application aux descendants des autres templates Création dynamique de noeuds XML à partir d'expressions XPath Le moteur se charge d'appliquer les templates autant que possible Les templates par défaut sont appliqués le cas échéant Frédérik Bilhaut Université de Caen MI2 RADI 2004/

88 Introduction à XSLT (3) Feuille XSLT T T Moteur XSLT T T T T Document Source T Document Résultat Frédérik Bilhaut Université de Caen MI2 RADI 2004/

89 Premier aperçu du langage XSLT <?xml version="1.0" encoding="utf 8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/document"> <html> <head> <title> <xsl:value of select="title/text()"/> </title> </head> <body> <xsl:apply templates/> </body> </html> </xsl:template> <xsl:template match="title"> <h1><xsl:apply templates/></h1> </xsl:template> <xsl:template match="paragraph"> <p><xsl:apply templates/></p> </xsl:template> [...] </xsl:stylesheet> Frédérik Bilhaut Université de Caen MI2 RADI 2004/

" extensible Markup Language " XML

 extensible Markup Language  XML " extensible Markup Language " XML Sylvie Vignes, Département Informatique et Réseaux École Nationale Supérieure des Télécommunications 46, rue Barrault 75634 Paris cedex 13 Département Informatique et

Plus en détail

Le langage XML. Sébastien Jean. IUT de Valence Département Informatique. v3.3, 10 novembre 2008

Le langage XML. Sébastien Jean. IUT de Valence Département Informatique. v3.3, 10 novembre 2008 Le langage XML Sébastien Jean IUT de Valence Département Informatique v3.3, 10 novembre 2008 Qu est ce que XML? Généralités XML = extensible Markup Language Spécification du W3C Version 1.0 (1998-2004)

Plus en détail

Introduction à XML. 1. Notions de base. Introduction à XML

Introduction à XML. 1. Notions de base. Introduction à XML Introduction à XML INTRODUCTION À XML 1. NOTIONS DE BASE 2. EXEMPLE SIMPLE 3. SYNTAXE XML 3.1. LES CARACTÈRES SPÉCIAUX 4. DTD 5. DOCUMENT XML AVEC FEUILLE DE STYLE CSS 6. XLS ET XSLT 6.1. EXEMPLE DE DOCUMENT

Plus en détail

Internet statique et dynamique XML. Programmation de sites web statiques et dynamiques. extended Markup Language (XML) Jean CARTIER MASTER INI

Internet statique et dynamique XML. Programmation de sites web statiques et dynamiques. extended Markup Language (XML) Jean CARTIER MASTER INI Programmation de sites web statiques et dynamiques extended Markup Language () Jean CARTIER MASTER INI jcartier@laposte.net 1 extented Markup Language () Le HTML est un langage très bien adapté à la diffusion

Plus en détail

XML, DTD. Dan VODISLAV. Université de Cergy-Pontoise. Licence Informatique L3. Plan

XML, DTD. Dan VODISLAV. Université de Cergy-Pontoise. Licence Informatique L3. Plan XML, DTD Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan XML: pourquoi et comment Principes et caractéristiques de base Comparaison avec HTML et les BD relationnelles Le format XML

Plus en détail

XML (extensible Markup Language)

XML (extensible Markup Language) XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php 1. Qu est-ce que XML?

Plus en détail

XML. Nicolas Singer. Maître de conférence, université Champollion

XML. Nicolas Singer. Maître de conférence, université Champollion XML Nicolas Singer Maître de conférence, université Champollion XML? Langage de description de documents électroniques : Pour stocker et échanger des documents Par extension, pour représenter tout type

Plus en détail

Les technologies XML. Cours 2 : Transformation et Formatage de documents XML : Cours 2.2 : XSLT. Novembre 2010 - Version 3.2 -

Les technologies XML. Cours 2 : Transformation et Formatage de documents XML : Cours 2.2 : XSLT. Novembre 2010 - Version 3.2 - Les technologies XML Cours 2 : Transformation et Formatage de documents XML : Cours 2.2 : XSLT Novembre 2010 - Version 3.2 - SOMMAIRE DU COURS TRANSFORMATIONS DE DOCUMENTS XML Introduction à XSL Noeuds

Plus en détail

2. XML. Cours Web. extended Markup Language (XML) 2. XML 2. XML. extented Markup Language (XML) Lionel Seinturier. Université Pierre & Marie Curie

2. XML. Cours Web. extended Markup Language (XML) 2. XML 2. XML. extented Markup Language (XML) Lionel Seinturier. Université Pierre & Marie Curie Cours Web extended Markup Language (XML) Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr extented Markup Language (XML) Constat sur HTML langage très bien adapté à la diffusion

Plus en détail

INTRODUCTION. Plan du cours. Introduction à XML XML? XML

INTRODUCTION. Plan du cours. Introduction à XML XML? XML Plan du cours Introduction à XML Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. XML : (a) introduction (b) le langage (c) les DTD (d) les espaces de noms 2. les schémas

Plus en détail

DTD (Document Type Definition) - XML (extensible Markup Language)

DTD (Document Type Definition) - XML (extensible Markup Language) DTD (Document Type Definition) - XML (extensible Markup Language) Références : XML, Micro Application e-poche http://giles.chagnon.free.fr/cours/xml/base.html http://www.cgmatane.qc.ca/forgetj/formation/int4/xml.php

Plus en détail

Introduction. Transformer des documents XML. XPath. XPath. Langage d'expressions de chemins dans un. permet de désigner un noeud (sous-arbre)

Introduction. Transformer des documents XML. XPath. XPath. Langage d'expressions de chemins dans un. permet de désigner un noeud (sous-arbre) Introduction Transformer des documents 1 Désignation d un nœud (sous-arbre) d un document : XPATH Associer une présentation à un document : CSS Transformer un document en un autre document (HTML) : XSLT

Plus en détail

Plan. 1.Rappels 2.Type de documents 3.Définition de types de documents (DTD) 4.Syntaxe des DTD 5.Utilisation des DTD. Référence :

Plan. 1.Rappels 2.Type de documents 3.Définition de types de documents (DTD) 4.Syntaxe des DTD 5.Utilisation des DTD. Référence : Définitions de types de documents : DTD Plan 1.Rappels 2.Type de documents 3.Définition de types de documents (DTD) 4.Syntaxe des DTD 5.Utilisation des DTD Référence : Extensible Markup Language (XML)

Plus en détail

INTRODUCTION. méta-langage

INTRODUCTION. méta-langage INTRODUCTION renault twingo Bic 1999 etc.. XML : extensible

Plus en détail

XML et DTD: rappels Cours Document et Web Sémantique. Quelques concepts importants. Évolution de XML. Organisation

XML et DTD: rappels Cours Document et Web Sémantique. Quelques concepts importants. Évolution de XML. Organisation Plan et : rappels Cours Document et Web Sémantique Nicolas Malandain 1 Généralités Organisation Les éléments Les attributs Les sections littérales Les Entités Conseils 2 Organisation Les éléments Les attributs

Plus en détail

Université de Reims Champagne-Ardenne XML. DTD : Document Type Definition. F. Nolot Licence professionnelle CMSII 2004-2005 1

Université de Reims Champagne-Ardenne XML. DTD : Document Type Definition. F. Nolot Licence professionnelle CMSII 2004-2005 1 Université de Reims Champagne-Ardenne XML DTD : Document Type Definition F. Nolot Licence professionnelle CMSII 2004-2005 1 Qu'est qu'une DTD? Permet de vérifier qu'un document XML est conforme à une syntaxe

Plus en détail

IV. Localisation des composants avec XPath

IV. Localisation des composants avec XPath IV. Localisation des composants avec XPath 90 Langage XPath Est un langage d expression (non XML) Standard du W3C: XPath1.0 (1999), XPath2.0 (2010), XPath3.0 (2014) Objectif: exprimer des requêtes pour

Plus en détail

Web et présentation d information spatiale

Web et présentation d information spatiale Université de La Rochelle LUP-SIG 2004-2005 Programmation SIG et Internet Cartographique Web et présentation d information spatiale Format XML Jean-Michel FOLLIN jmfollin@univ-lr.fr Limitations HTML Limitations

Plus en détail

XML, DOM & XSL Synthèse de lecture

XML, DOM & XSL Synthèse de lecture Dorine MAZEYRAT XML, DOM & XSL Synthèse de lecture Novembre 2008 NFE107 - Urbanisation des SI 0 SOMMAIRE 1. LE LANGAGE XML...2 1.1. Définition...2 1.2. Historique...2 1.3. Objectif...2 1.4. Présentation

Plus en détail

Devoir XML / XSLT / Unicode

Devoir XML / XSLT / Unicode Devoir XML / XSLT / Unicode Frédérik Bilhaut Université de Caen Département d'informatique Les fichiers fournis pour réaliser le devoir sont à récupérer ici : http://www.info.unicaen.fr/~fbilhaut/ens/radi/devoir.tgz

Plus en détail

Introduction au langage XML. Nhan Le Thanh

Introduction au langage XML. Nhan Le Thanh Introduction au langage XML Nhan Le Thanh 1 Plan du cours extensible Markup Language Éléments de base du XML DTD : Document Type Description S1 XPath : XML Path Language XML Schema S2 XSLT : Transformations

Plus en détail

Programmation d applications pour le Web

Programmation d applications pour le Web Programmation d applications pour le Web Cours 2 ème année ING ISI-Tunis Elaboré par: Hela LIMAM Chapitre 3 Partie 2 XML+XSL Année universitaire 2011/2012 Semestre 2 1 Le XML ne fait rien. Il faudra passer

Plus en détail

Outil pour le Web XML. Polytech Marseille. E. Tranvouez. Département Génie Industriel et Informatique

Outil pour le Web XML. Polytech Marseille. E. Tranvouez. Département Génie Industriel et Informatique Outil pour le Web XML E. Tranvouez erwan.tranvouez@polytech.univ-mrs.fr http://erwan.tranvouez.free.fr Polytech Marseille Département Génie Industriel et Informatique 1 Sommaire 2 Problématique Contexte,

Plus en détail

HTML/XHTML/XML. Olivier Aubert 1/26

HTML/XHTML/XML. Olivier Aubert 1/26 HTML/XHTML/XML Olivier Aubert 1/26 Liens http://www.brics.dk/~amoeller/xml/overview.html http://www.w3.org/tr/xhtml1/#guidelines : annexe C, compatibility guidelines http://www710.univ-lyon1.fr/~exco/cours/cours/htm

Plus en détail

Modélisation et interopérabilité : Semaine 40, cours 3

Modélisation et interopérabilité : Semaine 40, cours 3 Modélisation et interopérabilité : Semaine 40, cours 3 Benoît Valiron http://inf356.monoidal.net/ 1 Question pratique : Evaluation Trois choses : Un examen final (coef 2/3)

Plus en détail

1 XML : Une première définition. 2.1 SGML... 1 2.2 HTML... 2 2.3 Feuille de style CSS... 3. 3 XML : extensible Markup Language 4

1 XML : Une première définition. 2.1 SGML... 1 2.2 HTML... 2 2.3 Feuille de style CSS... 3. 3 XML : extensible Markup Language 4 Introduction au Table des matières 1 : Une première définition 1 2 Historique d 1 2.1 SGML................................................. 1 2.2 HTML................................................. 2

Plus en détail

Plusieurs façons de communiquer AJAX? Communication, manière facile. AJAX en jquery

Plusieurs façons de communiquer AJAX? Communication, manière facile. AJAX en jquery Programmation web AJAX Jean-Christophe Dubacq IUT de Villetaneuse S3 2013 AJAX A Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 1 / 33 Le modèle classique Jean-Christophe Dubacq (IUTV) Programmation

Plus en détail

Bases de Données Avancées

Bases de Données Avancées Bases de Données Avancées Enseignant / chargé de TD : Dario COLAZZO www.lri.fr/~colazzo Chargée de TP : Jesús CAMACHO-RODRIGUEZ www.lri.fr/~camacho Plan Tuning d index Concurrence Reprise sur panne Données

Plus en détail

Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant. Comparateur de documents XML

Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant. Comparateur de documents XML Rémi Godard Vivian Perez Florian Pérugini Bertrand Vitrant DOCUMENTATION TECHNIQUE Comparateur de documents XML SOMMAIRE 1 Introduction... 3 2 Langage et choix de programmation... 4 2.1 Le langage PHP...

Plus en détail

Université de Reims Champagne-Ardenne. XML - Introduction. F. Nolot Licence professionnelle CMSII 1

Université de Reims Champagne-Ardenne. XML - Introduction. F. Nolot Licence professionnelle CMSII 1 Université de Reims Champagne-Ardenne XML - Introduction F. Nolot Licence professionnelle CMSII 1 Université de Reims Champagne-Ardenne XML - Introduction Historique F. Nolot Licence professionnelle CMSII

Plus en détail

Créer des documents XML

Créer des documents XML 1 Créer des documents XML La spécification XML définit comment écrire un document au format XML. XML n est pas un langage en lui-même mais, en revanche, un document XML est écrit dans un langage à balises

Plus en détail

PHP et XML. Traitements de XML

PHP et XML. Traitements de XML PHP et XML XML et PHP 1 Traitements de XML Deux approches pour manipuler des documents XML: Approche DOM: Utilise un analyseur (Parser) qui transforme le document XML en structure d'arbre. Il faut parcourir

Plus en détail

XSL Langage de transformation de XML. Approfondissements

XSL Langage de transformation de XML. Approfondissements XSL Langage de transformation de XML Approfondissements http://www.zvon.org/xxl/xsltreference/output/index.html Retour sur les modèles (template) Une feuille de style peut contenir plusieurs modèles Chaque

Plus en détail

Chapitre II. Notions de base

Chapitre II. Notions de base Chapitre II 1 2 3 Espace de noms Web Sémantique M1 2015-2016 10 Chapitre II 1 ref 2 3 Espace de noms Web Sémantique M1 2015-2016 11 Uniform Resource Identifier () Une est une chaîne qui identifie une ressource

Plus en détail

Description, parcours et transformation d un. document XML. Jacques Le Maitre. Université de Toulon et du Var

Description, parcours et transformation d un. document XML. Jacques Le Maitre. Université de Toulon et du Var document XML Jacques Le Maitre Université de Toulon et du Var Jacques Le Maitre document XML 1 document XML 2 Différents aspects d un document Editorial présentation du document. Signalétique identification

Plus en détail

Bertrand DAVID : Interaction Humain-Machine

Bertrand DAVID : Interaction Humain-Machine Interaction Humain-Machine Xml La transformation avec Xslt Les parseurs les outils pour Xml Transformation de documents dans les applications multimédia 1 XML extensible Markup Langage Un langage universel

Plus en détail

XML Les documents semi-structurés

XML Les documents semi-structurés XML Les documents semi-structurés XML - extensible Markup Language XSL(T) - extensible Stylesheet Language XSD XML Schema DTD Document Type Definition Ivan Madjarov, IUT-R&T, 2006-2008 XML dérive d'un

Plus en détail

Dom, XML, Lecture de fichiers

Dom, XML, Lecture de fichiers Projet de développement web : Développement côté client Chapitre 4 Dom, XML, Lecture de fichiers Page 1 / 11 Table des matières Table des matières Introduction DOM : Document Object Model Structure habituelle

Plus en détail

Langage (X)HTML Damien Nouvel

Langage (X)HTML Damien Nouvel Langage (X)HTML Plan Quelques statistiques du web Architecture client / serveur Langage XML Mise en forme HTML Structure d'un document HTML 2 / 36 Plan Quelques statistiques du web Architecture client

Plus en détail

Introduction à XML. Définitions Applications Règles Affichage et transformation Documentation mathématique Métadonnées En conclusion

Introduction à XML. Définitions Applications Règles Affichage et transformation Documentation mathématique Métadonnées En conclusion Introduction à XML transformation 1 XML n est pas Transformations Une norme de description bibliographique «Enfin le moyen pour que les documentalistes s approprient la documentation en ligne» (entendu

Plus en détail

INU3011 Documents structurés

INU3011 Documents structurés INU3011 Documents structurés Cours 1 Hiver 2016 Copyright 2010-2016 Yves Marcoux - Reproduction interdite 1 Plan Introduction à XML En quoi ce cours peut vous être utile dans votre carrière? Contextes

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Autres technologies XML. Plan. XML et la sécurité. Cryptage XML. Signatures XML. Vincent Quint

Autres technologies XML. Plan. XML et la sécurité. Cryptage XML. Signatures XML. Vincent Quint Autres technologies XML Vincent Quint INRIA Rhône Alpes École d été CEA INRIA EDF juin 2003 Plan 1. XML et la sécurité 2. Liens hypertexte : XLink 3. Inclusions XML 4. Formulaires XML : XForms 5. Événements

Plus en détail

extensible Markup Language

extensible Markup Language LES TECHNOLOGIES DU WEB 1 ère Partie : au Web 1- à l'hypertexte 2- Présentation du protocole HTTP 3- de bases des CGI 4- Présentation du WEB2 (AJAX) 2 ème Partie : Présentation de HTML & XHTML 3 ème Partie

Plus en détail

SUPPORTS DE COURS SUR LE LANGAGE XML

SUPPORTS DE COURS SUR LE LANGAGE XML SUPPORTS DE COURS SUR LE LANGAGE XML 1 1 COURS D'INTRODUCTION A XML GENERALITES XML n'est pas un langage à proprement parler comme peut l'être HTML : XML est une famille de langages ayant en commun le

Plus en détail

Organisation d un document XSLT

Organisation d un document XSLT Les comportements serveur XSLT CHAPITRE 6 375 tion, et générera un document résultat pouvant être une page XHTML, ou tout type de format selon le média visé (XML, WML, texte, etc.). Voir figure 6-5-a.

Plus en détail

et son environnement Étude de cas : fiche BU (1)

et son environnement Étude de cas : fiche BU (1) et son environnement PARTIE 1/3 Présentation de la norme XML 1.0 Définition de Type de Document Introduction aux Schémas XML 1 Jérôme Lehuen - version du 15/09/13 Étude de cas : fiche BU (1) Exemple de

Plus en détail

WSIA? 6 cours de 3h 5 séances de TD/TP 3h. 1 séance de soutenance de 3h. Evaluation?

WSIA? 6 cours de 3h 5 séances de TD/TP 3h. 1 séance de soutenance de 3h. Evaluation? 2008-2009 Master 1 Info. Info 2 WSIA Cours 1 : Introduction à XML et aux DTD Jérôme Nobécourt jerome.nobecourt@gmail.com Sylvie Després sylvie.despres@lipn.univ-paris13.fr WSIA? 6 cours de 3h 5 séances

Plus en détail

Résumé XML XML. XPATH SVG Schema XSL. VoiceXML. Figure 1 : évolution des langages à balises

Résumé XML XML. XPATH SVG Schema XSL. VoiceXML. Figure 1 : évolution des langages à balises XML, extensible Markup Language 1-Origine de XML On trouve l origine des langages à balises dans la nécessité d échanger des informations dont la structure est trop complexe pour être simplement mise sous

Plus en détail

XML et arbre. Représentation d un document XML sous forme d arbre. Commençons par deux exemples... suivis des explications.

XML et arbre. Représentation d un document XML sous forme d arbre. Commençons par deux exemples... suivis des explications. XML et arbre Représentation d un document XML sous forme d arbre. Commençons par deux exemples... suivis des explications. Le texte de A Le texte de B

Plus en détail

XML - Semaine 6. XML - Semaine 6. Pierre Nerzic. février-mars 2016. 1 / 42 Pierre Nerzic

XML - Semaine 6. XML - Semaine 6. Pierre Nerzic. février-mars 2016. 1 / 42 Pierre Nerzic XML - Semaine 6 Pierre Nerzic février-mars 2016 1 / 42 Pierre Nerzic Le cours de cette semaine présente l API XML DOM permettant de produire et traiter un document XML : Principes, Création et modification

Plus en détail

XML-Bases. www.fenetresurtoile.com XHTML. Les bases. Jean-François Ramiara. INP-ENM 04/10/2012 Toulouse. Copyright J.F. Ramiara Tous droits réservés

XML-Bases. www.fenetresurtoile.com XHTML. Les bases. Jean-François Ramiara. INP-ENM 04/10/2012 Toulouse. Copyright J.F. Ramiara Tous droits réservés XHTML Les bases Jean-François Ramiara INP-ENM 04/10/2012 Toulouse 1 Généralités Jean-François Ramiara XML 2 jours Initiation à XML Contenu Cours Exercices Support PDF Horaires Tour de table 2 Sommaire

Plus en détail

Observons un site... Une entête. Le corps de la page. Un à-côté. Un pied de page

Observons un site... Une entête. Le corps de la page. Un à-côté. Un pied de page Créer une page web Observons un site... Une entête Le corps de la page Un à-côté Un pied de page Un logo Un menu Un autre menu Une entête La fenêtre de gauche La partie principale de la page Plusieurs

Plus en détail

Création de documents <XML/> avec XEmacs

Création de documents <XML/> avec XEmacs 1-Introduction Création de documents avec XEmacs Qu est-ce que XML? Equipe TICE Académie de Caen XML (extensible Markup Language, ou Langage Extensible de Balisage)est un langage de description

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

Introduction à XPath

Introduction à XPath Introduction à XPath Introduction à XPath xml-xpath Code: xml-xpath Originaux url: http://tecfa.unige.ch/guides/tie/html/xml-xpath/xml-xpath.html url: http://tecfa.unige.ch/guides/tie/pdf/files/xml-xpath.pdf

Plus en détail

par Philippe Poulard Présentation XML Philippe Poulard 1 Philippe.Poulard@inria.fr

par Philippe Poulard Présentation XML Philippe Poulard 1 Philippe.Poulard@inria.fr 1 Philippe.Poulard@inria.fr Philippe Poulard Mise en bouche Voici à quoi ressemble un document XML : Cours

Plus en détail

Arbres Mathématiques Informatique et Navigateurs Internet

Arbres Mathématiques Informatique et Navigateurs Internet Arbres Mathématiques Informatique et Navigateurs Internet Jacques Duma http://math.et.info.free.fr/ http://ateliermathematique.free.fr/ Arbres Expressions Mathématiques Structure arborescente de l expression

Plus en détail

DTD & XML Schema. Sébastien Laborie Sebastien.Laborie@iutbayonne.univ- pau.fr. Christian Sallaberry Christian.Sallaberry@univ- pau.

DTD & XML Schema. Sébastien Laborie Sebastien.Laborie@iutbayonne.univ- pau.fr. Christian Sallaberry Christian.Sallaberry@univ- pau. DTD & XML Schema Sébastien Laborie Sebastien.Laborie@iutbayonne.univ- pau.fr Christian Sallaberry Christian.Sallaberry@univ- pau.fr DTD Le rôle d une DTD (Document Type Definition) est de définir la structure

Plus en détail

XML XML. Example. Structure de document XML

XML XML. Example. Structure de document XML XML XML Wieslaw Zielonka extensible Markup Language C est un standard ouvert élaboré par World Wide Web Consortium (W3C). Les balises XML divisent le documents en plusieurs éléments. 1 er décembre 2012

Plus en détail

xaltarica documents Intégration du langage XML Java Data Bnding JAXB, XML spy

xaltarica documents Intégration du langage XML Java Data Bnding JAXB, XML spy Le monde XML xaltarica Christophe de Charentenay, ENSAE, Toulouse, octobre 2003 xaltarica consiste en une spécification du langage altarica en langage XML. Altarica rejoint alors le monde des langages

Plus en détail

T-GSI STAGE RENOVATION - HTML.Chapitre 6 - Le Langage XML

T-GSI STAGE RENOVATION - HTML.Chapitre 6 - Le Langage XML T-GSI STAGE RENOVATION - HTML.Chapitre 6 - Le Langage XML Sources du document : Introduction au XML, Simon St-Laurent, éditions Eyrolles, année 2000 ; XML en concentre (XML in a Nutshell) 3 ème édition,

Plus en détail

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des.

1/28 XML. I XML = extensible markup language. I Langage de description de documents (semi)-structurés, utilisant des. 1/28 2/28 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 XML I XML = extensible markup language I Langage de description de documents (semi-structurés, utilisant des balises

Plus en détail

Résumé DTD. A- Définir des éléments complexes ( = éléments possédant des éléments fils)

Résumé DTD. A- Définir des éléments complexes ( = éléments possédant des éléments fils) DTD, Document Type Definition 1-Utilité de la DTD La DTD permet la définition de la STRUCTURE d un type de documents. C est une forme de grammaire qui va servir à spécifier les noms des éléments et la

Plus en détail

Réalisation d'un site web. Première partie : Création des pages HTML. <tv>thierry.vaira@orange.fr</tv>

Réalisation d'un site web. Première partie : Création des pages HTML. <tv>thierry.vaira@orange.fr</tv> Réalisation d'un site web Première partie : Création des pages HTML 1 Objectifs Se familiariser avec le codage HTML Acquérir une pratique minimale Être capable de mener à bien la construction d'un site

Plus en détail

Rapport TP4. Nicolas LERMÉ nicolas.lerme@ig-edu.univ-paris13.fr. Dernière MAJ : 16 avril 2007 @ 22:58. Cours de Web Sémantique

Rapport TP4. Nicolas LERMÉ nicolas.lerme@ig-edu.univ-paris13.fr. Dernière MAJ : 16 avril 2007 @ 22:58. Cours de Web Sémantique Cours de Web Sémantique Nicolas LERMÉ nicolas.lerme@ig-edu.univ-paris13.fr Dernière MAJ : 16 avril 2007 @ 22:58 A propos de ce document Cet article est généré par LATEX, un outil de compilation open-source

Plus en détail

GESTION DES CONNAISSANCES RECHERCHE DOCUMENTAIRE

GESTION DES CONNAISSANCES RECHERCHE DOCUMENTAIRE L3 année 2007 2008 PROJET JAVA GESTION DES CONNAISSANCES RECHERCHE DOCUMENTAIRE Il s'agit d'écrire, de façon modulaire : un outil d'indexation des fichiers d'une arborescence donnée un outil d'export de

Plus en détail

TECHNOLOGIES XML, CONCEPTION, MISE EN OEUVRE

TECHNOLOGIES XML, CONCEPTION, MISE EN OEUVRE XML/ SOA/ Web services TECHNOLOGIES XML, CONCEPTION, MISE EN OEUVRE Réf: PXM Durée : 4 jours (7 heures) OBJECTIFS DE LA FORMATION XML est devenu une technologie incontournable tant sur le poste utilisateur

Plus en détail

Les feuilles de Style HTML : CSS

Les feuilles de Style HTML : CSS Les feuilles de Style HTML : CSS Tarek Melliti Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) tarek.melliti@ibisc.univ-evry.fr Plan du cours Séances 1 : Introduction à l informatique

Plus en détail

Les feuilles de styles

Les feuilles de styles Qu'est-ce que les feuilles de style? Les feuilles de style CSS pour Cascading Style Sheets en anglais est un langage informatique qui sert à décrire la présentation des documents HTML. L'un des objectifs

Plus en détail

Atelier Webmaster de site pédagogique: XML (Version 1.2)

Atelier Webmaster de site pédagogique: XML (Version 1.2) Programme - 1 Atelier Webmaster de site pédagogique: XML (Version 1.2) Attention: Il s'agit ici d'un fichier généré automatiquement depuis XML (procédure à perfectionner) Organisation: TECFA, Université

Plus en détail

Présentation de XQuery

Présentation de XQuery 97 Chapitre 5 Présentation de XQuery 1. Présentation de XQuery Présentation de XQuery XML Query (plus communément appelé XQuery) est une spécification du W3C. De nos jours, de nombreux documents sont au

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 1 / 87 Développement Web - XML, DOM, XHTML Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 2009 2 / 87 Plan Plan 1 Rappels SGML, XML, XSL 2 Grammaire et DTD

Plus en détail

XML : l ASCII de demain

XML : l ASCII de demain Carrefour de l information XML : l ASCII de demain Philippe Mabilleau ing. 3 octobre 2002 Le langage XML Historique : De l ASCII à XML XML : Le langage XML : La programmation XML : Les transformations

Plus en détail

XML & DTD. Aurélien Tabard, Université Lyon 1. Basé sur les cours de Yannick Prié. Aurélien Tabard - Université Claude Bernard Lyon 1

XML & DTD. Aurélien Tabard, Université Lyon 1. Basé sur les cours de Yannick Prié. Aurélien Tabard - Université Claude Bernard Lyon 1 XML & DTD Aurélien Tabard, Université Lyon 1 Basé sur les cours de Yannick Prié!1 Objectifs du cours Être capable de comprendre des documents XML et des DTD Être capable de construire des documents XML

Plus en détail

PHP 5. simplexml. A. Belaïd 1

PHP 5. simplexml. A. Belaïd 1 PHP 5 simplexml A. Belaïd 1 Introduction Dans les versions précédentes de PHP, il n y avait aucun outil permettant de manipuler simplement des fichiers XML Dans PHP 5, on trouve un mode, appelé, SimpleXML

Plus en détail

Transformations XML vers XML, HTML, XHTML, RTF et modification du contenu des documents

Transformations XML vers XML, HTML, XHTML, RTF et modification du contenu des documents 6 Transformations XML vers XML, HTML, XHTML, RTF et modification du contenu des documents Prenons l'exemple d'une entreprise dont le site d'e-commerce a été réalisé avec la solution XML Commerce One, qui

Plus en détail

96 Feuilles de style en cascade

96 Feuilles de style en cascade Microsoft Expression Web (version 2) 96 Feuilles de style en cascade Définir les styles Dans la création de pages Web valides, un principe fondamental apparaît : le contenu doit être séparé de sa présentation.

Plus en détail

STRUCTURE D UNE PAGE HTML/CSS

STRUCTURE D UNE PAGE HTML/CSS STRUCTURE D UNE PAGE HTML/CSS C01 1. STRUCTURE Le langage Html est composé de balises ou (tags) qui permettent de structurer le texte, de le mettre en forme et d insérer des images. Ces instructions sont

Plus en détail

Configuration du contrôles à distance de KDE. Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard

Configuration du contrôles à distance de KDE. Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard Configuration du contrôles à distance de KDE Michael Zanetti Traduction française : Robert Jacolin Traduction française : Pierre Buard 2 Table des matières 1 Introduction 5 1.1 Conditions préalables....................................

Plus en détail

Séances 4a/4b Technologies du Web

Séances 4a/4b Technologies du Web Formations en Informatique de Lille 2012/2013 Séances 4a/4b Technologies du Web février 2013 Javascript Exercice 1 : Préalable : mise en place des outils Pour ce premier exercice, nous allons utiliser

Plus en détail

XPATH XSLT. Objectif du cours. Plan. XPath. Exemples d utilisations. Localisation de documents XML XPATH XSLT

XPATH XSLT. Objectif du cours. Plan. XPath. Exemples d utilisations. Localisation de documents XML XPATH XSLT Objectif du cours XPATH XSLT Yannick Prié UFR Informatique Université Lyon 1 UE2.2 Master SIB M1 20042005 Xpath syntaxe permettant de désigner des informations dans un arbre XML sous la forme de chemins

Plus en détail

LE LANGAGE XML. I. Généralités. Historique

LE LANGAGE XML. I. Généralités. Historique I. Généralités Historique LE LANGAGE XML Année Langage Description 1950 Hypertexte Premiers développements théoriques par Ted Nelson. 1969 Generalized Markup Language Développement du GML par IBM. 1986

Plus en détail

Exercices et corrections. Licence QCI - module O21

Exercices et corrections. Licence QCI - module O21 Exercices et corrections Licence QCI - module O21 Exercice 1 Ecrivez le squelette d une page avec les caractéristiques suivantes - encodage : utf-8 - titre de la page : première page XHTML - auteur : vous

Plus en détail

II- Validation d'un document XML. Prof. M.D. RAHMANI Technologies XML Master IT 2013-2014 1

II- Validation d'un document XML. Prof. M.D. RAHMANI Technologies XML Master IT 2013-2014 1 II- Validation d'un document XML DTD (Document Type Definition) 1 Validation d'un document XML par une DTD Document XML valide Types de DTD (interne, externe) Déclarations d'éléments Déclaration d'attributs

Plus en détail

Technologie du Web. Structuration de documents (20h) HTML XML Création d application Web (20h) JavaScript PHP. A. Belaïd

Technologie du Web. Structuration de documents (20h) HTML XML Création d application Web (20h) JavaScript PHP. A. Belaïd Technologie du Web Structuration de documents (20h) HTML XML Création d application Web (20h) JavaScript PHP Objectif Créer une application Web Ce sera votre projet Agenda électronique avec carnet d adresses

Plus en détail

Langages à balises : une introduction

Langages à balises : une introduction Langages à balises : une introduction Yannick Prié UFR Informatique Université Lyon UE2.2 Master SIB M 2004-2005 Objectif généraux du cours Comprendre les grands principes de la représentation de données

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Systèmes de types Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 8 février 2007 1 / 20 Système de types Un type

Plus en détail

Tutoriel Le Web et la conception de sites

Tutoriel Le Web et la conception de sites Tutoriel Le Web et la conception de sites Éléments du Web Internet Internet est un réseau de plusieurs réseaux informatiques. L information stockée sur les ordinateurs devient accessible par les autres

Plus en détail

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

Systèmes d'informations historique et mutations

Systèmes d'informations historique et mutations Systèmes d'informations historique et mutations Christophe Turbout Centre de Ressources Technologiques pour les TIC Université de Caen 1 PLAN Système d information : État des lieux XML : Définition Exemples

Plus en détail

Introduction http:// www.mediaforma.com/formation-html5-et-css3

Introduction http:// www.mediaforma.com/formation-html5-et-css3 Introduction Ce livre est un concentré de code HTML5 et CSS3 prêt à l emploi 1. Il se divise en seize chapitres thématiques. Vous êtes un dévelop peur de niveau intermédiaire ou avancé? Vous y trouverez

Plus en détail

CRÉATION DES COMPTES UTILISATEURS

CRÉATION DES COMPTES UTILISATEURS Formation continue Projet tuteuré CRÉATION DES COMPTES UTILISATEURS MOD24 UVSQ SUJET Le contexte du projet est celui du lycée Paul Lapie relatif à l épreuve E4 de l examen du BTS SIO. Il s agit de l application

Plus en détail

Javascript : les bases du langage

Javascript : les bases du langage Javascript : les bases du langage Technologies du Web 1 Jean-Christophe Routier Licence 1 SESI Université Lille 1 Université Lille 1 - Licence 1 SESI Technologies du Web 1 1 Javascript présentation partielle,

Plus en détail

Introduction http://www.mediaforma.com/

Introduction http://www.mediaforma.com/ Ce livre est un concentré de code HTML5 et CSS3 prêt à l emploi 1. Il se divise en seize chapitres thématiques. Vous êtes un développeur de niveau intermédiaire ou avancé? Vous y trouverez de nombreux

Plus en détail

Exemples de DTD XML pour les interfaces homme-machine JMF

Exemples de DTD XML pour les interfaces homme-machine JMF Exemples de DTD XML pour les interfaces homme-machine 1 Introduction XML utilisé pour les IHM Plusieurs DTD : SMIL, SVG, X3D Evidemment du texte (XML) balisé 2 SMIL (pronounced "smile") 3 4 Présentation

Plus en détail

XML. Objectifs des trois cours. Un document XML. La DTD correspondante. Plan. Plan

XML. Objectifs des trois cours. Un document XML. La DTD correspondante. Plan. Plan Objectifs des trois cours XML Yannick Prié UFR Informatique Université Lyon 1 UE2.2 Master SIB M1 2004-2005 Etre capable de comprendre des documents XML et des DTD Etre capable de construire des documents

Plus en détail

Outils de développement XML

Outils de développement XML Université de Nice Sophia-Antipolis UFR de Sciences Travail d étude Licence Informatique Année 2002 / 2003 Outils de développement XML Antoine Perroud & Sylvain Petrucci Enseignant responsable : Fabrice

Plus en détail

Web & XML. Evaluation 2/2. ENSEIRB Programmation Web / XML. Version 1.00 du 6 janvier 2012 Etat : Travail SOPRA GROUP. Page 1/8

Web & XML. Evaluation 2/2. ENSEIRB Programmation Web / XML. Version 1.00 du 6 janvier 2012 Etat : Travail SOPRA GROUP. Page 1/8 Web & XML ENSEIRB Programmation Web / XML Evaluation 2/2 Version 1.00 du 6 janvier 2012 Etat : Travail SOPRA GROUP Page 1/8 Historique : Version Date Origine de la mise à jour Rédigée par Validée par 1.0

Plus en détail

Travaux pratiques de M2105 Web dynamique

Travaux pratiques de M2105 Web dynamique Travaux pratiques de M2105 Web dynamique L objectif des séances de TP du module M2105 est de créer un mini site web d annuaire permettant à différents utilisateurs de gérer leurs contacts. Les informations

Plus en détail