Académique Documents
Professionnel Documents
Culture Documents
2011-2012
Plan du cours
Gnralits XML XML Namespaces Documents Valides: DTD Documents Valides: XML Schemas XPATH XSL XQuery SAX, DOM XML pipelining: XProc RDF OWL
Le language XML
Pourquoi XML?
Commande, facture, bordereau de livraison, etc. Modle logique de donnes Elments typs agrgs (DTD, XML Schema) Passerelle avec Unified Modelling Language (UML)
Neutre du point de vue format Mise en forme avec des feuilles de style
Auto-description des archives
Un standard d'change
Lisible : texte balis avec marquage Clair : sparation du fond et de la forme Extensible : supporte les volutions applicatives Scuris : chiffrement, signature Pour le Web (Internet, Intranet) S'tend l'entreprise et ses partenaires IBM, Microsoft, Oracle, BEA, etc. Des outils gnriques et ouverts
XML est un langage de balisage pour reprsenter des documents et des donnes structurs Document structur
Le document est considr comme une structure logique, plutt qu'une structure de prsentation Information ajoute au contenu pour marquer la structure logique prcd d'une balise de dbut: <titre> suivi d'une balise de fin: </titre>
Balises
URI (Uniform Resource Identifiers) : Cest une chane qui identifie une ressource concrte ou abstraite.
Ca peut tre une URL: Uniform Resource Locator (concrte) Ca peut tre une URN: Uniform Resource Name (ressource abstraite, globalement unique)
Exemples
urn:issn:1535-3613 http://www.info.univ-angers.fr Les URL sont des URI qui permettent en plus de localiser (daccder) la ressource. ftp, mailto uuid:04b749bf-3bb2-4dba-934c-c92c56b709df Cration dun identificateur unique de faon totalement dcentralise : adresse MAC + alatoire. Tout le monde peut crer des URI et des nouveaux schmas dURI. Non, car il peut tre question de ressources qui ne sont pas disponibles ( localisables ) sur le web, mais un concept, ou mme qqe chose qui existe dans le monde rel (un chien, un livre)
urn:ISBN:1-85233-576-9
Une rfrence URI peut prendre la forme dune URI complte, ou juste une partie. Pour rsoudre une URI partir dune URI reference, la rfrence URI est convertie vers une forme absolue par la concatnation avec une URI de base absolue.
Dans HTML, lattribut src de llment img est une URI reference, ainsi que lattribut href dun lment de type lien.
Dans XML, lidentificateur system utilis aprs le mot-cl SYSTEM dans une DTD est une URI reference. Dans XSLT, la valeur de lattribut href de lelement/instruction xsl:import est une URI reference, ainsi que le premier argument de la fonction document().
Ressource
Unit ou service dinformation dsignable par un identificateur Elle peut exister en un ou plusieurs exemplaires Numrique ou non
Syntaxes et exemples
URI:
schema-name:schema-specific-part Ex:ftp://ftp.isi.edu/in-notes.txt
URN:
URN prefix:Namespace IDentifier part:Namespace Specific String Ex: urn:ISBN:1-85233-576-9
Entit
Objet physique
Document
uvre de lesprit qui peut exister en plusieurs exemplaires et sous de nombreuses formes
Les autres contenus sont des ressources externes (photos, vido, sons...) La prsentation est dcrite par des moyens complmentaires (CSS, XSL) La prsentation peut changer, indpendamment des contenus et de la structure
Un document XML est toujours compos de trois lments Un prologue (facultatif mais conseill)
<?xml version="1.0"?> <!DOCTYPE adresses ...> (utilis si le document doit tre valid) le contenu propre du document
Un arbre dlments
Eventuellement des commentaires (ne peuvent pas tre placs avant la dclaration XML)
Syntaxe Distinction des minuscules et des majuscules Caractres interdits ou dconseilles dans les noms de tags (& et $ et ; et , et + et space )
Un Petit Exemple
<?xml version="1.0"?>
<adresses> <personne id="muellerh"> <nom>Mller</nom> <prenom>Henning</prenom> <rue>Rue Micheli-du Crest</rue> ... </personne> ... </adresses>
Le Prologue
Une dclaration XML <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> Une dclaration de type de document indique le type de document auquel se conforme le document en question ( valider le document contre une DTD) <!DOCTYPE rapport SYSTEM "rapport.dtd"> Instructions de traitement: Format: <?target value?> //value -> plusieurs pseudo-attributes Une indication de traitement destine aux applications qui manipulent les documents Mcanisme pour passer des informations lapplication recevant les donnes xml
Processing Instructions
Un document XML peut contenir plusieurs processing instructions pour diffrentes applications Ne font pas partie du document XML (ignors par le parser, passs lapplications cliente):
Ne peut pas tre plac dans une section CDATA. <? xml-stylesheet type=text/xsl href=usage.xsl ?> Target : xml-stylesheet Value: type=text/xsl href=usage.xsl Nimporte quel nom peut tre utilis comme Target (sauf le mot reserv xml, Xml ou XML) Si lapplication nutilise pas ces PI, elles nauront aucun effet.
Un document XML est compos dlments Un lment se compose: Dune balise douverture: <balise> Un contenu (sous-arbre) Une balise de clture: </balise> A lexception des lment vides, un lment a toujours une balise douverture et de fermeture. Exemple <nom>contenu de llment</nom> nom =caractres alphanumriques ou _ ou - ou . rpts Si llment est vide il peut scrire uniquement avec la balise douverture avec un slash avant le chevron fermant Ex: <position/> Doivent commencer par une lettre ou _ Ne peuvent pas contenir des espaces ou des caractres de contrle (ex: & et $ et ; et , et + et space) Exemples permis: <html>, <id9832798472>,<_>, <>
Tout lment fils de larbre est compltement inclus dans son pre
Il existe un et un seul lment pre qui contient tous les autres : llment racine ou root
Exemple correct <annuaire> <personne> <nom>Pillou</nom> <prenom>Jean</prenom> </personne> <personne> <nom>VanHaute</nom> <prenom>Nicolas</prenom> </personne> </annuaire>
Exemple incorrect <personne> <nom>Pillou</nom> <prenom>Jean</prenom> </personne> <personne> <nom>VanHaute</nom> <prenom>Nicolas</prenom> </personne>
Attributs
<balise attribut="valeur"> contenu </balise> <personne name="Michard" prenom=Alain surnom="ptit Alain" /> <elem attr="Single: "/> <elem attr='Double :" />
Ne pas inclure le caractre: & (sauf dans valeur, et juste pour utiliser une entit prdfinie).
Que donnerait cet exemple : <elem attr="Single ' and Double ""/> Et celui-l: <li>Attribute using both kinds of quotes: <code><elem
attr="Single ' and Double ""/></code></li>
< pour le caractre < > pour le caractre > & pour le caractre & ' pour le caractre " pour le caractre " Utiliser &#n; ou n est un nombre (ASCII code)
Donnes
Constitues par un flot de caractres tous les caractres sont accepts sauf le caractre & et le caractre < Exemple : <auteurs>Victor Hugo<auteurs> Si lon souhaite insrer des caractres spciaux , il est prfrable dutiliser une section littrale ou CDATA <![CDATA[<aut&eurs>S. Fleury & al.</auteurs>]]> qui ne gnre aucune erreur et se traduit en : <aut&eurs>S. Fleury & al.</auteurs> au lieu de : <auteurs>S. Fleury & al.</auteurs> (bien sr sans le & aprs t) Utilise pour les blocs de texte ayant trop de <, > & ou " Exemple: Code source des langages de programmation
Exemple 1
<Restaurant Type="Franais" Categorie="***"> <Nom>Le Moulin de Mougin</Nom> <Manager ... >Dupuis</Manager> Franais <Adresse> @Type <No> 7</No> @Catgorie *** <Rue>Des Vignes</Rue> Le Moulin de Mougin Nom <Ville>Mougin</Ville> </Adresse> Restaurant Dupuis Manager </Restaurant>
7 Des Vignes
Mougin
Exemple 2
<?xml version="1.0" encoding="UTF-8"?> <element> <subelement attribute="value">Content</subelement> <subelement a2="value2">More Content</subelement> <empty-element a3="v3"></empty-element> <empty-element a4="v4" a5="v5"/> </element>
Le document XML est un arbre ayant diffrent type de nuds (pour le moment): document, element, attribute, text.
Contenu Mixed
Exemple: <p>The term <em>Mixed content</em> in XML refers to elements <a href="http://www.w3.org/TR/xml/#sec-mixed-content">which have text content mixed with elements</a>. What these elements do depends on the elements <img style="height : 1em" src="smiley.gif"/>, but the important point is that they are on the same level as the text nodes of the mixed content.</p>
Les partisans de lapproche Database trouvent le contenu mixed irritant. Ca ne peut pas tre facilement mapp des structures relationnelles est plutot orient document que donnes Plus difficile optimiser dans le cas de lanalyse et le traitement de requtes. Les partisans de lapproche Document trouvent le contenu mixed intressant Le contenu textuel peut toujours tre utilis en tant que texte simple. Le markup fournit des informations additionnelles et enrichit le texte Commencent par un document de type text-only et utilise le markup pour y ajouter de la structure.
Whitespace
Les documents XML sont souvent pretty-printed Les Whitespace text nodes ne reprsentent pas un vrai contenu.
Les caractres XML whitespace sont: space, tab, newline, et le carriage return Un whitespace text node est un text node contenant seulement des caractres whitespace
Whitespace Significatif
Quelques whitespace text nodes sont importants Normalement ceux utiliss dans des lments de type mixed content
Exemple complet
Les applications peuvent utiliser nimporte quel codage Les processors XML doivent supporter UTF-8 et UTF-16 Les processors XML peuvent supporter dautres codages additionnels
Les documents XML utilisent le codage Unicode qui dfinit plus que 100'000 caractres.
Conclusion
Les documents XML reprsentent des donnes structures par utilisation du markup. Elments et Attributs sont les mcanismes de structuration essentielles Elments et Attributs ont des noms, mais pas de smantique Pour utiliser XML avec succs, partager la smantique est essentiel Premire Tache -> Penser la smantique en vue de structurer linformation sous la forme dun fichier XML.