Vous êtes sur la page 1sur 10

Université de Lubumbashi 1 Bac 3 Informatique

Programmation Web 2

TP1

Exercice 1
XML permet de structurer une information. Il est donc nécessaire, avant d'envisager d'utiliser
ce format, de se familiariser avec cette structuration.

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...

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 2 Bac 3 Informatique

Exercice 2
Cet exercice est du même type que l'exercice précédent. Il s'agit de structurer, sous la forme
d'un fichier XML, le texte suivant :

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.

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

 contient des livres et des articles ;


 les informations nécessaires pour un livre sont :

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 3 Bac 3 Informatique

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.

Tester cette DTD avec un fichier XML que l'on écrira ex-nihilo et validera.

Exercice 4
<!ELEMENT répertoire (catégorie*)>
<!ELEMENT catégorie (contact*) >
<!ATTLIST catégorie nom ID #REQUIRED>
<!ELEMENT contact (bureau, maison?) >
<!ATTLIST contact
nom ID #REQUIRED
prénom CDATA #REQUIRED >
<!ELEMENT bureau EMPTY >
<!ATTLIST bureau
téléphone CDATA #REQUIRED
adresse CDATA #REQUIRED
courriel CDATA #IMPLIED>
<!ELEMENT maison EMPTY >
<!ATTLIST maison
téléphone CDATA #REQUIRED
adresse CDATA #REQUIRED
courriel CDATA #IMPLIED>

Écrire un document XML valide (conforme à la DTD ci-dessus).

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 4 Bac 3 Informatique

Exercice 5

Soit la DTD suivante : ouvrage_se.dtd :

<!ELEMENT ouvrage (livre | rapport | article)* >


<!ELEMENT livre (titre, auteur+, chapitre+) >
<!ATTLIST livre langue CDATA #REQUIRED nbpage CDATA #REQUIRED>
<!ELEMENT chapitre (section)+ >
<!ELEMENT titre (#PCDATA) >
<!ELEMENT nbpage (#PCDATA) >
<!ELEMENT auteur (nom, prenom, pays?) >
<!ELEMENT nom ( #PCDATA)>
<!ELEMENT prenom (#PCDATA) >
<!ELEMENT pays (#PCDATA) >
<!ELEMENT section (para)+ >
<!ELEMENT para (#PCDATA) >
<!ELEMENT rapport (titre, auteur+, chapitre+) >
<!ATTLIST rapport langue CDATA #REQUIRED nbpage CDATA #REQUIRED>
<!ELEMENT article (titre, auteur+, section+)>
<!ATTLIST article langue CDATA #REQUIRED nbpage CDATA #REQUIRED>

Soit le document suivant : ouvrage_1.xml

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE ouvrage SYSTEM "ouvrage.dtd">
<ouvrage>
<article langue="français" nbpage="5">
<titre>Evolution du monde</titre>
<auteur>
<nom>Martin</nom><prenom>Arthur</prenom><pays>France</pays>
</auteur>
<section><para>tout a été dit</para></section>
</article>
<rapport langue="français" nbpage="20">
<titre>Xrapport</titre>
<auteur>
<nom>Xnom</nom><prenom>Xprenom</prenom><pays>Xpays</pays>
</auteur>
<chapitre>
<section><para>du texte</para></section>

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 5 Bac 3 Informatique

</chapitre>
</rapport>
</ouvrage>

1) Vérifier que le document est bien formé et valide.

2) Modifier la DTD en utilisant des entités paramètres pour modéliser les contenus et les
attributs identiques.

3) Compléter le document ouvrage_1.xml en y ajoutant le fragment suivant mais en faisant en


sorte que le document obtenu reste valide (redéfinir en interne certaines parties de la DTD
externe).

<article langue="français">
<titre>Histoire du monde</titre>
<auteur>
<nom>Dupond</nom><prenom>Jean</prenom><pays>France</pays>
</auteur>
<annee>2000</annee>
<section><para>texte intégral</para></section>
</article>

Exercice 6

Soit la DTD suivante qui permet d'écrire des documents répertoires d'adresses :

<!ELEMENT répertoire (catégorie*)>


<!ELEMENT catégorie (contact*) >
<!ATTLIST catégorie nom ID #REQUIRED>
<!ELEMENT contact (bureau, maison?) >
<!ATTLIST contact
nom ID #REQUIRED
prénom CDATA #REQUIRED >
<!ELEMENT bureau EMPTY >
<!ATTLIST bureau
téléphone CDATA #REQUIRED
adresse CDATA #REQUIRED
courriel CDATA #IMPLIED>
<!ELEMENT maison EMPTY >
<!ATTLIST maison
téléphone CDATA #REQUIRED
adresse CDATA #REQUIRED
courriel CDATA #IMPLIED>

Soit le document ci-dessous. Il présente des erreurs de syntaxe et des erreurs de validité.
01 :<?XML version="1.0" encodage="UTF-8"?>

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 6 Bac 3 Informatique

02 :<!DOCTYPE répertoire SYSTEM "repertoire.dtd">


03 :<repertoire>
04 : <catégorie nom="1-perso" >
05 : <contact nom="desvignes" prénom="nicole">
06 : <bureau téléphone="0234542312" adresse="2 rue de l'espoir 44566 Chignole"/>
07 : <maison téléphone="0870754566" adresse="2 rue de l'espoir 44566 Chignole"/>
08 : </contact>
09 : <contact nom="fonteau" prénom="jérémie">
10 : <maison téléphone="0445879044" adresse="6bis avenue Jean Charcot 65322 St Mazan"/>
11 : <bureau téléphone="0465345622" adresse="54 bd de la liberté 65444 jalibert">
12 : Batiment 6, Porte 5, Bureau 304
13 : </bureau></contact>
14 : </catégorie>
15 : <catégorie nom="2-travail">
16 : <contact nom="martin" prénom="paul">
17 : <bureau téléphone=0245664442 adresse="5 rue de l'épine 45665 Astorie"
18 : courriel="paul.martin@gmail.com" fax="0245664412"/>
19 : </contact>
20 : <contact nom="batiset" prénom="raymond">
21 : <maison téléphone="0248666445" adresse="5 rue de l'épine 45665 Astorie"
22 : courriel="rbatisset@free.fr"/>
23 : <contact nom="fonteau" prénom="paul">
24 : <bureau téléphone="0245678966" adresse="34 chemin de la fraise 56789 Ghéno"
25 : email="paul-fonteau@yahoo.fr"/>
26 : <maison téléphone="0256780032" adresse="11 rue du petit plaisir 56888 Trigonet"/>
27 : </contact>
28 : </catégorie>
29 :</repertoire>

1) Rechercher les erreurs. Pour chaque erreur indiquer la ligne où elle se trouve, sa nature
(syntaxe ou validité), la correction à apporter pour que le document soit bien formé et valide.

2) Copier le document ci-dessus dans un éditeur de texte et corriger les erreurs de syntaxe.
Vérifier (éditeur XML, xmllint ou service web) qu'il est bien formé.

3) Ajouter la ligne de déclaration de la DTD chap2_ex6.dtd, ci-dessous, dans le document et


vérifier qu'il n'est pas valide.

<!-- chap02_ex01.dtd -->


<!ELEMENT répertoire (catégorie*)>
<!ELEMENT catégorie (contact*) >
<!ATTLIST catégorie nom ID #REQUIRED>
<!ELEMENT contact (bureau, maison?) >
<!ATTLIST contact
nom ID #REQUIRED
prénom CDATA #REQUIRED >
<!ELEMENT bureau EMPTY >
<!ATTLIST bureau
téléphone CDATA #REQUIRED
adresse CDATA #REQUIRED
courriel CDATA #IMPLIED>
<!ELEMENT maison EMPTY >
<!ATTLIST maison
téléphone CDATA #REQUIRED

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 7 Bac 3 Informatique

adresse CDATA #REQUIRED


courriel CDATA #IMPLIED>

4) Corriger les erreurs de validité et vérifier que le document que vous avez corrigé est bien
formé et valide.

Exercice 7

Soient différentes définitions du même élément projet (on suppose que les éléments tâche et
personne sont définis) :

1. <!ELEMENT projet (tâche | personne)*>


2. <!ELEMENT projet (tâche* | personne*)>
3. <!ELEMENT projet (tâche+, personne*)>
4. <!ELEMENT projet (tâche, personne)*>
5. <!ELEMENT projet (tâche, personne+)*>
6. <!ELEMENT projet (tâche | personne+)*>
7. <!ELEMENT projet (tâche | personne+)>
8. <!ELEMENT projet (tâche? | personne+)>

Pour chaque élément projet donné ci-dessous, donner les numéros des définitions pour
lesquelles il est valide.

<-- exemple A --> <-- exemple E -->


<projet> <projet>
<tâche>xxx</tâche> <tâche>xxx</tâche>
<tâche>xxx</tâche> <personne>yyy</personne>
<personne>yyy</personne> <personne>yyy</personne>
<tâche>xxx</tâche> <personne>yyy</personne>
<personne>yyy</personne> <tâche>xxx</tâche>
</projet> <personne>yyy</personne>
<personne>yyy</personne>
<personne>yyy</personne>
</projet>
<-- exemple B --> <-- exemple F -->
<projet> <projet>
<tâche>xxx</tâche> <tâche>xxx</tâche>
<tâche>xxx</tâche> </projet>
<tâche>xxx</tâche>
<personne>yyy</personne>
<personne>yyy</personne>
</projet>
<-- exemple C --> <-- exemple G -->
<projet> <projet>
<tâche>xxx</tâche> <personne>yyy</personne>
<personne>yyy</personne> <personne>yyy</personne>
<tâche>xxx</tâche> <personne>yyy</personne>
<personne>yyy</personne> </projet>
<tâche>xxx</tâche>
<personne>yyy</personne>
</projet>
<-- exemple D --> <-- exemple H -->
<projet/> <projet>
<personne>yyy</personne>

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 8 Bac 3 Informatique

<personne>yyy</personne>
<tâche>xxx</tâche>
<tâche>xxx</tâche>
</projet>

Exercice 8

Soit la DTD suivante à télécharger math.dtd :

<!-- début de la DTD -->


<!DOCTYPE textemath [
<!-- DTD pour décrire un texte contenant des formules mathématiques -->
<!ELEMENT textemath ((texte | formule)+) >
<!ELEMENT texte (#PCDATA) >
<!ELEMENT formule (valeur|somme|difference|produit|fraction|racine|
puissance) >
<!ELEMENT valeur (#PCDATA)>
<!ELEMENT somme (op1, op2)>
<!ELEMENT difference (op1, op2)>
<!ELEMENT produit (op1, op2)>
<!ELEMENT fraction (op1, op2)>
<!ELEMENT racine (op1)>
<!ATTLIST racine ordre CDATA #IMPLIED>
<!ELEMENT puissance (op1)
<!ATTLIST puissance exposant CDATA #REQUIRED>
<!ELEMENT op1 (valeur|formule)>
<!ELEMENT op2 (valeur|formule)>
]>
<!-- fin de la DTD -->

Écrire un document XML valide (conforme à la DTD ci-dessus) destiné à transmettre l'énoncé
suivant :

Calculer la valeur de l'expression lorsque prend la valeur .

Exercice 9

1) Proposer une DTD pour des documents représentant des scènes géométriques planes
comme celle donnée dans l'exemple ci-contre. Les formes possibles sont tous les polygones à
nombre quelconque de côtés (triangles, rectangles, etc.), ainsi que des cercles. Chaque figure
peut être vide, pleine ou hachurée. Il faut spécifier les recouvrements. Il existe plusieurs
solutions.

2) Appliquer la DTD en écrivant le document XML qui représente la scène donnée ci-contre.

Exercice 10

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 9 Bac 3 Informatique

Un graphe orienté et étiqueté est un objet


mathématique qui permet de modéliser de
nombreuses situations du monde réel (plans de
vols, liaisons ferroviaires, réseaux
informatiques etc.). Il se compose de n
sommets numérotés de 1 à n et d'un certain
nombre d'arcs. Chaque sommet peut être
marqué par une étiquette. Chaque arc est
caractérisé par un sommet origine, un sommet
extrémité ainsi qu'une étiquette qui est souvent
un nombre représentant, par exemple, une
distance ou toute autre information
caractérisant le passage su sommet origine au
sommet extrémité. On donne ci-dessous
l'exemple d'un graphe orienté et étiqueté,
composé de 6 sommets numérotés de 1 à 6.
Les étiquettes des sommets pris par ordre
croissant des numéros sont {G, A, S, A, U, R}.
L'arc ayant pour origine le sommet no 4 et pour
extrémité le sommet no 5 a pour étiquette le
nombre 45.

1) Écrire une DTD destinée à décrire de tels documents.

2) Écrire le document XML décrivant le graphe ci-dessus et conforme à la DTD donnée


précédemment.

3) Écrire un document XML valide décrivant le graphe orienté de votre choix.

Exercice 11

Une entreprise fonctionne avec un certain nombre de personnes et gère un certain nombre de
projets. Une personne possède un nom et un ensemble d'informations personnelles qu'on ne
détaillera pas. Un projet est caractérisé par un nom et un descriptif. Une personne peut
participer à plusieurs projets et un projet est, en général, conduit par plusieurs personnes.

1) Écrire une DTD qui décrit des documents destinés à publier les projets d'une entreprise
ainsi que les personnes qui y travaillent. Connaissant une personne on doit pouvoir connaître
immédiatement les projets auxquels elle participe. Connaissant un projet on doit pouvoir
connaître immédiatement quels sont ses participants. Utiliser à bon escient les attributs de
type ID et IDREF.

2) Écrire un document, valide selon la DTD ci-dessus, et qui représente la situation suivante:

 Jules et Marie travaillent dans le projet de traduction qui consiste à traduire certains
éléments de la documentation de l'entreprise.
 Luc et Marie travaillent dans le projet de construction de corpus qui consiste à
rassembler et à structurer toute la documentation de l'entreprise.

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd


Université de Lubumbashi 10 Bac 3 Informatique

3) Mêmes questions (DTD + document) en utilisant des attributs de type IDREFS au lieu de
IDREF.

Exercice 12

En vous aidant
d'un logiciel de
consultation de
bibliothèque (par
exemple
http://nantilus.uni
v-nantes.fr/)

1) Concevoir une
DTD servant de
modèle pour des
documents XML
destinés à
mémoriser le
fonds
documentaire
d'une bibliothèque
universitaire.

2) Écrire un tel
document réduit à
trois ouvrages.

Pr Dr Saint-Jean DJUNGU saintjean.djungu@unikin.ac.cd

Vous aimerez peut-être aussi