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 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
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