1

TD2 : XML et DTD (10/10/2006)

Objectifs du TP

Comprendre les notions de document bien formés et valides. Mettre en place des DTD (Définition de Types de Documents).

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 17 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 afin d'afficher l'arborescence des éléments, ces logiciels, qui disposent d'un parser XML s'arrêtent dès qu'il rencontrent une erreur de bonne formation.

DTD pour l'annuaire

L'objectif, maintenant 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 :

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 tard d'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 :

Associez la DTD Exo1.dtd à Exo1.xml. Que contient la ligne qui 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 : quels sont les éléments, les attributs, les références entre éléments (id/idref).

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 : 


Procédez en plusieurs étapes :

    1. 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.
    2. 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.
    3. Procédez de la même manière pour SartreLivres.xml (sous-partie de Sartre.xml contenant uniquement la partie Livres).
    4. 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.