C'est l'option choisie pour écrire la DTD de XHTML. Allez regarder la spécification de la construction des DTD modulaires de XHTML.
Vous trouverez en annexe un document oiseaux.xml. Il décrit une collection de fiches d'observations ornithologiques. Dans chaque fiche, les espèces observées sont notées, avec leur nom, le nombre d'individus observés, et le nom de la famille de l'espèce. Eventuellement, peuvent être ajoutés une description et une photo. Ce document sert d'exemple et votre réponse doit pouvoir s'appliquer à d'autres documents XML ayant la même structure.
Proposez une DTD modulaire pour ce type de document. Vous devez :
Écrivez un document pour chaque DTD (et chaque valeur de paramètre) et validez-le.
Nous allons à nouveau
utiliser xmllint
. Utilisez l'option
--shell
(et le manuel d'aide man
xmllint
). Vous entrez dans un interprète Xpath qui vous
permettra de vous déplacer dans votre document. La commande
xpath exprXpath
vous permet d'évaluer une
expression XPath, et cd exprXPath
de vous
déplacer dans le document XML. Utilisez la
commande help
pour connaître toutes les
commandes disponibles.
On se sert maintenant du document Grand Prix.
Ecrire les expressions XPath qui retournent (le noeud contextuel est la racine) :
attr
order
attr
de cast
name
d'un Composer
Crew
(attribut de filmography
)filmography
filmography
order
remainder
,
retournez le sous-arbre de racine Editor
cast
)cast
, remainder
, miscellaneous
)Sur le document
Spaghetti à la Bolognaise,
utilisez l'interprète XPath de xmllint
pour
obtenir les éléments suivants :
ingredient
preparation
Vous trouverez en annexe un document de recettes de cuisine danoise.
Donnez les expressions XPath qui retournent (à partir du noeud racine, sauf indication contraire) :
Vous trouverez en annexe un document listant des titres de bandes dessinées.
Donnez les expressions XPath qui retournent (à partir de la racine /) :
Reprenez le document oiseaux.xml.
Donnez les expressions XPath qui retournent (à partir de la racine /) les informations suivantes. Attention! Il y en a deux qui ne peuvent pas être retournées par une expression XPath. Lesquelles ?
Vous allez devoir proposer une DTD pour le programme d'un festival de jazz, le LJF.
Le programme contient toutes les informations sur les concerts : quels artistes, quel jour, à quelle heure, quel lieu (il y a plusieurs salles concernées à Lens, et certains concerts ont même lieu dans les villes avoisinantes), quels tarifs. Pour chaque concert, on donne également un descriptif assez long (plusieurs lignes de texte). Certains concerts sont constitués de plusieurs parties, chacune avec un artiste ou un groupe (cas général, il y a peu de concerts solo) différent. Il faut alors prévoir un descriptif pour chaque artiste un chaque groupe participant au concert. De même, pour les groupes, chaque membre du groupe doit être indiqué : son nom, son ou ses instruments. Enfin, il faut prévoir de donner les adresses web auxquelles on peut trouver plus d'informations sur les artistes, ainsi que l'illustration du site par des photos. Certains artistes ou groupes se présentent plusieurs fois pendant le festival.
Les salles sont également présentées, et on indique leur adresse et le nombre de places assises.
Il existe trois tarifs, tarif plein, tarif réduit et abonné. Il faut indiquer quelles sont les conditions pour chaque tarif. Les concerts ont ensuite un prix différent pour chacun de ces tarifs, et certains concerts sont à entrée libre.
Vous devez rendre une DTD modulaire pour le festival de jazz. Il faut pouvoir donner une présentation du festival au format XML :
Vous devez également donner un document XML pour chacune des versions de la DTD.