XML -- TP 1 : Documents et DTDs
Méthodologie
Généralement, quand on veut lire/modifier le contenu d'un fichier
XML non prévu pour le web, il suffit de l'ouvrir avec un éditeur de
texte. Vous pouvez aussi l'ouvrir directement dans une fenêtre
Firefox. Dans ce cas, si le fichier est mal formé vous aurez une
erreur, sinon vous verrez l'arbre du document. Il est alors possible
de voir le contenu du fichier initial en demandant à voir le code
source de la page.
Pour tester la validité d'un document XML, plusieurs outils sont
disponibles. Le plus simple est d'utiliser le
programme xmllint (toutes les infos via la commande
"man xmllint"). Exemples :
xmllint --valid --noout fichier.xml
xmllint --dtdvalid fichier.dtd fichier.xml
Exercice 1: Premiers fichiers XML
Pour chacun des fichiers suivants, déterminez s'il est bien
formé, et corrigez les erreurs (il ne suffit pas toujours que le
document soit bien formé).
Exercice 2: Création d'un document XML (à partir d'un doc BiBTeX)
Fichiers: - biblio.bib - inproc.xml
On donne ci-dessous l'extrait d'un fichier BiBTeX, un
système permettant de répertorier des références
bibliographique.
@InProceedings{DalzilioS:learnbs,
author = "Dal Zilio, Silvano
and Bernard, Thierry M.",
title = "Learning Binary Shapes as Compression and its
Cellular Implementation",
booktitle = "ACCV '95 -- 2nd Asian Conference on Computer
Vision",
year = 1995,
volume = 2,
pages = "616--620",
month = dec,
url = "http://www.cmi.univ-mrs.fr/~dalzilio/Papers/accv95.ps",
abstract = "We present a methodology to learn how to
recognize binary shapes, based on the principle that
recognition may be understood as a process of
information compression. Our approach, directed
towards adaptive target tracking applications, is
intended to be well suited to fine-grained parallel
architectures, such as cellular automata machines
that can be integrated in artificial retinas. This
methodology, fruitfully explained within the frame
of mathematical morphology, is then particularized
in the perspective of its actual implementation."
Cette entrée correspond à un article paru dans une
conférence. Une traduction possible de ces données sous la forme
d'un fichier XML se trouve dans le fichier
inproc.xml.
Traduisez les entrées bibliographiques de l'article et du livre se
trouvant dans le fichier biblio.bib. Expliquez vos
choix.
Exercice 3: Validation de DTDs
-
Fichiers: - wg.xml, wg.dtd
Ouvrez ces fichiers, puis utilisez xmllint pour vérifier que
le fichier est valide par rapport à sa DTD (voir plus haut pour
l'utilisation de xmllint). On souhaite autoriser une
description plus précise de l'orateur, comprenant (sous une forme
structurée) son nom, son prénom, son statut et son organisme
d'origine. Proposez une modification de la DTD.
-
Fichiers: - validation.xml
Ouvrez le fichier validation.xml. Distinguez
les définitions correctes, signalez et corrigez les erreurs (si
possible) et expliquez rapidement le sens des
définitions. Signalez les erreurs de validation dans le document,
corrigez le document.
Exercice 4: Création de DTD
-
Ecrivez une DTD pour le fichier de bibliographie que vous avez
écrit dans l'exercice 2.
-
Fichiers: - exam.xml
Écrivez un fichier exam.dtd contenant une DTD pour
des documents XML de type examen. Un examen contient un code de
cours, un titre et une date qui contient uniquement le mois et
l'année. Ces éléments sont suivis par une liste de questions. Un
examen a entre 5 et 6 questions et chaque question a une ou
plusieurs parties. Une partie se découpe en textes mélangés avec
d'autres parties. Le code est uniquement alphanumérique, sans
espace, la valeur de mois doit être une chaîne de caractère valide
(idée: utilisez des énumérations).
Donnez une instance de document valide par rapport à votre DTD et deux exemples
invalides en expliquant pourquoi.
Exercice 5 : Échange de DTD
Échangez votre fichier bibliographie (de l'exercice 4)
avec votre voisin et testez si votre DTD fonctionne avec ce
fichier. Si non, essayez de modifier votre DTD afin de pouvoir
accepter le plus de fichiers différents possible.