Exercice 3: De la Terre à la Lune en passant par Mars...

Enoncé: Documentez-vous sur les 8 planètes de notre système solaire. Réalisez en XHTML strict un tableau résumant les principales caractéristiques des planètes: température, diamètre, densité, distance, période, anneaux, nombre de satellites, noms des satellites...
Une fois que vous aurez ce tableau de synthèse, vous pourrez commencer l'exercice.

  • Créez un fichier XML permettant de sauvegarder toutes les informations que vous voyez dans votre tableau.
  • Créez un schéma-XML permettant de valider votre fichier (grammaire).

Cette grammaire doit aussi être capable de décrire les planètes naines du système solaire, la ceinture des astéroïdes, les comètes et la ceinture du Kuiper. Le diamètre ne peut être plus grand que celui de Jupiter. La densité ne peut être plus grande que 10 fois celle de la Terre. Il n’est pas utile de considérer des objets qui sont dans ou au delà du nuage d’Oort. On ne peut biensûr pas avoir une température plus basse que le zéro absolu ou plus haute que le noyau même du soleil. On doit aussi respecter la précision des mesures. Une attention toute particulière sera apportée à la modularité et à l’adaptabilité de cette grammaire afin que les types soient le plus précis possible, extensibles ou au contraire restrictifs. Le but est de pouvoir l’utiliser pour décrire un autre système planétaire en modifiant, réutilisant ou surchargeant n’importe quels types. On pourra par exemple tester l’adaptabilité du schéma avec le système de Gliese 581.

Après nous être documentés sur le système solaire, nous avons construit un tableau récapitulatif sur ses planètes. Pour chaque planète, plusieurs informations sont données telles que son diamètre, le nombre de satellites qu'elle possède, sa vitesse de rotation autour du soleil, ...
A partir de ce tableau, nous avons créé un fichier XML afin de stocker toutes ces informations de manière structurée. Les informations sauvegardées à propos d'une planète étant toujours à peu près similaires et surtout, de taille limitée, nous avons décidé de créer une balise inline planete dont les informations sont stockées dans des attributs. Il n'était pas utile de créer des balises spécifiques pour les données relatives à une planète. Par conséquent, le fichier XML recensant les informations sur le système solaire est de la forme suivante:

<?xml version="1.0" encoding="UTF-8"?>
<systeme nom="solaire">
	<planete nom="Terre" diametre="12756" densite="5.52" ... />
	<planete nom="Saturne" diametre="120536" densite="0.69" ... />
	...
</systeme>

Afin de pouvoir « contrôler » la forme du fichier XML, les types de données et les domaines de valeurs des données, nous avons créé un XML Schema. Il s'agit d'une norme du W3C qui permet de décrire la structure d'un fichier XML. Plus précisément, les schémas XML permettent de:

XSD (XML Schema Definition) est vouée à remplacer les DTD dans un futur proche (notez que j'écris ceci en novembre 2009) et ce pour plusieurs raisons:

Grâce à tout cela, nous avons donc pu rédiger un schéma pour le système solaire respectant les critères de l'énoncé: une température ne peut être inférieure au zéro absolu, la densité d'une planète ne peut être négative, ...

Retour à la liste des TPs