Aller au contenu

S01 · TD : lire et concevoir du XML sans outil

Durée : 30 min · Travail : en binôme, sans ordinateur · Support : feuille et stylo

Ce TD prépare le TP. L’objectif est de savoir repérer une erreur et justifier une modélisation sans s’appuyer sur un outil : en examen comme en réunion de conception, vous n’aurez pas xmllint.

Exercice 1 — Chasse aux erreurs à l’œil (10 min)

Section intitulée « Exercice 1 — Chasse aux erreurs à l’œil (10 min) »

Le document suivant contient cinq erreurs qui l’empêchent d’être bien formé.

<?xml version="1.0" encoding="UTF-8">
<Catalogue>
<livre isbn=9782070360024 genre="roman" genre="classique">
<titre>L'Étranger & autres récits</titre>
<annee>1942</annee>
</Livre>
</catalogue>
  1. Recopiez le document en numérotant les lignes, puis entourez chaque erreur.
  2. Pour chacune, écrivez la règle violée en une phrase (par exemple « toute balise ouverte doit être fermée »).
  3. Réécrivez le document corrigé, sans changer le sens des données.
  4. Lesquelles de ces erreurs un navigateur web tolérerait-il si le fichier était du HTML ? Pourquoi cette différence ?

Une bibliothèque doit décrire, pour chaque livre : l’ISBN, le titre, le ou les auteurs, l’année, le genre, le nombre d’exemplaires, un résumé, et la langue du résumé.

  1. Classez ces huit informations en deux colonnes : élément ou attribut.
  2. Justifiez chaque choix par un seul critère parmi : valeur multiple possible, structure interne, texte long, métadonnée courte, ordre significatif.
  3. Écrivez le fragment XML d’un livre ayant deux auteurs, conforme à votre classement.
  4. Un collègue propose <livre auteurs="Kernighan, Ritchie">. Donnez deux raisons concrètes de refuser cette solution.

Soit le document :

<catalogue xmlns="urn:bibliotech:catalogue"
xmlns:m="urn:bibliotech:membres">
<livre isbn="9782070360024">
<titre>L'Étranger</titre>
</livre>
<m:adherent m:id="M01">
<m:titre>Mme</m:titre>
<nom>Salma Bennani</nom>
</m:adherent>
</catalogue>
  1. Pour chacun des noms catalogue, livre, isbn, titre (ligne 4), m:titre, m:id et nom (ligne 9), indiquez dans quel espace de noms il se trouve — ou aucun.
  2. L’élément <nom> de la ligne 9 est-il au bon endroit d’un point de vue métier ? Que faudrait-il écrire ?
  3. Un autre établissement utilise le préfixe bt: au lieu du préfixe par défaut, avec le même URI. Les deux documents sont-ils équivalents pour un parseur ? Justifiez.
  4. Peut-on remplacer urn:bibliotech:catalogue par https://bibliotech.ma/catalogue ? Le navigateur ira-t-il chercher quelque chose à cette adresse ?
  • Énoncer les règles du document bien formé et les appliquer à la lecture.
  • Défendre un choix élément/attribut par un critère précis.
  • Dire, pour n’importe quel nom d’un document, à quel espace de noms il appartient.