Bulletins météo
Soit le fichier f1.smi
suivant (très proche de la syntaxe SMIL) :
<smil>
<body>
<seq>
<par>
<text dur="1">Île de France</text>
</par>
<par>
<text dur="1">8 janvier 2010</text>
</par>
<par>
<text dur="3">5 cm de neige en moyenne sur la région</text>
</par>
<par>
<text dur="3">Jusqu'à 10cm de neige sur le sud de la région</text>
</par>
</seq>
</body>
</smil>
<?xml version="1.0" encoding="UTF-8"?> <smil> <body> <seq> <par> <text dur="1">Île de France</text> </par> <par> <text dur="1">8 janvier 2010</text> </par> <par> <text dur="3">5 cm de neige en moyenne sur la région</text> </par> <par> <text dur="3">Jusqu'à 10cm de neige sur le sud de la région</text> </par> </seq> </body> </smil>
Pour rappel :
seq
décrit une séquence de partiespar
, contenant du contenu affiché pendant une duréedur
.les
par
d'uneseq
sont présentes en même temps à l'écran (pour simplifier dans notre cas, les unes en dessous des autres)
Question
Ce fichier est-il un fichier XML bien formé (justifier) ?
Question
Soit la DTD smilSuperLight.dtd
suivante :
<!ELEMENT smil (meta*, body)>
<!ATTLIST meta
name (title) #REQUIRED
content CDATA #REQUIRED>
<!ELEMENT body (seq)>
<!ELEMENT seq (par+)>
<!ELEMENT par (text)>
<!ELEMENT text (#PCDATA)>
<!ATTLIST text
dur CDATA #REQUIRED>
<!ELEMENT smil (meta*, body)> <!ATTLIST meta name (title) #REQUIRED content CDATA #REQUIRED> <!ELEMENT body (seq)> <!ELEMENT seq (par+)> <!ELEMENT par (text)> <!ELEMENT text (#PCDATA)> <!ATTLIST text dur CDATA #REQUIRED>
Le fichier f1.smi
est-il valide par rapport à cette DTD (justifier) ?
Question
Si smilSuperLight.dtd
est un sous-ensemble du schéma SMIL officiel du W3C, le fichier XML f1.smi
est-il valide par rapport à la DTD SMIL du W3C (expliquer) ?
Question
Pourquoi le fichier f2.smi
n'est-il pas valide par rapport à la DTD smilSuperLight.dtd
?
<smil>
<body>
<seq>
<par>
<text dur="1">Champagne</text>
<text dur="1">8 janvier 2010</text>
</par>
<par>
<text dur="3">Brouillard dominant et éclaircies en fin de matinée</text>
</par>
</seq>
</body>
</smil>
<?xml version="1.0" encoding="UTF-8"?> <smil> <body> <seq> <par> <text dur="1">Champagne</text> <text dur="1">8 janvier 2010</text> </par> <par> <text dur="3">Brouillard dominant et éclaircies en fin de matinée</text> </par> </seq> </body> </smil>
Question
Modifier smilSuperLight.dtd
afin que f2.smi
soit à présent valide par rapport à une nouvelle DTD smilSuperLight2.dtd
Soit les deux fichiers XML suivants, structurés selon une sémantique métier :
<meteo>
<region>Picardie</region>
<date>8 janvier 2010</date>
<phenomene>Pluie et brouillard sur toute la région</phenomene>
<temperature>
<matin>-5</matin>
<soir>-3</soir>
</temperature>
</meteo>
<?xml version="1.0"?> <meteo> <region>Picardie</region> <date>8 janvier 2010</date> <phenomene>Pluie et brouillard sur toute la région</phenomene> <temperature> <matin>-5</matin> <soir>-3</soir> </temperature> </meteo>
<meteo>
<region>Nord</region>
<date>8 janvier 2010</date>
<phenomene>Brouillard et neige sur le nord de la région</phenomene>
<phenomene>Vents violents sur le bord de mer</phenomene>
<phenomene>Verglas sur toute la région</phenomene>
</meteo>
<?xml version="1.0"?> <meteo> <region>Nord</region> <date>8 janvier 2010</date> <phenomene>Brouillard et neige sur le nord de la région</phenomene> <phenomene>Vents violents sur le bord de mer</phenomene> <phenomene>Verglas sur toute la région</phenomene> </meteo>
Question
Proposer un schéma XML meteo.dtd
selon le formalisme des DTD de telle façon que ces deux fichiers soient valides par rapport à ce schéma.
Question
Proposer un programme XSLT permettant de transformer les fichiers de type meteo
en smilSuperLight2
, en affichant séquentiellement :
la région avec la date dans une même première partie (1 seconde chacune, donc 2 secondes en tout),
puis chaque phénomène (les températures ne sont pas affichées) pendant 3 secondes chaque.