Introduction à XML - Slide list
Introduction à XMLVincent 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-AlpesJournée XML, CINES, Montpellier, 19 septembre 2003
Vincent Quint 1/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide1-0.html [01/10/2003 16:50:32]
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
BalisesInformation ajoutée au contenu pour marquer la structure logique
Vincent Quint 2/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide2-0.html [01/10/2003 16:50: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 3/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide3-0.html (2 sur 2) [01/10/2003 16:50:39]
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 4/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide4-0.html [01/10/2003 16:50:41]
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 Web2. XML doit supporter une grande variété
d'applications3. XML doit être compatible avec SGML4. Il doit être facile d'écrire des programmes qui
traitent des documents XML5. Le nombre d'options doit être réduit au minimum,
idéalement à zéro6. Les documents XML doivent être lisibles et
raisonnablement clairs7. La conception de XML doit être menée
rapidement8. La description de XML doit être formelle et
concise9. Les documents XML doivent être faciles à créer10. 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 5/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide5-0.html (2 sur 2) [01/10/2003 16:50:42]
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 6/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide6-0.html [01/10/2003 16:50:44]
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 7/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide7-0.html [01/10/2003 16:50:45]
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 8/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide8-0.html [01/10/2003 16:50:46]
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 9/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide9-0.html (3 sur 3) [01/10/2003 16:50:48]
Introduction à XML - slide "Quelques applications de XML"
Quelques applications de XML
1. Pages Web : XHTML2. Mathématiques : MathML3. Graphique vectoriel : SVG4. Multimédia synchronisé : SMIL
Vincent Quint 10/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide10-0.html [01/10/2003 16:50:50]
Introduction à XML - slide "Pages Web : XHTML"
Pages Web : XHTML
XHTML = HTML utilisant les technologies XML
Exemple : ces transparents
Vincent Quint 11/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide11-0.html [01/10/2003 16:50:51]
Introduction à XML - slide "Mathématiques : MathML"
Mathématiques : MathML
x 2 + 1 Présentation Contenu
<math> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>1</mn></math>
<apply> <plus/> <apply> <power/> <ci>x</ci> <cn>2</cn> </apply> <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 12/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide12-0.html (2 sur 2) [01/10/2003 16:50:52]
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 13/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide13-0.html [01/10/2003 16:50:53]
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 14/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide14-0.html [01/10/2003 16:50:55]
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 15/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide15-0.html [01/10/2003 16:50:56]
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 16/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide16-0.html (2 sur 2) [01/10/2003 16:50:57]
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 17/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide17-0.html [01/10/2003 16:50:59]
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 18/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide18-0.html (3 sur 3) [01/10/2003 16:51:01]
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 19/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide19-0.html (2 sur 2) [01/10/2003 16:51:02]
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 20/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide20-0.html [01/10/2003 16:51:03]
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 21/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide21-0.html [01/10/2003 16:51:04]
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 22/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide22-0.html [01/10/2003 16:51:06]
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 23/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide23-0.html [01/10/2003 16:51:07]
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 24/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide24-0.html [01/10/2003 16:51:09]
Introduction à XML - slide "Exemple"
Exemple
<section> <title>Book-Signing 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 25/37
http://wam.inrialpes.fr/talks/2003/VQ-CINES-Sep03/slide25-0.html [01/10/2003 16:51:10]