TD2 : XML et DTD (28/10/2005)
Objectifs du TP
Notions de document bien formés et valides. Mise en
place de Définition de Types de Documents (DTD).
A rendre
La DTD complète Sartre.dtd permettant de valider Sartre.xml
est à envoyer par courrier électroniques à votre
encadrant de TP (yannick.prie (at) liris.cnrs.fr ou bertrand.richard
(at) liris.cnrs.f) pour le 4 novembre. Le sujet du courrier
électronique sera : "SIB-XML-TD2 NOM/PRENOM".
Documents XML bien formés
Enregistrez sur votre compte le document XML Exo1.xml. Ouvrez-le dans un
bloc-notes.
Ce document n'est pas bien formé, vous allez donc
le corriger
jusqu'à ce qu'il le soit. Pour vérifier sa bonne
formation, ouvrez-le régulièrement avec un
navigateur tel
que Firefox ou Internet Explorer, qui disposent d'un parser pour
afficher l'arborescence des éléments, et
s'arrête
dès qu'il rencontre une erreur de bonne formation.
DTD pour l'annuaire
L'objectif, maitenant que le document XML est bien
formé, est d'écrire une DTD permettant de le
valider.
Voici une description de l’arborescence XML contenue
dans Exo1.xml :
- une racine Annuaire qui contient des
éléments Contact
(informations relatives à une personne)
- un élément Contact
possède des attributs idc (la
référence du contact) et type
(catégorie du contact)
- un élément Contact
contient des éléments Nom, Prenom
et Tel
- un élément Tel peut
posséder un attribut type.
Ecrivez une DTD pour ce document XML dans le bloc-notes,
et enregistrez-le sous le nom Exo1.dtd. Vous
vérifierez un
peu plus tardd'une part que cette DTD a bien été
conçue (qu'elle est syntaxiquement correcte), d'autre part
qu'elle permet effectivement de valider Exo1.xml
Découverte d'XMLSpy
Ouvrez le fichier corrigé Exo1.xml dans XMLSpy.
XML-Spy offre entre autres les fonctionnalités suivantes
:
Vérification
de bonne formation
Vérifiez que le document XML est bien
formé via le menu "XML -> Check
well-formedness."
Edition XML
Ajoutez au document un élément Contact
complet (par exemple le votre, ou celui de votre voisin).
Gestion des
fichiers liés (notamment association document
XML / DTD)
Les étapes à suivre pour associer une
DTD à un document XML sont les suivantes :
- Ouvrez votre fichier de type DTD dans XML-Spy.
- Ajoutez au fichier XML la déclaration de DTD via
la menu "DTD/Schema -> Assign DTD."
Associez la DTD Exo1.dtd à Exo1.xml. Quelle ligne
est ajoutée au début du fichier XML ?
Vérification
de validité
Vérifiez que le fichier Exo1.xml est valide avec "XML -> Validate".
Vous pouvez maintenant ajouter un nouveau contact à
Exo1.xml, et valider à nouveau le fichier.
DTD pour Sartre.xml
Nous allons maintenant nous intéresser au fichier Sartre.xml.
Celui-ci contient une partie de la bibliographie de Jean-Paul Sartre.
Analysez ce document XML : éléments, attributs,
références entre éléments.
Vous allez maintenant créer une DTD qui permet de
valider de Sartre.xml en utilisant les informations qui suivent.
La bibliographie contient 3 branches :
- une branche
"Livres" contenant des éléments "Livre" possédant obligatoirement un
identifiant "id", un attribut "couverture", et une référence éventuelle
à l'édition la plus vieille de ce livre dans la liste si elle existe
("alias"). Chacun des éléments Livre doit contenir un "titre", un ou
plusieurs "auteur" avec une référence éventuelle à l'auteur dans la
liste des auteurs, un "editeur", une "collection", un "Nombre de
pages", un "format", un "ISBN", et éventuellement : une "Date de
parution", une "illustration", une ou plusieurs "direction", une
"preface", une "postface", une "traduction"
- une branche "Auteurs" contenant des éléments
"Perso" possédant obligatoirement un identifiant. Ceux-ci
contiennent des éléments "Nom", "Prenom", "Naissance"
(annee mois jour lieu, par défaut "?"), éventuellement
"Deces" (annee mois jour lieu, par défaut "?", lieu n'est pas
obligatoire), une "Biographie" qui contient des éléments
"p" contenant eux-mêmes éventuellement des
éléments "Ecrit", un élément "Infos"
contenant des "Info" avec éventuellement l'année
relative à cette information.
- une branche "Commentaires" qui contient des
éléments "Avis". Chacun de ces éléments
contient un avis sur un film avec, si possible, sa "source" et la
référence au livre "lref" obligatoire en attributs.
Procédez en plusieurs
étapes :
- Créez une DTD Sartre.dtd
pour valider le document SartreCommentaires.xml
(qui est une sous-partie de Sartre.xml, limitée à
l'arbre de racines Commentaires). Vérifer que votre DTD
convient en spécifiant au début de
SartreCommentaires.xml que celle-ci doit le valider, et en utilisant
XML-Spy.
- Dans le même fichier Sartre.dtd,
ajoutez des déclarations permettant de valider le document SartreAuteurs.xm (sous-partie de Sartre.xml, limitée à l'arbre de racine Auteurs). Vérifer que votre DTD
complétée permet de valider
SartreAuteurs.xml.
- Procédez de la même manière pour SartreLivres.xml
(sous-partie de Sartre.xml contenant uniquement la partie Livres).
- Compléter finalement votre DTD en décrivant les
liens entre les éléments Bibliographie, Auteurs,
Commentaires, Livres. Associez votre DTD au document Sartre.xml.
Validez à l'aide de XML-Spy.