You are on page 1of 19

MODULE : PROGRAMMATION SITES WEB DYNAMIQUES

TRAVAUX DIRIGES :XML

Proposé par : A BENDAOUD OFPPT/DRPS/ISGI LAAYOUNE

1. Exercice 1
Distinguez les noms XML corrects des noms incorrects et corrigez les erreurs.

a. <Drivers_License_Number>98 NY 32</Drivers_License_Number>
b. <Driver's_License_Number>98 NY 32</Driver's_License_Number>
c. <month-day-year>7/23/2001</month-day-year>
d. <first name>Alan</first name>
e. <àçttûä>øåú</àçttûä>
f. <first_name>Alan</first_name>
g. <month/day/year>7/23/2001</month/day/year>
h. <_4-lane>I-610</_4-lane>
i. <téléphone>011 33 91 55 27 55 27</téléphone>
j. <4-lane>I-610</4-lane>

2. Exercice 2
Le paragraphe suivant contient de l'information "en vrac". Réorganisez-la de manière à
mettre en évidence sa structure logique, sans forcément passer par une mise en forme
XML.

Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium, et
5,5 mg d'ions positifs magnésium. On y trouve également des ions négatifs comme des
chlorures à 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie à St-Cyr
la Source, dans le département du Loiret. Son code barre est 3274080005003 et son pH
est de 7,45. Comme la bouteille est sale, quelques autres matériaux comme du fer s'y
trouvent en suspension.
Une seconde bouteille d'eau Cristaline a été, elle, recueillie à la source d'Aurèle dans les
Alpes Maritimes. La concentration en ions calcium est de 98 mg/l, et en ions magnésium
de 4 mg/l. Il y a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4. Le
code barre de cette bouteille de 50 cl est 3268840001008.
Une bouteille de même contenance est de marque Volvic, et a été puisée à... Volvic,
bien connu pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/l d'ions
calcium, 8,0 mg/l d'ions magnésium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ions
nitrates. Elle contient également des particules de silice. Son code barre est
3057640117008.

PS : Volvic est dans le Puy-de-Dôme...

3. Exercice 3
Il s'agit de structurer, sous la forme d'un fichier XML, le texte suivant :

1 Proposé par A BENDAOUD


Il existe diverses variétés de nuages. La plupart de ceux dont nous allons parler ne
produit aucun "hydrométéore", sauf le cumulonimbus, qui est accompagné d'averses
(parfois sous la forme de neige, de grésil ou de grêle).
L'altocumulus et le cirrocumulus partagent les mêmes "espèces" : lenticularis,
stratiformis, castellanus et flocus. On retrouve ces deux espèces également chez le
cirrus, ainsi que les espèces spissatus, uncinus et fibratus. Les espèces stratiformis,
lenticularis et castellanus sont quant à elles partagées également avec les strato-
cumulus.
Ces derniers peuvent se traîner au ras du sol et monter à 2000m, mais certains nuages
ont une altitude minimale à peine plus élevée, puisqu'elle n'est que de 200m pour les
cumulus, et de 300m pour les cumulonimbus. Il est vrai que ces derniers compensent en
montant jusqu'à une altitude maximale de 18000m, soit plus haut encore que les cirrus,
qui plafonnent à 12000m. L'altitude minimale de ces derniers coïncide avec la fin de la
présence possible des altocumulus, à 6000m. Et c'est autour de cette zone, entre 5000
et 7000m, que se trouvent les cirrocumulus. L'altitude minimale des altocumulus est de
2000m, soit quatre fois moins que l'altitude maximale des cumulus.
Ces pauvres cumulus ne sont pas favorisés en nom d'espèces, puisqu'ils se trouvent
affligés de noms tels que fractus, mediocris, humilis et congestus... alors que les
cumulonimbus ont des espèces aux noms plus... capillaires tels que calvus, capillatus.
Les très gros cumulonimbus sont appelés mammatus.

4. Exercice 4
Rédiger une DTD pour une bibliographie. Cette bibliographie :

 contient des livres et des articles ;


 les informations nécessaires pour un livre sont :
o son titre général ;
o les noms des auteurs ;
o ses tomes et pour chaque tome, leur nombre de pages ;
o des informations générales sur son édition comme par exemple le nom de
l'éditeur, le lieu d'édition, le lieu d'impression, son numéro ISBN ;
 les informations nécessaires pour un article sont :
o son titre ;
o les noms des auteurs ;
o ses références de publication : nom du journal, numéro des pages, année
de publication et numéro du journal
 on réservera aussi un champ optionnel pour un avis personnel.

5. Exercice 5
Ecrire votre CV XML en respectant la DTD suivante :
<!ELEMENT cv (titre, cvnom, etatcivil, formations, connaissances,
professionnel)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT cvnom (#PCDATA)>
<!ELEMENT etatcivil
(nom, prenom, naissance, situation, adresse?, code_postal?, ville?, pays?,
telephone?, email?,caracteristiques?)>
<!ELEMENT caracteristiques (caracteristique+)>
<!ELEMENT formations (formation+)>
<!ELEMENT connaissances (technique*, langue*)>
<!ELEMENT professionnel (experience+)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT naissance (#PCDATA)>

2 Proposé par A BENDAOUD


<!ELEMENT situation (#PCDATA)>
<!ELEMENT adresse (#PCDATA)>
<!ELEMENT code_postal (#PCDATA)>
<!ELEMENT ville (#PCDATA)>
<!ELEMENT pays (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT caracteristique (#PCDATA)>
<!ATTLIST caracteristique
type CDATA #REQUIRED>
<!ELEMENT formation EMPTY>
<!ATTLIST formation
date-iso CDATA #REQUIRED
date CDATA #REQUIRED
datefin CDATA #IMPLIED
intitule CDATA #REQUIRED
description CDATA #IMPLIED>
<!ELEMENT technique EMPTY>
<!ATTLIST technique
type (0 | 1 | 2| 3 | 4 | 5) #REQUIRED
nom CDATA #REQUIRED
description CDATA #IMPLIED>
<!ELEMENT langue EMPTY>
<!ATTLIST langue
nom CDATA #REQUIRED
niveau CDATA #REQUIRED>
<!ELEMENT experience (missions, environnement)>
<!ATTLIST experience
date-iso CDATA #REQUIRED
date CDATA #REQUIRED
datefin CDATA #IMPLIED
client CDATA #IMPLIED
entreprise CDATA #REQUIRED
fonction CDATA #REQUIRED>
<!ELEMENT missions (mission+)>
<!ELEMENT environnement (technique+)>
<!ELEMENT mission (#PCDATA)>
<!ELEMENT personnel (activite*)>
<!ELEMENT activite (#PCDATA)>
<!ATTLIST activite
type CDATA #REQUIRED
nom CDATA #REQUIRED
description CDATA #IMPLIED>

6. Exercice 6
Ecrire la DTD qui permet de valider l’exemple suivant :

 qu'une liste de films LFILMS contient des films tout en pouvant être
éventuellement vide,
 qu'un film contient un titre et au moins un acteur (dans cet ordre),
 qu'un acteur et un titre sont des chaines de caractères

7. Exercice 7
Etablir la DTD du document suivant, sachant que l’élément fleuriste est optionnel et qu’il
contient nécessairement soit un élément ville soit un élément lieu.

<composition>

3 Proposé par A BENDAOUD


<auteur>Floristore</auteur>
<date_de_creation>29/02/2001</date_de_creation>
<fleuriste>
<ville>Paris</ville>
</fleuriste>
<composants>
<vase>
<matiere>Porcelaine</matiere>
<taille>50x70 cm</taille>
</vase>
<fleurs>
<nature>Europeenne</nature>
<item>Tulipe</item>
<item>glaieul</item>
<item>Marguerite</item>
</fleurs>
</composants>
</composition>

8. Exercice 8
Créer le plus petit document xml possible à partir de la dtd suivante

<!DOCTYPE aa
[
<!ELEMENT aa (aa1,aa2?)>
<!ELEMENT aa1 (#PCDATA)>
<!ELEMENT aa2 (#PCDATA)>
]>

9. Exercice 9
Etablir la DTD et le document XML qui permettent d’avoir un élément racine
aa contenant un élément aa1 suivi soit d’un élément aa2, soit de un ou
plusieurs éléments aa3.

10. Exercice 10
Créer la DTD coppespondant au fichier XML suivant :
<?xml version="1.0"?>
<!DOCTYPE compactdiscs SYSTEM "cds.dtd">
<compactdiscs>
<compactdisc>
<artist type="individuel">Charles Aznavour</artist>
<title numberoftracks="4">Je m’voyais deja</title>
<tracks>
<track> Je m’voyais deja </track>
<track>Les plaisirs demodes</track>
<track>Les comediens</track>
<track>La mamma</track>

4 Proposé par A BENDAOUD


</tracks>
<price>189 FF</price>
</compactdisc>
<compactdisc>
<artist type="groupe">Les beatles</artist>
<title numberoftracks="5">Yellow submarine</title>
<tracks>
<track>Yellow submarine </track>
<track>Michele</track>
<track>Let it be</track>
<track>Just you need</track>
<track>Hard day’s night</track>
</tracks>
<price>79 FF</price>
</compactdisc>
</compactdiscs>

11. Exercice 11
Soit le fichier XML suivant :
<?xml version="1.0" encoding="windows-1252"?>
<telephone>
<portable>
<nom>Sony Ericsson Z520i</nom>
<poids>94 g</poids>
<dimension>46*83*24mm</dimension>
<autonomie_veille>400 h d‘autonomie en veille </autonomie_veille>
<points_forts>caméra vidéo intégré + quadri-bandes </points_forts>
<prix>2640 DH</prix>
</portable>
<portable>
<nom>Nokia E50</nom>
<poids>104 g</poids>
<dimension>113*43,5*15,5mm</dimension>
<autonomie_veille>215 h d‘autonomie en veille </autonomie_veille>
<points_forts>appareil photo intégré + enregistreur vidéo</points_forts>

<prix>2640 DH</prix>
</portable>
</telephone>

Créer une feuille de style CSS permettant de produire la page HTML suivante :

5 Proposé par A BENDAOUD


12. Exercice 12
Créer le fichier XML suivant :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<recette>
<entete>
<ville>Marrakech </ville>
<titre> Madfouna</titre>
<remarque>Pour 8 personnes</remarque>
</entete>
<ingredient>
<item>1 kg de farine de blé ou farine force </item>
<item>1,5 kg de filet de bŒuf </item>
<item>0,1 kg de graisse </item>
<item>2 gros oignons </item>
<item>0,1gr d'amandes </item>
<item> Sel, poivre, paprika </item>
<item>4 Œufs durs </item>
<item>1 botte du persil et coriandre </item>
<item>0,1 l d'huile d'olive de préférence </item>
</ingredient>
<procedure>
préparation de la pâte:préparation de la pate à pain moulle et laisser reposer.
préparation de la farce : Couper le filet en dés très petits, et incorporer les épices,
les oignons et fines herbes hachis, verser dessus un filet d'huile d'olive, malaxer.
Emonder les amandes et écailler les Œufs durs et les couper en tranches. Préparer le
pain rond de grande dimension sur une plaque à four, y disposer la farce en
l'étalant sur toute la surface, décorer avec les amandes et les tranches d'Œufs
et des tranches de graisse. Couvrir le tout avec un autre pain fin de la même
dimension, plier les bords.
Cuire dans un four à pain à température normale pendant 30 minutes. Dresser
sur un plat à taos, servir très chaud avec du thé à la menthe.
</procedure>
</recette>

Créer une feuille de style XSL permettant à partir de cette fiche recette de produire une
page HTML qui :
• a pour titre le contenu de la balise titre ;

6 Proposé par A BENDAOUD


• commence par un titre <h1> ayant comme contenu le contenu de l'élément ville
• affiche par un titre <h2>Recette : le contenu de la balise titre ;
• affiche ensuite le mot Remarque : puis le contenu de l'élément remarque ;
• affiche Procédure en niveau <h3> ;
• dans un paragraphe, présente la procédure à suivre.

13. TP de synthèse
Document XML ( F1.xml )

<?xml version="1.0" encoding="ISO-8859-1"?>


<?xml-stylesheet type="text/css" href="F1.css"?>

<HistoireFormule1>
<F1>
<Annee>1990
</Annee>
<Champion>
Ayrton Senna sur McLaren Honda, bat Alain Prost, pourtant passé chez Ferrari
</Champion>
<Monoplace>McLaren MP4/5B
</Monoplace>
<Legende>
<Photo>
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='McLaren MP4_5B.jpg' ALIGN='LEFT' />
</Photo>
<Texte>
Structure monocoque, éléments de carrosserie en matériaux composites
moteur Honda 10 cylindres en V à 72°
Cylindrée 3498 cm3, alésage 92 mm
course 52,5 mm
alimentation par injection
Puissance 690 ch à 13000 tr/mn.
Boîte de vitesse à 6 rapports
Poids 500 Kg
Vitesse maximale 325 km/h
</Texte>
</Legende>
</F1>
<F1>
<Annee>1994
</Annee>
<Champion>
Michael Schumacher offre à Ford le titre "pilote",
mais c'est Renault, malgré le décès de Ayrton Senna,

7 Proposé par A BENDAOUD


qui coiffe la couronne "constructeur".
</Champion>
<Monoplace>
Benetton B194
</Monoplace>
<Legende>
<Photo>
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='benetton_b194.jpg' ALIGN='LEFT' />
</Photo>
<Texte> Structure monocoque, éléments de carrosserie en matériaux
composites
moteur Ford Zetec à 8 cylindres en V à 75°,
cylindrée 3494 cm3, alésage et course non communiqués, alimentation par
injection
Puissance 730 ch à 14500 tr/mn.
Boîte de vitesse semi-automatique à 6 rapports
Poids 505 Kg
Vitesse maximale 323 km/h
</Texte>
</Legende>
</F1>
<F1>
<Annee>1995
</Annee>
<Champion>
Michael Schumacher double la mise, toujours chez Benetton,
mais cette fois avec le moteur Renault, qui glane son quatrième
titre "constructeur".
</Champion>
<Monoplace>Benetton B195
</Monoplace>
<Legende>
<Photo>
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='benetton_b195.jpg' ALIGN='LEFT' />
</Photo>
<Texte>
Structure monocoque, éléments de carrosserie en matériaux composites
moteur Renault 10 cylindres en V
Cylindrée 3500 cm3, alésage et course non communiqués
alimentation par injection
Puissance 740 ch à 14300 tr/mn.
Boîte de vitesse semi-automatique à 6 rapports

8 Proposé par A BENDAOUD


Poids 505 Kg
Vitesse maximale 331 km/h
</Texte>
</Legende>
</F1>
<F1>
<Annee>1999
</Annee>
<Champion>
Mika Hakkinen rejoint Michael Schumacher dans le club très fermé des doubles
champions du monde actifs
</Champion>
<Monoplace>
McLaren MP4/14
</Monoplace>
<Legende>
<Photo>
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='McLaren MP4_14.jpg' ALIGN='LEFT' />
</Photo>
<Texte>
Structure monocoque en carbone et nid d'abeille d'aluminium
moteur Mercedes 10 cylindres à 4 a.c.t.,
Puissance non communiquée mais supérieure à 800 ch à 17000 tr/mn.
Boîte de vitesse semi-automatique à 6 rapports
Poids 600 Kg </Texte> </Legende> </F1> </HistoireFormule1>

9 Proposé par A BENDAOUD


Feuille de style ( F1.css )

HistoireFormule1
{
BACKGROUND-IMAGE: url(F1_fond.gif)
}
HistoireFormule1,Annee,Champion,Monoplace,Legende
{
DISPLAY: block;
}
Annee
{
FONT-SIZE: 200%;
COLOR: red
}
Champion
{
COLOR: maroon;
FONT-SIZE: 130%
}
Monoplace
{
FONT-SIZE: 160%
}
Texte
{
margin-right:20%

Legende
{
padding-bottom: 20pt
background-color: #999999;
margin: 20px 50px 0px;
padding: 0px 10px 60px;
border-top: 20px groove #555555;
border-left: 10px double #ff0000;
border-right: 10px double #ff0000;
border-bottom: 15px ridge #555555;
FONT-SIZE: 120%
}

<HTML>
<HEAD>

10 Proposé par A BENDAOUD


<!-- ILOT DE DONNEES XML ( Data Island XML ) -->
<xml id="xmlDoc" SRC="F1.xml"></xml>

<SCRIPT LANGUAGE="VbScript">

sub AfficheXML()
alert(xmlDoc.XMLDocument.xml)
end sub

sub ViderTableau()
oUneTable=document.getElementsByName("Tableau")
oUneTable.innerHTML= ""
end sub

sub RemplirTableau()
xmlDoc.recordset.movefirst
htmlTableau="<Table border='1'><tr>"
while not(xmldoc.recordset.eof)
htmlTableau=htmlTableau + "<td>" +
xmlDoc.recordset("Annee").value + "</td>"
htmlTableau=htmlTableau + "<td>" +
xmlDoc.recordset("Champion").value + "</td>"
htmlTableau=htmlTableau + "<td>" +
xmlDoc.recordset("Monoplace").value + "</td>"
htmlTableau=htmlTableau + "</tr>"
xmlDoc.recordset.movenext
wend
'On accroche la branche du D.O.M "Tableau"
oUneTable=document.getElementsByName("Tableau")
oUneTable.innerHTML= htmlTableau

' !!! Autre syntaxe !!!


'document.all.item("Tableau").innerHTML= "<Table
border='1'><tr><td>xxx</td><td>yyy</td></tr></Table>"
end sub

</SCRIPT>

</HEAD>

<BODY>
<hr>
<center><h2>FORMULES 1</h2></center>
<hr>
<br>

11 Proposé par A BENDAOUD


<br>
<DIV ID="Tableau">
</DIV>
<br>
<br>
<input type="button" value="Voir l'ilot de données" onclick="AfficheXML()">
<input type="button" value="Remplir un tableau" onclick="RemplirTableau()">
<input type="button" value="Vider le tableau" onclick="ViderTableau()" >

<br>
<br>
</BODY>
</HTML>

B. Correction des exercices XML

1. Exercice 1
a. Correct
b. Incorrect (apostrophe)
c. Correct
d. Incorrect (présence d'un espace)
e. Correct
f. Correct
g. Incorrect (à cause des /)
h. Correct
i. Correct
j. Incorrect (un nom XML ne commence pas par un chiffre)

2. Exercice 2
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <cave>
- <bouteille>
<marque>Cristaline</marque>
- <composition>
<ion type="positif">calcium 71mg/l</ion>
<ion type="positif">magnésium 5,5mg/l</ion>
<ion type="negatif">chlorure 20mg/l</ion>
<ion type="negatif">nitrate 1mg/l</ion>
<autre type="metal">fer</autre>
</composition>
- <source>
<ville>St-Cyr la Source</ville>
<departement>Loiret</departement>
</source>

12 Proposé par A BENDAOUD


<code_barre>3274080005003</code_barre>
<contenance unit="cl">150</contenance>
<ph>7,45</ph>
</bouteille>
- <bouteille>
<marque>Cristaline</marque>
- <composition>
<ion type="positif">calcium 98mg/l</ion>
<ion type="positif">magnésium 4mg/l</ion>
<ion type="negatif">chlorure 3,6mg/l</ion>
<ion type="negatif">nitrate 2mg/l</ion>
</composition>
- <source>
<ville>Aurèle</ville>
<departement>Alpes Maritimes</departement>
</source>
<code_barre>3268840001008</code_barre>
<contenance unit="cl">50</contenance>
<ph>7,4</ph>
</bouteille>
- <bouteille>
<marque>Volvic</marque>
- <composition>
<ion type="positif">calcium 11,5mg/l</ion>
<ion type="positif">magnésium 8mg/l</ion>
<ion type="negatif">chlorure 13,5mg/l</ion>
<ion type="negatif">nitrate 6,3mg/l</ion>
</composition>
- <source>
<ville>Volvic</ville>
<departement>Puy-de-Dôme</departement>
</source>
<code_barre>3057640117008</code_barre>
<contenance unit="cl">50</contenance>
<ph>7</ph>
</bouteille>
</cave>

3. Exercice 3
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <nuages>
- <nuage>
- <nom>
altocumulus
<espece>lenticularis</espece>
<espece>stratiformis</espece>
<espece>castellanus</espece>
<espece>flocus</espece>
</nom>
<altitude max="6000" min="2000" />
<hydrometeores>Aucun.</hydrometeores>

13 Proposé par A BENDAOUD


</nuage>
- <nuage>
- <nom>
cirrus
<espece>flocus</espece>
<espece>castellanus</espece>
<espece>spissatus</espece>
<espece>uncinus</espece>
<espece>fibratus</espece>
</nom>
<altitude max="12000" min="6000" />
<hydrometeores>Aucun.</hydrometeores>
</nuage>
- <nuage>
- <nom>
cirrocumulus
<espece>lenticularis</espece>
<espece>stratiformis</espece>
<espece>flocus</espece>
<espece>castellanus</espece>
</nom>
<altitude max="7000" min="5000" />
<hydrometeores>Aucun.</hydrometeores>
</nuage>
- <nuage>
- <nom>
cumulus
<espece>fractus</espece>
<espece>humilis</espece>
<espece>mediocris</espece>
<espece>congestus</espece>
</nom>
<altitude max="8000" min="200" />
<hydrometeores>Aucun en général.</hydrometeores>
</nuage>
- <nuage>
- <nom>
strato-cumulus
<espece>stratiformis</espece>
<espece>lenticularis</espece>
<espece>castellanus</espece>
</nom>
<altitude max="2000" min="0" />
<hydrometeores>Aucun.</hydrometeores>
</nuage>
- <nuage>
- <nom>
cumulonimbus
<espece>calvus</espece>
<espece>capillatus</espece>
<espece>mammatus</espece>
</nom>
<altitude max="18000" min="300" />

14 Proposé par A BENDAOUD


<hydrometeores>Averses (parfois de neige, de grésil ou de
grêle).</hydrometeores>
</nuage>
</nuages>

4. Exercice 4
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!ELEMENT biblio (livre|article)*>

<!ELEMENT livre (titre, auteur+, tome*, edition, avis?)>

<!ELEMENT titre (#PCDATA)>

<!ELEMENT auteur (#PCDATA)>

<!ELEMENT tome (nb_pages)>

<!ELEMENT nb_pages (#PCDATA)>

<!ELEMENT edition (editeur, lieu_edition, lieu_impression, isbn)>

<!ELEMENT editeur (#PCDATA)>

<!ELEMENT lieu_edition (#PCDATA)>

<!ELEMENT lieu_impression (#PCDATA)>

<!ELEMENT isbn (#PCDATA)>

<!ELEMENT avis (#PCDATA)>

<!ELEMENT article (titre, auteur+, journal)>

<!ELEMENT journal (nom_journal, page, num_journal, annee)>

<!ELEMENT nom_journal (#PCDATA)>

<!ELEMENT page (#PCDATA)>

<!ELEMENT num_journal (#PCDATA)>

<!ELEMENT annee (#PCDATA)>

5. Exercice 5
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<!DOCTYPE cv (View Source for full doctype...)>
- <cv>
<titre>Monsieur</titre>

15 Proposé par A BENDAOUD


<cvnom>Michel RIVEILL</cvnom>
- <etatcivil>
<nom>RIVEILL</nom>
<prenom>Michel</prenom>
<naissance>ca c'est secret</naissance>
<situation>tout le monde s'en moque</situation>
</etatcivil>
- <formations>
<formation date-iso="1900-01-01" date="Aujourd'hui" intitule="Ecole maternelle" />
</formations>
<connaissances />
- <professionnel>
- <experience date-iso="2000-09-01" date="Aujourd'hui" entreprise="UNS"
fonction="Professeur">
- <missions>
<mission>recherche</mission>
</missions>
- <environnement>
<technique type="5" nom="EPST" />
</environnement>
</experience>
</professionnel>
</cv>

6. Exercice 6
1. <!ELEMENT lfilms (film*)>
2. <!ELEMENT film (titre, acteur+)>
3. <!ELEMENT acteur (#PCDATA)>
4. <!ELEMENT titre (#PCDATA)>

7. Exercice 7
<!-- Ici commence la DTD d'une composition florale -->
<!DOCTYPE composition
[
<!ELEMENT composition (auteur,date_de_creation,fleuriste?,composants)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT date_de_creation (#PCDATA)>
<!ELEMENT fleuriste (lieu?,ville?)>
<!ELEMENT lieu (#PCDATA)>
<!ELEMENT ville (#PCDATA)>
<!ELEMENT composants (vase,fleurs)>
<!ELEMENT vase (matiere,taille)>
<!ELEMENT matiere (#PCDATA)>
<!ELEMENT taille (#PCDATA)>
<!ELEMENT fleurs (nature,item+)>
<!ELEMENT nature (#PCDATA)>
<!ELEMENT item (#PCDATA)>
]>

16 Proposé par A BENDAOUD


8. Exercice 8
<aa>
<aa1></aa1>
</aa>

9. Exercice 9
<!DOCTYPE aa
[
<!ELEMENT aa (aa1 , ( aa2 | aa3+ ))>
<!ELEMENT aa1 (#PCDATA)>
<!ELEMENT aa2 (#PCDATA)>
<!ELEMENT aa3 (#PCDATA)>

]>

<!-- Un exemple possible -->


<aa>
<aa1></aa1>
<aa3></aa3>
<aa3></aa3>
</aa>

10. Exercice 10
<!ELEMENT compactdiscs (compactdisc*)>
<!ELEMENT compactdisc (artist, title, tracks, price)>
<!ENTITY % Type "individuel | groupe">
<!ELEMENT artist (#PCDATA)>
<!ATTLIST artist type (%Type;) #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ATTLIST title numberoftracks CDATA #REQUIRED>
<!ELEMENT tracks (track*)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT track (#PCDATA)>

11. Exercice 11
telephone , portable{}
nom {
display: block;
width: 250px;
font-size: 16pt ;
font-weight: bold;
background-color: teal;
color: white;
padding-left: 10px;

17 Proposé par A BENDAOUD


padding-right:10px;
}
poids {
display: block;
font-size: 11pt;
padding-left: 10px;
}

dimension {
display: block;
font-size: 11pt ;
padding-left: 10px;
}
autonomie_veille {
display: block;
font-size: 11pt ;
padding-left: 10px;
}
points_forts {
display: block;
font-size: 12pt;
padding-left: 10px;
}
prix {
display: block;
font-size: 12pt;
color: red ;
font-weight: bold;
font-style:italic;
padding-left: 10px;
}

12. Exercice 12
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="html4.01" encoding="ISO-8859-1" doctype-
public="-//W3C//DTD
HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd"/>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="//titre"/></title>
</head>
<body>
<h1><xsl:value-of select="//ville"/></h1>
<h2>Recette:<xsl:value-of select="//titre"/></h2>
<p><b>Remarque:</b> <xsl:value-of select="//remarque"/></p>
<h3>Procédure</h3>

18 Proposé par A BENDAOUD


<p><xsl:value-of select="//procedure"/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet

19 Proposé par A BENDAOUD

You might also like