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

Documents pareils