Professional Documents
Culture Documents
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.
3. Exercice 3
Il s'agit de structurer, sous la forme d'un fichier XML, le texte suivant :
4. Exercice 4
Rédiger une DTD pour une bibliographie. Cette bibliographie :
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)>
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>
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>
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 :
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 ;
13. TP de synthèse
Document XML ( F1.xml )
<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,
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>
<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
</SCRIPT>
</HEAD>
<BODY>
<hr>
<center><h2>FORMULES 1</h2></center>
<hr>
<br>
<br>
<br>
</BODY>
</HTML>
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>
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>
4. Exercice 4
<?xml version="1.0" encoding="ISO-8859-1" ?>
5. Exercice 5
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<!DOCTYPE cv (View Source for full doctype...)>
- <cv>
<titre>Monsieur</titre>
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)>
]>
9. Exercice 9
<!DOCTYPE aa
[
<!ELEMENT aa (aa1 , ( aa2 | aa3+ ))>
<!ELEMENT aa1 (#PCDATA)>
<!ELEMENT aa2 (#PCDATA)>
<!ELEMENT aa3 (#PCDATA)>
]>
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;
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>