S01 · TP : documents bien formés et catalogue BiblioTech
Durée : 60 min · Travail : en binôme · Outils : VS Code (extension XML), xmllint
Partie 1 : chasse aux erreurs (20 min)
Section intitulée « Partie 1 : chasse aux erreurs (20 min) »Le dossier erreurs/ contient 8 documents mal formés : ex01-invalide.xml à ex08-invalide.xml.
Pour chaque fichier :
- Lancez
xmllint --noout erreurs/exNN-invalide.xmlet lisez le message. - Copiez le fichier en
erreurs/exNN.xmlet corrigez-le sans changer le sens des données. - Ajoutez en tête un commentaire XML qui explique l’erreur en une phrase.
- Vérifiez que
xmllint --noout erreurs/exNN.xmln’affiche plus rien.
Attention : certains fichiers contiennent plusieurs erreurs.
xmllintne signale que la première, donc relancez-le après chaque correction.
Partie 2 : le catalogue BiblioTech (35 min)
Section intitulée « Partie 2 : le catalogue BiblioTech (35 min) »Complétez catalogue.xml à partir du squelette fourni. Le document doit contenir :
| Contenu | Minimum |
|---|---|
Auteurs (auteur avec l’attribut id, et les éléments prenom, nom, pays) |
3 |
Livres (livre avec les attributs isbn et genre, et les éléments titre, un ou plusieurs auteur ref="…", annee, exemplaires, resume) |
5 |
Adhérents (adherent avec l’attribut id, et les éléments nom, email) |
2 |
Contraintes :
- Espace de noms par défaut :
urn:bibliotech:catalogue. genreprend l’une des valeursroman,science,informatique,histoire,jeunesseoubd.- Au moins un livre a deux auteurs.
- Au moins un résumé contient un
&et des guillemets. Échappez-les correctement. - Au moins un livre a
<exemplaires>0</exemplaires>. - Un livre d’informatique contient un
<extrait>avec du code dans une section CDATA.
Vérification :
xmllint --noout catalogue.xmlxmllint --format catalogue.xml | head -40 # affichage indentéPartie 3 : réflexion (5 min)
Section intitulée « Partie 3 : réflexion (5 min) »Répondez dans REPONSES.md :
- Pourquoi
isbnest-il un attribut alors quetitreest un élément ? - Pourquoi
auteurest-il un élément avec un attributrefplutôt que le nom de l’auteur écrit directement dans le livre ? xmllint --nooutne signale aucune erreur si vous écrivez<genre>policier</genre>ou oubliez le titre d’un livre. Pourquoi ? Qu’est-ce qui manque ? (Indice : séance S02.)
Critères de réussite
Section intitulée « Critères de réussite »- Les 8 fichiers
erreurs/exNN.xmlsont bien formés et commentés. -
catalogue.xmlest bien formé et respecte les minimums et contraintes ci-dessus. -
REPONSES.mdest rempli. - Le travail est commité et poussé sur le dépôt du binôme (
git commit -m "S01 TP" && git push).
Écrivez livre.json, la représentation JSON d’un de vos livres avec ses auteurs (pas seulement leurs identifiants). Comparez le nombre de caractères avec la version XML (wc -c). Qu’est-ce que JSON ne sait pas représenter aussi naturellement que XML ?