Apres avoir analyse le document maisons.xml, ecrire sa DTD. Verifier que tout fonctionne avec xmlvalid.
1. Un premier programme simple
On desire remplacer toutes les chaines de caracteres utilisees plus de deux fois en utilisant des entites, modifier votre DTD en consequence. On rappelle que les entites ont un effet analogue aux #define en C. Ainsi la commande <! ENTITY % mot "..."> au debut de la DTD remplacera toutes les occurences de %mot; par ... Consulter les notes de cours pour voir comment declarer des entites locales (vous n'en avez pas besoin dans cette question).2. Utilisation d'entites
3. A vous de jouer
Modifier la DTD pour que la maison puisse contenir un salon.
Ce salon contiendra:
- au moins un fauteuil (dont on precisera facultativement la couleur)
- eventuellement un canape mais pas plus d'un
- une television (qui aura pour attribut le nombre de chaines)
- un magnetoscope eventuellement
- une chaine hi-fi ou un ampli mais pas les deux simultanement
- une commode pouvant contenir des livres
Completer maintenant votre fichier XML avec un salon de votre choix et verifier la validite de ce fichier avec xmlvalid.
Nous gardons notre maison mais nous ne selectionnons qu'une piece par souci de simplicite. Modifier le document XML et la DTD en consequence.1. Juste une piece
Etendre le fichier XSL pour couvrir le fichier XML entier.2. Le fichier entier
Note: la conversion XSL ne fonctionne pas avec la plupart des navigateurs.
Toutefois, elle semble marcher sur les versions de Netscape apres 6.0 (nous
avons 6.1 sur les comptes Site) donc vous pourrez verifier que vos fichiers
sont corrects de cette facon. D'autre part, l'exemple de la maison n'est
pas tres interessant pour la conversion XSL car il contient plus de sous-elements
que de #PCDATA imbriques. C'est la raison pour laquelle la solution proposee
est tres basique et utilise peu des possiblites offertes par la conversion
XSL. Pour avoir une meilleure idee, n'hesitez pas a aller consulter les
fichiers cd.xsl et checkbook.xsl ->
http://www.site.uottawa.ca/~szpak/teaching/3125/handouts/other/perl_xml.html)