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

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 fbilhaut@info.unicaen.fr 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 ( 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=" </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=" 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=" <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=" <head> <title>exemple de document XML</title> </head> <body> <p>voir le graphique ci dessous :</p> <g xmlns=" <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=" xmlns: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=" xmlns: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 contextuel../@lang 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 para[@type='warning'] : les fils para du noeud courant qui ont un attribut type dont la valeur est "warning" ème para[@type='warning'][5] : le 5 fils para du noeud courant parmi ceux qui ont un attribut type dont la valeur est "warning" ème para[5][@type='warning'] : 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" employee[@secretary : 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 ( 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=" <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/

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

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

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition XML par la pratique Bases indispensables Concepts et cas pratiques 3 ième édition Nouvelle édition Thierry BOULANGER Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante

Plus en détail

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch Faculté de Génie Chaire industrielle en infrastructures de communication La technologie XML Wajdi Elleuch Octobre 2004 SOMMAIRE Content : - XML : Définition - XML : Solution pour des applications réparties

Plus en détail

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet anne.doucet@lip6.fr 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents

Plus en détail

XML : documents et outils

XML : documents et outils XML : documents et outils Pierre-Alain Reynier Université de Provence pierre-alain.reynier@lif.univ-mrs.fr http://www.lif.univ-mrs.fr/~preynier/xml Cours adapté du travail de Rémi Eyraud, Silvano Dal Zilio...

Plus en détail

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................

Plus en détail

Gestion Électronique de Documents et XML. Master 2 TSM

Gestion Électronique de Documents et XML. Master 2 TSM Gestion Électronique de Documents et XML Master 2 TSM I n t r o d u c t i o n Les formats de données F o r m a t s d e d o n n é e Format de donnée : manière de représenter des informations dans un document

Plus en détail

XML et Bases de données. Les bases de données XML natives.

XML et Bases de données. Les bases de données XML natives. XML et Bases de données. Les bases de données XML natives. Introduction. Une définition de l'expression «Base de données XML Native» : Une base de données XML native définit un modèle (logique) de document

Plus en détail

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech Autour du web Une introduction technique Première partie : HTML Georges-André SILBER Centre de recherche en informatique MINES ParisTech silber@cri.ensmp.fr http://www.cri.ensmp.fr/people/silber/cours/2010/web

Plus en détail

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

Gestion documentaire (Extraits du CCI version 1.2)

Gestion documentaire (Extraits du CCI version 1.2) Standard du gouvernement du Québec sur les ressources informationnelles PROJET Gestion documentaire (Extraits du CCI version 1.2) 12 juillet 2004 SGQRI 000[-00] Nom du [ : Nom de la partie] Projet, version

Plus en détail

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht. Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.fr 1 MVC et le web 27/05/14 2 L'évolution des systèmes informatiques

Plus en détail

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML XML : Extensible Markup Language SGML Une introduction (1) http://kiwi.emse.fr/3a/dn.html Ph. Jaillon / J.J. Girardot J.J. GIRARDOT - EMSE 10/2004 1 Standard Generalized Markup Language Norme ISO-8879

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité

Plus en détail

Programmation des Applications Réparties. Parsers XML DOM et SAX

Programmation des Applications Réparties. Parsers XML DOM et SAX Programmation des Applications Réparties Parsers XML DOM et SAX Luiz Angelo Steffenel luiz-angelo.steffenel@univ-reims.fr Steffenel Programmation des Applications Réparties Master M1-2007-2008 1 Comment

Plus en détail

Document Object Model (DOM)

Document Object Model (DOM) Document Object Model (DOM) Jean-Claude Charr Maître de conférences IUT de Belfort Montbéliard Université de Franche Comté Description générale Définit un standard pour accéder aux documents structurés

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Programmation Internet Cours 4

Programmation Internet Cours 4 Programmation Internet Cours 4 Kim Nguy ên http://www.lri.fr/~kn 17 octobre 2011 1 / 23 Plan 1. Système d exploitation 2. Réseau et Internet 3. Web 3.1 Internet et ses services 3.1 Fonctionnement du Web

Plus en détail

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Faculté Polytechnique de Mons Johnny TSHEKE SHELE Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML Travail de fin d études présenté en vue de l obtention du grade

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

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 SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail

Les services usuels de l Internet

Les services usuels de l Internet Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet Courrier électronique (mail) - protocole SMTP (Simple Mail Transfer Protocol) inclut maintenant tous types

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Gestion collaborative de documents

Gestion collaborative de documents Gestion collaborative de documents ANT box, le logiciel qui simplifie votre GED Les organisations (entreprises, collectivités, associations...) génèrent chaque jour des millions de documents, e-mails,

Plus en détail

Les outils de création de sites web

Les outils de création de sites web Tuto 1ère séance - p1 Les outils de création de sites web Sources : Réalisez votre site web avec HTML5 et CSS3 de Mathieu Nebra (Edition Le Livre du Zéro) site fr.openclassrooms.com (anciennement «site

Plus en détail

Outils logiciels pour l'ingénierie documentaire

Outils logiciels pour l'ingénierie documentaire Ingénierie Documentaire Outils logiciels pour l'ingénierie documentaire http://doc.crzt.fr STÉPHANE CROZAT 16 octobre 2014 Table des matières I - L'IDE XML Oxygen 5 A. Fichiers XML...5 B. Schémas XML...6

Plus en détail

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP IFT1147 Programmation Serveur Web avec PHP Un bref survol du langage HTML HMTL HTML: Hypertext Markup Language HTML est essentiellement un langage de description de structure de document (par exemple titre,

Plus en détail

SII Stage d informatique pour l ingénieur

SII Stage d informatique pour l ingénieur SII Stage d informatique pour l ingénieur Création d un site Web École nationale supérieure de techniques avancées SII Stage d informatique pour l ingénieur 1 / 15 L informatique et le temps qui passe...

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

L'essentiel de XML. Cours XML. Olivier Carton

L'essentiel de XML. Cours XML. Olivier Carton L'essentiel de XML Cours XML Olivier Carton L'essentiel de XML: Cours XML Olivier Carton Version du 18/12/2014 Copyright 2007-2014 Olivier Carton Résumé Support du cours XML en M2 Pro à l'université Paris

Plus en détail

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année

Plus en détail

Master d Informatique Corrigé du partiel novembre 2010

Master d Informatique Corrigé du partiel novembre 2010 Universités d Aix-Marseille I & II Technologies XML Master d Informatique Corrigé du partiel novembre 2010 Année 2010-11 Documents autorisés Exercice 1 : Documents XML et Applications XML (4 points) Georges,

Plus en détail

Auguria_PCM Product & Combination Manager

Auguria_PCM Product & Combination Manager Auguria_PCM Product & Combination Manager Guide utilisateurs v1.5 Auguria 9, rue Alfred Kastler 44300 NANTES FRANCE +33251135012 contact@auguria.net Plan 1 Description générale du module...3 2 Mise en

Plus en détail

! Text Encoding Initiative

! Text Encoding Initiative Format XML: suite! le contenu d un élément est la concaténation de! texte! et d éléments (imbrication)! => structure arborescente! pas de chevauchement de balises! => exemple : une analyse syntagmatique

Plus en détail

PROSOP : un système de gestion de bases de données prosopographiques

PROSOP : un système de gestion de bases de données prosopographiques PROSOP : un système de gestion de bases de données prosopographiques Introduction : Ce document présente l outil en développement PROSOP qui permet la gestion d'une base de donnée prosopographique de la

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall Internet DNS World Wide Web Mécanismes de base Exécution d'applications sur le web Divers Proxy, fire-wall 1 Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet

Plus en détail

Fichiers, dossiers, enregistrer et arborescence

Fichiers, dossiers, enregistrer et arborescence Fichiers, dossiers, enregistrer et arborescence La notion de fichiers Dans les années 1960, les supports magnétiques (disques durs, disquettes,...) étaient encore très chers. D'autres méthodes ont été

Plus en détail

Formation HTML / CSS. ar dionoea

Formation HTML / CSS. ar dionoea Formation HTML / CSS ar dionoea le HTML Hyper Text Markup Language langage descriptif composé de balises interprété par le navigateur page HTML = simple fichier texte (bloc notes, vim,...) les déclarations

Plus en détail

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99 XML XML et DOM Matériel de cours mars 1999 version 0.3 dernière modification: 24/3/99 http://tecfa.unige.ch/guides/xml/slides/xml.html - (moche!) http://tecfa.unige.ch/guides/xml/slides/xml.pdf - (lecture

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Travaux pratiques avec RapidMiner

Travaux pratiques avec RapidMiner Travaux pratiques avec RapidMiner Master Informatique de Paris 6 Spécialité IAD Parcours EDOW Module Algorithmes pour la Fouille de Données Janvier 2012 Prise en main Généralités RapidMiner est un logiciel

Plus en détail

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING Durée : 3J / 21H Formateur : Consultant expert en PAO et Web-marketing. Groupe de : 4 max Formation au web marketing Objectifs : Mettre en oeuvre des

Plus en détail

Créer une base de données vidéo sans programmation (avec Drupal)

Créer une base de données vidéo sans programmation (avec Drupal) Créer une base de données vidéo sans programmation (avec Drupal) 10.10.2013 Nicolas Bugnon (nicolas.bugnon@alliancesud.ch) Centre de documentation Alliance Sud www.alliancesud.ch Résultat de l atelier

Plus en détail

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control HMI target Visu / PLC HMI Pour réaliser une interface homme machine avec PLC control VERSION : 1.4 / PH DATE : 5 Novembre 2014 Sommaire Ce manuel explique de manière pratique les étapes successives pour

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15 .. CSS Damien Nouvel Damien Nouvel (Inalco) CSS 1 / 15 Feuilles de styles Plan 1. Feuilles de styles 2. Sélecteurs 3. Attributs Damien Nouvel (Inalco) CSS 2 / 15 Feuilles de styles Déportation des styles

Plus en détail

L architecture des services Web

L architecture des services Web Chapitre 1 L architecture des services Web La combinaison des canons esthétiques et idéaux politiques, reflets de leur époque, et de la généralisation de nouveaux matériaux préside souvent au développement

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail

Initiation à html et à la création d'un site web

Initiation à html et à la création d'un site web Initiation à html et à la création d'un site web Introduction : Concevoir un site web consiste à définir : - l'emplacement où ce site sera hébergé - à qui ce site s'adresse - le design des pages qui le

Plus en détail

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL . THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL Mr MEZRED MOHAMED Ingénieur météorologue INTRODUCTION Il existe de nombreuses manières de construire une base de données. En effet,

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Petite définition : Présentation :

Petite définition : Présentation : Petite définition : Le Web 2.0 est une technologie qui permet la création de réseaux sociaux, de communautés, via divers produits (des sites communautaires, des blogs, des forums, des wiki ), qui vise

Plus en détail

Créer une base de données

Créer une base de données Access Créer une base de données SOMMAIRE Généralités sur les bases de données... 3 Création de la base de données... 4 A) Lancement d'access... 4 B) Enregistrement de la base de données vide... 4 Création

Plus en détail

Notes pour l utilisation d Expression Web

Notes pour l utilisation d Expression Web EICW Formation Webmaster Notes pour l utilisation d Expression Web G. Barmarin 2008-2009 1 /21 Table des matières 1 Introduction... 3 2 Installer Expression Web... 4 3 Explorer et personnaliser l interface

Plus en détail

7.0 Guide de la solution Portable sans fil

7.0 Guide de la solution Portable sans fil 7.0 Guide de la solution Portable sans fil Copyright 2010 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

HTML, CSS, JS et CGI. Elanore Elessar Dimar

HTML, CSS, JS et CGI. Elanore Elessar Dimar HTML, CSS, JS et CGI Elanore Elessar Dimar Viamen GPAs Formation, 13 avril 2006 Sommaire Qu est-ce que HTML? HTML : HyperText Marckup Language XML : extensible Marckup Language Qu est-ce que HTML? HTML

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Formation Webmaster : Création de site Web Initiation + Approfondissement

Formation Webmaster : Création de site Web Initiation + Approfondissement Contactez notre équipe commerciale au 09.72.37.73.73 Aix en Provence - Bordeaux - Bruxelles - Geneve - Lille - Luxembourg - Lyon - Montpellier - Nantes - Nice - Paris - Rennes - Strasbourg - Toulouse Formation

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte» Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte» Espace collaboratif Co-Ment Date : 01/12/2013 Référence du Projet : Chef de Projet : www.cndp.fr/climatscolaire Caroline

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail

4D v11 SQL BREAKING THE LIMITS * Les nouveautés

4D v11 SQL BREAKING THE LIMITS * Les nouveautés BREAKING THE LIMITS * *Dépasser les limites 4D v11 SQL Les nouveautés SQL natif intégré Nouveau moteur de base de données ultra-performant Productivité de développement inégalée Architecture Universal

Plus en détail

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Cloud. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Cloud Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense, QlikView,

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous : BASE BioArray Software Environment (BASE) est une base de données permettant de gérer l importante quantité de données générées par des analyses de bio-puces. BASE gère les informations biologiques, les

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Tutoriel QSOS. Version 2.0-13/02/2013

Tutoriel QSOS. Version 2.0-13/02/2013 Version 2.0-13/02/2013 1 Table des matières 1 Note de licence 4 2 Historique des modifications 4 3 Introduction 4 4 Gérer les templates 4 4.1 Généralités sur les templates.................... 4 4.2 Créer

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Introduction à Microsoft InfoPath 2010

Introduction à Microsoft InfoPath 2010 Introduction à Microsoft InfoPath 2010 Couplé à Microsoft SharePoint Designer 2010, InfoPath 2010 simplifie la création de solutions de bout en bout sur SharePoint Server 2010, qui contiennent des formulaires

Plus en détail

Learning Object Metadata

Learning Object Metadata Page 1 of 7 Learning Object Metadata Le LOM (Learning Object Metadata), est un schéma de description de ressources d enseignement et d apprentissage. Le LOM peut être utilisé pour décrire des ressources

Plus en détail

Note de cours. Introduction à Excel 2007

Note de cours. Introduction à Excel 2007 Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Configuration Interface for MEssage ROuting

Configuration Interface for MEssage ROuting Configuration Interface for MEssage ROuting Cahier des Charges Date : 05/04/07 Version : 1.1 Statut : diffusable Auteurs : BAGNARD Natacha FOROT Julien 1/16 Table des révisions Version Date Modifications

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

NFE204 Bases de données avancées

NFE204 Bases de données avancées NFE204 Bases de données avancées Bases de données documentaires et NOSQL Philippe Rigaux, Nicolas Travers Conservatoire National des Arts et Métiers October 8, 2013 WebDam (CNAM) NFE204 Bases de données

Plus en détail

Outils de traitements de logs Apache

Outils de traitements de logs Apache Outils de traitements de logs Apache 1) Anonymisation des logs 2) Outil visuel d'exploration des données 3) Adaptation d'un robot 1 Anonymisation des logs Objectifs : Anonymiser les logs du point de vue

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des

Plus en détail

BD et XML : Exercices

BD et XML : Exercices BD et XML : Exercices 1 Stockage XML Voici un arbre XML : A B E C F C F C F D C C D D D 1.1 Stockage générique Exercice 1.1.1 : Définissez un schéma de stockage relationnel générique (sans prendre en compte

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

Plus en détail

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Déployer les Fonts, Icones, et Images avec Forms Services 11G Déployer les Fonts, Icones, et Images avec Forms Services 11G 1. Le fichier Registry.dat Le fichier Registry.dat permet de gérer les correspondances de font entre celles utilisées pour le développement

Plus en détail