Introduction à XML
Transcription
Introduction à XML
Introduction à XML - Slide list Introduction à XML Vincent Quint Sommaire ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Introduction à XML XML, langage de balisage Exemple de balisage XML Origines de XML Objectifs initiaux de XML XML aujourd'hui Structure, contenu et présentation Structure et éléments Exemple de structure XML Quelques applications de XML Pages Web : XHTML Mathématiques : MathML Graphique vectoriel : SVG Multimédia synchronisé : SMIL Modèle de document : DTD Utilité des modèles XML : un langage pour créer des langages Exemple de DTD XML Exemple d'instance XML http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/Overview.html (1 sur 2) [01/10/2003 16:49:47] Introduction à XML - Slide list ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Utilisation des DTD Pourquoi valider? Limitations des DTD Schémas Espaces de noms XML Exemple Documents composites Style Langages de feuilles de style Adressage : XPath Introduction à XPath Traitement de documents et transformations Langage de transformation : XSLT Documents dynamiques Document Object Model (DOM) Autres technologies XML Résumé Pour en savoir plus http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/Overview.html (2 sur 2) [01/10/2003 16:49:47] Introduction à XML - slide "Introduction à XML" Introduction à XML Vincent Quint, INRIA Rhône-Alpes Journée XML, CINES, Montpellier, 19 septembre 2003 Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide1-0.html [01/10/2003 16:50:32] 1/37 Introduction à XML - slide "XML, langage de balisage" XML, langage de balisage XML = Extensible Markup Language XML est un langage de balisage pour représenter des documents et des données structurés Document structuré Le document est considéré comme une structure logique, plutôt qu'une structure de présentation Balises Information ajoutée au contenu pour marquer la structure logique Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide2-0.html [01/10/2003 16:50:37] 2/37 Introduction à XML - slide "Exemple de balisage XML" Exemple de balisage XML Du côté de chez Swann Marcel Proust Longtemps je me suis couché... <livre> <titre> Du côté de chez Swann </titre> http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide3-0.html (1 sur 2) [01/10/2003 16:50:39] Introduction à XML - slide "Exemple de balisage XML" <auteur> Marcel Proust </auteur> <chapitre> <para> Longtemps je me suis couché... </para> ... </chapitre> ... </livre> Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide3-0.html (2 sur 2) [01/10/2003 16:50:39] 3/37 Introduction à XML - slide "Origines de XML" Origines de XML XML = SGML pour le Web SGML (Standard Generalized Markup Language -ISO 8879) Un langage de balisage pour représenter des documents structurés XML est développé par le World Wide Web Consortium (W3C) Objectif initial de XML : publier sur le Web des documents SGML Problèmes de SGML : ● ● ● Complexe, difficile à apprendre Utilisé uniquement par les professionnels de la documentation Difficile à utiliser sur le Web Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide4-0.html [01/10/2003 16:50:41] 4/37 Introduction à XML - slide "Objectifs initiaux de XML" Objectifs initiaux de XML Un sous-ensemble de SGML optimisé pour le Web : 1. XML doit être facilement utilisable sur le Web 2. XML doit supporter une grande variété d'applications 3. XML doit être compatible avec SGML 4. Il doit être facile d'écrire des programmes qui traitent des documents XML 5. Le nombre d'options doit être réduit au minimum, idéalement à zéro 6. Les documents XML doivent être lisibles et raisonnablement clairs 7. La conception de XML doit être menée rapidement 8. La description de XML doit être formelle et concise 9. Les documents XML doivent être faciles à créer 10. La concision du balisage XML est d'une importance minime D'après XML 1.0 Rec http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide5-0.html (1 sur 2) [01/10/2003 16:50:42] Introduction à XML - slide "Objectifs initiaux de XML" Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide5-0.html (2 sur 2) [01/10/2003 16:50:42] 5/37 Introduction à XML - slide "XML aujourd'hui" XML aujourd'hui XML = un ensemble de langages et des technologies pour les documents et les données structurés ● ● ● ● ● ● ● ● ● ● ● Balisage de documents et de données Modèles de documents Documents composites Style Description de chemins Langages d'interrogation Transformation de structures Documents actifs Liens hypertexte Protocoles XML etc. Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide6-0.html [01/10/2003 16:50:44] 6/37 Introduction à XML - slide "Structure, contenu et présentation" Structure, contenu et présentation Trois aspects dans les documents : ● ● ● Le contenu La structure logique La présentation XML permet de représenter les contenus textuels et la structure logique ● ● ● Les autres contenus sont des ressources externes (photos, vidéo, sons...) La présentation est décrite par des moyens complémentaires (CSS, XSL) La présentation peut changer, indépendamment des contenus et de la structure Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide7-0.html [01/10/2003 16:50:45] 7/37 Introduction à XML - slide "Structure et éléments" Structure et éléments Un document est représenté comme une structure logique arborescente Les éléments sont les constituants logiques du document : ● ● ● ● Manuel, Titre, Auteur, Résumé, Chapitre, Section, Paragraphe, Note, Exemple, etc. Pièce, Personnage, Acte, Scène, Réplique, etc. LivreCuisine, Plat, Recette, Ingrédient, Temps, Préparation, Étape, etc. etc. Les éléments ne sont pas prédéfinis, mais choisis en fonction du type de document à représenter La structure est hiérarchique et ordonnée Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide8-0.html [01/10/2003 16:50:46] 8/37 Introduction à XML - slide "Exemple de structure XML" Exemple de structure XML Structure arborescente <book> <title> Manuel </title> <abstract> <para> Ce livre... </para> <para> On verra... </para> </abstract> http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide9-0.html (1 sur 3) [01/10/2003 16:50:48] Introduction à XML - slide "Exemple de structure XML" <body> <chapter> <title> Introduction </title> <section> <para> Avant de... </para> <para> Aussi... </para> </section> <section> <title> Historique </title> </section> http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide9-0.html (2 sur 3) [01/10/2003 16:50:48] Introduction à XML - slide "Exemple de structure XML" </chapter> <chapter> <title> Conclusion </title> <section /> </chapter> </body> </book> Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide9-0.html (3 sur 3) [01/10/2003 16:50:48] 9/37 Introduction à XML - slide "Quelques applications de XML" Quelques applications de XML 1. 2. 3. 4. Pages Web : XHTML Mathématiques : MathML Graphique vectoriel : SVG Multimédia synchronisé : SMIL Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide10-0.html [01/10/2003 16:50:50] 10/37 Introduction à XML - slide "Pages Web : XHTML" Pages Web : XHTML XHTML = HTML utilisant les technologies XML Exemple : ces transparents Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide11-0.html [01/10/2003 16:50:51] 11/37 Introduction à XML - slide "Mathématiques : MathML" Mathématiques : MathML x2+1 Présentation Contenu <apply> <math> <plus/> <msup> <apply> <mi>x</mi> <power/> <mn>2</mn> <ci>x</ci> </msup> <cn>2</cn> <mo>+</mo> </apply> <mn>1</mn> </math> <cn>1</cn> </apply> Autres exemples http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide12-0.html (1 sur 2) [01/10/2003 16:50:52] Introduction à XML - slide "Mathématiques : MathML" Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide12-0.html (2 sur 2) [01/10/2003 16:50:52] 12/37 Introduction à XML - slide "Graphique vectoriel : SVG" Graphique vectoriel : SVG SVG = Scalable Vector Graphics Un langage XML pour décrire des graphiques 2D contenant : ● ● ● ● des formes vectorielles des images du texte des animations Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide13-0.html [01/10/2003 16:50:53] 13/37 Introduction à XML - slide "Multimédia synchronisé : SMIL" Multimédia synchronisé : SMIL ● ● ● ● ● ● SMIL est pour le multimédia ce que (X)HTML est pour le texte Un format XML simple Intégration avec les autres technologies Web Intégration de médias de différents formats Mécanismes puissants pour la gestion du temps, de la synchronisation et de l'animation Grande adaptabilité aux systèmes et aux utilisateurs Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide14-0.html [01/10/2003 16:50:55] 14/37 Introduction à XML - slide "Modèle de document : DTD" Modèle de document : DTD On peut créer des applications (ou vocabulaires) adaptés aux types de documents à traiter Un type de document est un modèle qui représente un ensemble (une classe) de documents utilisant tous : ● ● ● ● les mêmes éléments les mêmes attributs avec les mêmes valeurs possibles les mêmes relations structurales entre éléments les mêmes associations d'attributs aux éléments Une DTD définit ces éléments, attributs, relations et associations Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide15-0.html [01/10/2003 16:50:56] 15/37 Introduction à XML - slide "Utilité des modèles" Utilité des modèles <article> <auteur type="premier"> J. Dupont </auteur> <titre> ... </titre> <auteurr type="principal"> <prenom> Jean </prenom> <nom> Dubois </nom> http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide16-0.html (1 sur 2) [01/10/2003 16:50:57] Introduction à XML - slide "Utilité des modèles" </auteur> <paragraphe type="principal"> Bla bla ... </paragraphe> <p> Bla bla bla ... </p> </article> Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide16-0.html (2 sur 2) [01/10/2003 16:50:57] 16/37 Introduction à XML - slide "XML : un langage pour créer des langages" XML : un langage pour créer des langages XML contient deux langages : ● ● un langage de balisage des documents un langage de définition de types de documents XML est un méta-langage qui permet de créer des langages de balisage ● ● Création de langages adaptés au type d'information à décrire Exemples : XHTML, MathML, SVG, SMIL, etc. Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide17-0.html [01/10/2003 16:50:59] 17/37 Introduction à XML - slide "Exemple de DTD XML" Exemple de DTD XML <!ELEMENT memo (to, from, date, subject?, body) > <!ATTLIST memo security (public | member | team) 'public' status (draft | http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide18-0.html (1 sur 3) [01/10/2003 16:51:01] Introduction à XML - slide "Exemple de DTD XML" finished) #REQUIRED > <!ELEMENT to (#PCDATA) > <!ELEMENT from (#PCDATA) > <!ELEMENT date (#PCDATA) > <!ELEMENT subject (#PCDATA) > <!ELEMENT body (p+) > <!ELEMENT p (#PCDATA | http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide18-0.html (2 sur 3) [01/10/2003 16:51:01] Introduction à XML - slide "Exemple de DTD XML" em)* > <!ELEMENT em (#PCDATA) > Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide18-0.html (3 sur 3) [01/10/2003 16:51:01] 18/37 Introduction à XML - slide "Exemple d'instance XML" Exemple d'instance XML <?xml version="1.0"?> <memo xml:lang="fr" security="team" status="finished"> <to> J. Dupont </to> <from> P. Dubois </from> <date> 03/01/03 </date> <body> http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide19-0.html (1 sur 2) [01/10/2003 16:51:02] Introduction à XML - slide "Exemple d'instance XML" <p> Réunion confirmée <em>demain</em> 10h. </p> </body> </memo> Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide19-0.html (2 sur 2) [01/10/2003 16:51:02] 19/37 Introduction à XML - slide "Utilisation des DTD" Utilisation des DTD Les DTD servent à : ● ● ● ● ● décrire les types de documents utilisés par une organisation valider les documents créés, mis à jour, reçus, ... guider ou paramétrer un outil de saisie de document piloter les parsers utilisés par les applications etc. Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide20-0.html [01/10/2003 16:51:03] 20/37 Introduction à XML - slide "Pourquoi valider?" Pourquoi valider? Une DTD est un contrat entre les producteurs et les consommateurs d'information La validation permet ● ● ● ● au producteur de vérifier qu'il produit ce qu'il a promis au consommateur de vérifier ce que le producteur lui livre au consommateur de protéger ses applications à l'auteur d'application de simplifier son travail : la détection et l'analyse d'erreur est laissée au parser Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide21-0.html [01/10/2003 16:51:04] 21/37 Introduction à XML - slide "Limitations des DTD" Limitations des DTD Les DTDs ont des limitations : ● ● ● ● ● Trop contraignantes : tout doit être défini Pas assez contraignantes : nombres d'occurences, par exemple Très peu de contraintes sur les chaînes contenues dans les éléments et sur les valeurs d'attributs Pas d'héritage Syntaxe particulière, différente de la syntaxe de balisage des instances Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide22-0.html [01/10/2003 16:51:06] 22/37 Introduction à XML - slide "Schémas" Schémas Plusieurs langages de schémas : ● ● ● ● XML Schemas : W3C RELAX NG : Oasis (J. Clark, M. Murata) Schematron : ISO (R. Jelliffe) etc. Objectif : dépasser les limites des DTD ● ● ● ● souplesse et puissance de description syntaxe typage des données modularisation, documentation Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide23-0.html [01/10/2003 16:51:07] 23/37 Introduction à XML - slide "Espaces de noms XML" Espaces de noms XML Un même document XML doit pouvoir utiliser plusieurs vocabulaires de balisage ● ● ● ● ● Conception modulaire des vocabulaires de balisage Réutilisation d'un même vocabulaire dans des contextes différents Les mêmes noms (éléments, attributs) peuvent être utilisés avec des sens différents dans des vocabulaires indépendants Problèmes d'ambiguïté, collision de noms Quelle application doit traiter quelle partie du document? Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide24-0.html [01/10/2003 16:51:09] 24/37 Introduction à XML - slide "Exemple" Exemple <section> <title>BookSigning Event</title> <signing> <author title="Mr" name="Vikram Seth" /> <book title="A Suitable Boy" price="$22.95" /> </signing> ... </section> extrait de « Namespaces in XML » Vincent Quint http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide25-0.html [01/10/2003 16:51:10] 25/37