Vous êtes sur la page 1sur 3

Exercice 01:

Voici la DTD pour le format XML de stockage d'informations pour un site


d'actualités :

<!ELEMENT actualites (information*)>


<!ELEMENT sport (information*)>
<!ELEMENT bourse (information*)>
<!ELEMENT media (information*)>
<!ELEMENT information (titre, langue, date, photo?, url*)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT langue (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT photo (#PCDATA)>
<!ELEMENT url (#PCDATA | phrase)*>
<!ELEMENT phrase (#PCDATA)>

<!ATTLIST information
theme (actualites | sport | bourse | media) #REQUIRED
id ID #REQUIRED>
<!ATTLIST url
href CDATA #REQUIRED>
<!ATTLIST phrase
lang (fr | en) #REQUIRED>

Et voici un exemple de document XML respectant cette DTD :

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


<!DOCTYPE actualites SYSTEM "actualites.dtd">
<actualites>
<information theme="actualites" id="1">
<titre>Titre de l'information en français</titre>
<langue>fr</langue>
<date>2023-05-11</date>
<photo>http://example.com/photo.jpg</photo>
<url href="http://example.com/fr/1">
<phrase lang="fr">Phrase résumant le contenu de la page</phrase>
</url>
</information>
<information theme="sport" id="2">
<titre>Titre de l'information en anglais</titre>
<langue>en</langue>
<date>2023-05-10</date>
<url href="http://example.com/en/1">
<phrase lang="en">Phrase summarizing the content of the page</phrase>
</url>
</information>
</actualites>

Exercice 02

Voici une DTD qui décrit comment représenter des médecins dans un format XML, en
autorisant un contenu mixte pour la biographie :

<!ELEMENT medecin (nom, prenom, photo?, grade?, site_web?, biographie)>


<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT photo (#PCDATA)>
<!ELEMENT grade (#PCDATA)>
<!ELEMENT site_web (#PCDATA)>
<!ELEMENT biographie (#PCDATA | reference | titre | important)*>
<!ELEMENT reference (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT important (#PCDATA)>

<!ATTLIST medecin
id ID #REQUIRED>

Explications :

L'élément medecin contient obligatoirement les éléments nom, prenom et biographie,


ainsi que des éléments optionnels pour la photo, le grade et le site_web.
L'élément biographie est un élément de contenu mixte, qui peut contenir du texte
(#PCDATA), ainsi que les éléments reference, titre et important.
Les éléments reference, titre et important sont des éléments pour identifier
respectivement une référence à un autre médecin, un titre de publication
scientifique, ou une portion de phrase plus importante que les autres.
Chaque medecin a un attribut obligatoire id pour l'identifier de manière unique.

Exemple de document XML respectant cette DTD :

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


<!DOCTYPE medecins SYSTEM "medecins.dtd">
<medecins>
<medecin id="1">
<nom>Dupont</nom>
<prenom>Paul</prenom>
<photo>http://example.com/photo.jpg</photo>
<grade>Professeur</grade>
<site_web>http://example.com/medecin/paul-dupont</site_web>
<biographie>Le Dr. Dupont a travaillé avec le Dr. <reference
id="2">Martin</reference> sur le traitement de la migraine. Il a également publié
un article intitulé <titre>"Nouvelles approches pour le traitement de la douleur
chronique".</titre> Il est considéré comme un expert dans son domaine.</biographie>
</medecin>
<medecin id="2">
<nom>Martin</nom>
<prenom>Lucie</prenom>
<biographie>Le Dr. Martin a travaillé avec le Dr. <reference
id="1">Dupont</reference> sur le traitement de la migraine. Elle est actuellement
en train de mener des recherches sur le traitement des maladies
auto-immunes.</biographie>
</medecin>
</medecins>

Exercice 03:

Voici une proposition de DTD pour représenter des séries d'images médicales :
<!ELEMENT series (image+)>
<!ATTLIST series titre CDATA #REQUIRED>

<!ELEMENT image (auteur, medecin, rapport, date)>


<!ATTLIST image numero CDATA #IMPLIED>

<!ELEMENT auteur (nom, prenom)>


<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>

<!ELEMENT medecin (#PCDATA)>

<!ELEMENT rapport (#PCDATA)>

<!ELEMENT date (#PCDATA)>


<!ATTLIST date format CDATA #REQUIRED>

Explications :

L'élément racine est series, qui contient au moins une image.


series a un attribut titre, qui est une chaîne de caractères (CDATA).
Chaque image contient un auteur, un medecin, un rapport et une date.
image a un attribut optionnel numero, qui indique le numéro de l'image dans la
série (CDATA).
auteur est un élément composé de deux sous-éléments : nom et prenom.
nom et prenom contiennent respectivement le nom et le prénom de l'auteur (#PCDATA).
medecin contient le nom du médecin traitant (#PCDATA).
rapport contient le rapport associé à l'image (#PCDATA).
date contient la date de l'imagerie (#PCDATA) et a un attribut format qui précise
le format de la date (CDATA).

Voici un exemple de document XML respectant cette DTD :

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


<!DOCTYPE series SYSTEM "series.dtd">
<series titre="Série d'images médicales">
<image numero="1">
<auteur>
<nom>Dupont</nom>
<prenom>Jean</prenom>
</auteur>
<medecin>Dr. Martin</medecin>
<rapport>Image du genou droit</rapport>
<date format="yyyy-mm-dd">2023-05-10</date>
</image>
<image numero="2">
<auteur>
<nom>Durand</nom>
<prenom>Marie</prenom>
</auteur>
<medecin>Dr. Smith</medecin>
<rapport>IRM de la colonne vertébrale</rapport>
<date format="yyyy-mm-dd">2023-05-11</date>
</image>
</series>

Vous aimerez peut-être aussi