90
Langage de structuration des données: XML Adrien Vieilleribière [email protected] 2010.05.21

Langage de structuration des données: XML Adrien Vieilleribière [email protected] 2010.05.21

Embed Size (px)

Citation preview

  • Page 1
  • Langage de structuration des donnes: XML Adrien Vieilleribire [email protected] 2010.05.21
  • Page 2
  • Quest-ce que XML? eXtended Markup Language Langage universel dchange de donnes Mta-langage
  • Page 3
  • Plan I)Introduction Historique Objectifs Document XML II)Langages darbres DTD XML Schma XML III) Requtes et manipulation Xpath XSL, XSLT DOM, SAX IV)Applications
  • Page 4
  • 1998 eXtensible Markup Language W3C Historique 1974 1986 Standard Generalized Markup Language Norme ANSI et ISO 8879 1990 HyperText Markup Language CERN-W3C 2000 eXtensible HyperText Markup Language W3C
  • Page 5
  • Introduction : Plan Historique SGML HTML XML Pourquoi ? Documents bien forms Syntaxe
  • Page 6
  • SGML Indpendance Conformit Problmes Trop complexe pour la ralisation des navigateurs Structure de documents Reprsentation physique Mise en page Visualisation Indpendant
  • Page 7
  • HTML : HyperText Markup Language Jeu fini de balises destin dcrire des pages WEB dans une optique de prsentation Proprits Langage simple, facile crire Mise en uvre rapide Permet la navigation au travers des pages dinformation via les liens Intgration de mdias (image fige, images animes, fichier audio)
  • Page 8
  • Applications HTML portables sur tous les Environnements Station Unix Station Linux Ordinateur portable Serveur Web donnes Internet Quelque soit le type de demandeur de la page web, le serveur web lui renvoie une page web au format HTML
  • Page 9
  • HTML : HyperText Markup Language Structure gnrale dun document html section des informations non affichables indique le titre non affichable du document Indique la section des informations affichables
  • Page 10
  • HTML: Exemple
  • Page 11
  • Limites du HTML Pages statiques et ninteragissant pas avec lutilisateur => DHTML Dynamic HTML portion de code en script sexcutant dans le navigateur WEB Script client NON portable Ensemble prdfini de balises avec attributs prdfinis Description physique et structurelle mle
  • Page 12
  • XML: Un standard Consortium W3C (World Wide Web Consortium) Socits impliques dans la technologie WEB + diteurs de logiciels Socits respectant XML : Netscape, IBM, Sun MicroSystem, Oracle, Microsoft, Hewlett Packard, Adobe System, etc (XML) 1.0 (Fifth Edition) 1996Premire version de XML (Sous ensemble de SGML) 1998projet XML est devenu un standard (XML) 1.0(First Edition) 2006XML 1.1 (Second Edition) 2008XML 1.0 (Fifth Edition)
  • Page 13
  • XML: Objectifs Crer une technologie universelle pour structurer linformation Adapt la diffusion et lchange dinformation Langage extensible dexpressions standardises Indpendant des plates-formes, et des systmes dexploitation Sparation du fond et de la forme
  • Page 14
  • XML et HTML XML repose sur lutilisation et la cration des balises Gaston Lagaffe Date de naissance: 30/03/1976 Adresse: Journal Spirou 355 Paris Cedex 75116 France Taille:180 Poids : 70 Reprsentation dun auteur en HTML et XML ?
  • Page 15
  • XML et HTML adresse Gaston Gaston Lagaffe date de naissance 30/03/1976 adresse Journal Spirou bp 355 F-75116 Paris Cedex taille : 180 70 kg : XML cre librement des balises pour marquer les lments Gaston Lagaffe 30/03/1976 Journal Spirou 355 Paris Cedex 75116 180 70
  • Page 16
  • XML : Les donnes Informations -> structure arborescente auto descriptive Deux lments Structure des donnes Donnes auteur compagnie taillepoidsadresse Boite-postale ville Code_postal pays naissance
  • Page 17
  • HTML: Description physique et structurelle mle HTML Balises physiques : reprsentation fixe quel que soit loutil de gnration de document h1, h2..h6 center b i small Balise logique : signification sur le nature de leur contenu mais leur reprsentation dpend de loutil de gnration title, dl, blockquote XML Balises structurelles et logiques : Reprsentation dpend de leur feuille de style associe
  • Page 18
  • Document XML : syntaxe (1/3) Arbre dlments (balise de fin obligatoire) Element vide
  • Page 19
  • Document XML : syntaxe (2/3) Contenu une donne textuelle Attributs et valeurs Sensibilit la casse incorrect!
  • Page 20
  • Document XML : syntaxe (3/3) Section CDATA Commentaires Caractres Jeu de caractres international UNICODE Exemple dencodage UTF-8 ou UTF-16
  • Page 21
  • eXtensible HyperText Markup Language Le XHTML est un langage identique au langage HTML mais respectant la syntaxe dfinie par XML. HTML5 Vocabulaire et API associes pour HTML et XHTML http://www.w3.org/TR/html5/Evolutions
  • Page 22
  • II) Langages darbres : plan Validit DTD Syntaxe Entits Schma XML
  • Page 23
  • Document XML valide Conforme une DTD (Document Type Definition) un schma XML un schma REALAX NG dfinissent un type de structure Une DTD XML est associe une DTD SGML conforme Passerelles existantes entre formalismes (Trang, XSD to RelaxNG, NekoDTD)
  • Page 24
  • DTD & Schmas : Avantages Validit assure Intgration facilite Aide la rdaction Normalisation
  • Page 25
  • XML valide Gaston Lagaffe
  • Page 26
  • XML valide incluant une DTD Gaston Lagaffe
  • Page 27 Gaston Lagaffe"> Gaston Lagaffe"> Gaston Lagaffe" title="XML valide pour une dtd (prive) distante Gaston Lagaffe">
  • XML valide pour une dtd (prive) distante Gaston Lagaffe
  • Page 28 Gaston Lagaffe Premier argument : Informatif Par convention identifiant:proprietaire//description//langue">
  • XML valide pour une dtd publique Gaston Lagaffe Premier argument : Informatif Par convention identifiant:proprietaire//description//langue
  • Page 29
  • DTD : Rgles de nommage des identifiants Au moins une lettre : a z ou A Z Peut commencer par _ ou : La 1re lettre peut tre suivie par une ou plusieurs lettres, chiffres, tirets, underscores, points, et l'ensemble des caractres Unicode. http://www.w3.org/XML/REC-xml Pas d'espaces ni de tabulations Seuls signes de ponctuation autoriss : tiret et point
  • Page 30
  • DTD : Dclaration dlments Contenu vide Contenu quelconque Contenu sous-lments Contient des lments Utilisation dexpression rgulire Contenu mixte
  • Page 31
  • DTD : Expressions rgulires Squence, Choix| 0 N* 1 N+ 0 1?
  • Page 32
  • DTD : Dclaration dattributs Syntaxe Type reprsente le type de donne de l'attribut : littral: il permet d'affecter une chane de caractres un attribut. l'numration: permet de dfinir une liste de valeurs possibles pour un attribut donn, afin de limiter le choix de l'utilisateur. Pour dfinir une valeur par dfaut il suffit de faire suivre l'numration par la valeur dsire entre guillemets :
  • Page 33
  • DTD : Dclaration dattributs Syntaxe atomique: il permet de dfinir un identifiant unique pour chaque lment grce au mot cl ID. IDREF, IDREFS : type prdfini pour lister la ou les rfrences associes un document
  • Page 34
  • DTD : Dclaration dattributs Chacun de ces types d'attributs peut tre suivi d'un mot cl particulier permettant de spcifier le niveau de ncessit de l'attribut : #IMPLIED signifie que l'attribut est optionnel, c'est-- dire non obligatoire #REQUIRED signifie que l'attribut est obligatoire #FIXED signifie que l'attribut sera affect d'une valeur par dfaut s'il n'est pas dfini. Il doit tre immdiatement suivi de la valeur entre guillemets Ainsi on pourra avoir une dclaration d'attribut du type
  • Page 35
  • DTD : Dclaration dentits Entit gnrale interne (appel dentit dans le document &titre; ) Entit paramtre (uniquement dans la DTD) : interne externe gnrale externe
  • Page 36
  • DTD : exemple dentits Entit gnrale rfrences Entit paramtre cd3.dtd
  • Page 37 Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entit locale rfrence"> Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entit locale rfrence"> Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entit locale rfrence" title="Exemple dentits (2) Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entit locale rfrence">
  • Exemple dentits (2) Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entit locale rfrence
  • Page 38
  • XML NameSpaces Collection didentificateurs (lment ou attribut) Identifi par un prfixe et une URI Dclaration Exemple Le premier namespace (html) est celui par dfaut.
  • Page 39
  • Schmas XML Recommandation du W3C (mai 2001) Types de donnes prdfinis ou dfinis par lutilisateur Supporte espace de noms, XPath Contraintes sur les lments et attributs Contrle sur les occurrences Hritage et extension Restriction sur des patterns
  • Page 40 ">
  • Schma XML : exemple
  • Page 41
  • Schma XML : exemple (suite)
  • Page 42 Mon titre toto@titi ESSAI A1 A2...">
  • Rfrencer un schma : exemple Mon titre toto@titi ESSAI A1 A2...
  • Page 43 Corto Maltese">
  • Rfrencer un schma Adresse.xml Corto Maltese Adresse-schema.xsd Adresse.xml avec la rfrence au schma Corto Maltese
  • Page 44
  • Schmas XML : Types simples anyURI base64Binary boolean byte (valeur entre -128 et 127) dateTime (date+heure), duration(en anne, mois) types dattributs XML.0 (ID, IDREF,) integer language name (nom XML) string (chane UNICODE), normalizeString (+fin de ligne) token (pas despace avant et aprs)
  • Page 45
  • Schmas XML : Attributs Pour rajouter des attributs cet lment : type complexe
  • Page 46
  • Schmas XML : Goupes d'attributs
  • Page 47
  • Schmas XML : sequence, choice
  • Page 48
  • Schmas XML : all chaque lment enfant peut apparatre 0 ou 1 fois (quivalent de ? dans une DTD) ordre des lments indiffrent
  • Page 49
  • Schmas XML : Indicateurs d'occurrence
  • Page 50
  • Les Schmas XML permettent Les imports De dfinir de nouveaux types simples La cration de type complexe partir de type simple La restriction (par facettes, unicit) La cration de type par drivation, de groupe de substitution
  • Page 51
  • Schmas XML : Pour approfondir http://www.w3.org/XML/Schema
  • Page 52
  • Page 53
  • III) Requtes et manipulation 1) XPATH 2) XSLT 3) DOM et SAX 4) Et aussi XLink, XPointer, XQuery, XQL
  • Page 54
  • 1) Xpath Un langage utilis par XSLT pour localiser des lments et/ou attributs dans un document XML http://www.w3.org/TR/xpath
  • Page 55
  • XPath XPath est un langage non-XML dexpression utilis pour Identifier des parties (chemin de localisation) de documents XML Tester des conditions boolennes Manipuler les chanes de caractres Effectuer des calculs numriques. Communment utilis dans les attributs match et select des lments XSLT :
  • Page 56
  • Chemin de localisation Les chemins de localisation sont interprts par rapport un contexte Ou plus simplement le nud de l'arbre partir duquel l'expression est value. L'valuation de l'expression dfinit l'ensemble des nuds qui correspondent la condition Cela peut tre l'ensemble vide s'il n'y a pas de correspondance Un chemin de localisation consiste en une suite de localisation spare par / ou // Un chemin peut tre relatif ou absolu.
  • Page 57
  • Chemins de localisation simples Le nud racine Le slash / dnote le nud racine L'ensemble des nuds enfants Le joker * permet de slectionner l'ensemble des lments nuds du contexte courant
  • Page 58
  • Slection d'un lment Le point (.) indique le nud courant Le double point (..) indique le parent du nud courant
  • Page 59
  • Autres Axes de selection
  • Page 60
  • Composition de chemins Utiliser / pour sparer des lments hirarchiques Utiliser // pour indiquer qu'un ou plusieurs lments peuvent exister entre les slashs
  • Page 61
  • Filtres Utiliser [] comme prdicat pour slectionner un contexte de nud particulier. Le prdicat est valu comme une expression boolenne. Si le rsultat est vrai, le nud est slectionn.
  • Page 62
  • Filtre par attributs Utiliser le signe @ suivi d'un nom d'attribut pour slectionner un nud particulier
  • Page 63
  • Oprateurs logiques Utilisation des oprateurs de comparaison >
  • Structure d'une feuille XSLT Prologue http://www.w3.org/1999/XSLT/Transform Corps : suite de rgles (templates) de transformation Epilogue :
  • Page 68
  • Template XSLT Chaque rgle (template) possde deux parties: Un motif (XPath) qui identifie le/les noeud(s) XML du document qui est/sont concern(s) par la rgle et sur le(s) quel(s) il faut appliquer une action Une action qui effectue la transformation et/ou spcifie les caractristiques de la prsentation [action]
  • Page 69
  • Template XSLT : exemple
  • Page 70
  • Pseudo lment racine 70 Le processeur XSLT considre que l'lment de plus haut niveau du document XML a un parent dsign par "/"
  • Page 71
  • Templates Cause le traitement successif de chacun des nuds enfants de l'lment courant par le template appropri L'ordre des enfants est respect Extrait une chane de caractre du document, habituellement dans l'lment courant select="." retourne la valeur textuelle de l'lment courant select="@attrib" retourne la valeur d'un attribut de l'lment courant.
  • Page 72 Paul Pierre">
  • Production de texte On gnre un nud texte dynamiquement dans l'arbre rsultant avec l'instruction select : expression XPath de type chane qui produit la valeur du nud texte Paul Pierre
  • Page 73
  • Apply templates Fait traiter certains enfants spcifiques (rpondant au critre de slection). Cas simple : expression=identifiant lment. Permet de faire un "rarrangement" des sous lments
  • Page 74
  • Autres Commandes XSLT, dfinir un traitement itratif, dfinir un traitement conditionnel, dfinir un choix,, Dclarer et appeler des fonctions avec paramtres, gnrer un lment, gnrer un attribut, permet de trier
  • Page 75
  • Condition(s) de branchement Linstruction xsl:if permet d'excuter ou non certaines parties du code Le spcialiste XML L'instruction xsl:choose permet d'excuter diffrents code selon des conditions Le spcialiste XML L'infographiste Un inconnu
  • Page 76 ">
  • Tri Instruction xsl:sort
  • Page 77
  • Variable globale Nom : nom de la variable Expression : valeur calcule de la variable Pour utiliser la variable dans la partie expression d'un template, la prcder d'un $
  • Page 78
  • Exemple Xml (1/3) Alan Turing informaticien cryptographe Gaston Lagaffe archiviste
  • Page 79
  • Exemple Xslt (2/3) Liste de personne
  • Page 80
  • Exemple Rsultat (3/3) Liste de personne Alan Turing 1912 1954 Gaston Lagaffe 1957
  • Page 81
  • 3) DOM et SAX Modles de traitement Modle vnementiel (Event-based model) Standard de facto : SAX (Simple API for XML) (http://www.saxproject.org)http://www.saxproject.org Modle arborescent (Tree-based model) W3C standard : DOM (Document Object Model) (http://www.w3.org/DOM)http://www.w3.org/DOM Les processeurs SAX et DOM existent pour presque tous les langages de programmation: Java, C, C++, Perl, TCL Tk, VB, Prolog,
  • Page 82
  • SAX : Modle vnementiel [email protected] Start of Document End of Document Start of Element End of Element Text Element vnements
  • Page 83
  • Arbre DOM DOC A BC B1B2 Text 1Text 2 Text 3 Parent Sibling Child Node Document Element Text
  • Page 84
  • Comparaison SAX et DOM Avantages SAX le traitement du document par le programme se fait en cours danalyse (efficacit) seuls les lments pertinents sont traits Inconvnients SAX criture plus complexe des fonctions de callback pour traiter des structures imbriques Inconvnients DOM construction d un arbre en mmoire multitude de petits objets (efficacit des new et du GC en Java) trs grand documents tous les lments sont reprsents le traitement du document par le programme se fait aprs lanalyse Avantages DOM navigation dans un arbre dlments
  • Page 85
  • IV)Applications Exemple Parseurs et interfaces de programmation Langages de reprsentation Langages de programmation Protocoles d'changes
  • Page 86
  • XML XSLT xml InDesign InDesign xhtml site web reader debook tl phone xslfo/pdf Epub, mobipocket Txt/mp3 Tout support de lecture mp3 Xslfo/pdf Papier ou pdf ebook microsite Source Moteur de transformation Format cible Support cible XML TEI/Docbook Entre systmes informatiques LIGARAN 2010
  • Page 87
  • Parseurs et interfaces de programmation (API) MSXMLMSXML - Microsoft Core XML Services, le parseur XML Microsoft, 2000- 2006, intgr au systme d'exploitation Windows, accessible aux langagesMicrosoftsystme d'exploitationWindows MicrosoftMicrosoft, notamment en JavaScript sur le navigateur Internet Explorer.JavaScriptInternet Explorer libxml2libxml2 - Le processeur XML libre du systme d'exploitation linux, accessible en C, Python, PHP, et en Rubysystme d'exploitationlinuxCPythonPHPRuby XercesXerces - XML Java Parser, le parseur XML par dfaut d'une machine virtuelle Java, accessible en JavaJavamachine virtuelle Java ExpatExpat - Le parseur XML de James Clark, notamment embarqu par les navigateurs mozilla (firefox).James Clarkmozillafirefox VTD-XML
  • Page 88
  • Langages de reprsentation OpenDocumentOpenDocument - tous les documents bureautiques, OpenOffice.org, 2001.OpenOffice.org WordWord - le format natif de Microsoft Word est en XML depuis sa version 2003.Microsoft Word XSL-FOXSL-FO - eXtensible Stylesheet Language - Formatting Objects, langage extensible de stylage - formatage d'objets, W3C, 2001.W3C SVGSVG - Scalable Vector Graphics, graphiques vectoriels 2D, W3C, 2003.W3C MathMLMathML - formules mathmatiques, W3C, 1999, 2001, 2003.W3C SMILSMIL - Synchronized Multimedia Integration Language, Intgration multimdia, W3C, 1998, 2005. W3C X3DX3D - 3D multimdia, consortium Web3D.de documents XML ct serveur.consortium Web3D
  • Page 89
  • Langages de programmation XQueryXQuery - requte et transformation XML, W3C, 2005.W3C MXMLMXML, Flex - dfinition d'interface, Macromedia.FlexMacromedia Apache XSP - eXtensible Server Pages - gnration de documents XML ct serveur. XULXUL - XML-based User interface Language, dfinition d'interface, Mozilla, 2000. Mozilla ANTANT - scripts de compilation, ASF.ASF ServletServlet - serveur d'application Java, configuration et logique fonctionnelle, Sun Microsystems.JavaSun Microsystems Log4jLog4j - log for Java, configuration d'une bibliothque d'historique, 1996, 1999-2006, ASF.logJavaASF UIMLUIML - User Interface Markup Language, dfinition d'interface, OASIS, 1997.interfaceOASIS XAMLXAML - dfinition d'interface, Windows Vista, 2006.Windows Vista
  • Page 90
  • Protocoles d'changes XFormsXForms - formulaires web (W3C)W3C OAIOAI - Open Archive Initiative Protocole Archives ouvertes, 2000, 2002 (OAI) SOAPSOAP - RPC par HTTP (W3C)RPCHTTPW3C WSDLWSDL - Services web (W3C)W3C WebDAVWebDAV - Lecture/criture distante par HTTP (IETF)HTTPIETF JabberJabber/XMPP - Messagerie instantane et prsence, multimdia (IETF)XMPPIETF