Vous êtes sur la page 1sur 3

Exercice 01:

Voici un exemple de fichier XML avec une DTD associée pour décrire le contenu d'une
bibliothèque et lister tous les livres la composant :

<!DOCTYPE bibliothèque [
<!ELEMENT bibliothèque (livre+)>
<!ELEMENT livre (titre, auteur)>
<!ATTLIST livre genre (fiction|drame|aventure|policier) #REQUIRED>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
]>

<bibliothèque>
<livre genre="fiction">
<titre>Les Misérables</titre>
<auteur>Victor Hugo</auteur>
</livre>
<livre genre="aventure">
<titre>Les Trois Mousquetaires</titre>
<auteur>Alexandre Dumas</auteur>
</livre>
<livre genre="policier">
<titre>Le Chien des Baskerville</titre>
<auteur>Arthur Conan Doyle</auteur>
</livre>
</bibliothèque>

Dans cet exemple, la DTD définit les éléments et les attributs autorisés dans le
fichier XML. La balise <!DOCTYPE> définit la DTD associée.

La balise <bibliothèque> est l'élément racine du document XML. Elle contient une ou
plusieurs balises <livre> qui représentent les livres de la bibliothèque. Chaque
balise <livre> contient un attribut genre qui indique le genre du livre, ainsi que
deux balises <titre> et <auteur> qui contiennent respectivement le titre et
l'auteur du livre.

Dans la DTD, on définit les éléments autorisés pour chaque balise, ainsi que les
attributs et leurs valeurs possibles. Par exemple, la balise <livre> doit
obligatoirement contenir une balise <titre> et une balise <auteur>, et doit avoir
un attribut genre dont la valeur doit être l'un des quatre choix possibles
(fiction, drame, aventure, policier).

Exercice 02:

Voici un exemple de fichier XML avec une DTD associée pour décrire la structure
hospitalo-universitaire pour des unités médicales :

<!DOCTYPE hospital-universitaire [
<!ELEMENT hospital-universitaire (unite+)>
<!ELEMENT unite (chef-unite, corps-medical)>
<!ATTLIST unite code CDATA #REQUIRED>
<!ELEMENT chef-unite (nom, prenom, specialite, grade?, anciennete?)>
<!ELEMENT corps-medical (medecin*, infirmier*)>
<!ELEMENT medecin (nom, prenom, specialite, grade?, anciennete?)>
<!ELEMENT infirmier (nom, prenom)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT specialite (#PCDATA)>
<!ELEMENT grade (#PCDATA)>
<!ELEMENT anciennete (#PCDATA)>
]>

<hospital-universitaire>
<unite code="123">
<chef-unite>
<nom>Dupont</nom>
<prenom>Pierre</prenom>
<specialite>Cardiologie</specialite>
<grade>Professeur</grade>
<anciennete>10 ans</anciennete>
</chef-unite>
<corps-medical>
<medecin>
<nom>Dupond</nom>
<prenom>Marie</prenom>
<specialite>Cardiologie</specialite>
<grade>Maître de conférences</grade>
<anciennete>5 ans</anciennete>
</medecin>
<medecin>
<nom>Doe</nom>
<prenom>John</prenom>
<specialite>Pédiatrie</specialite>
<anciennete>2 ans</anciennete>
</medecin>
<infirmier>
<nom>Dupré</nom>
<prenom>Sophie</prenom>
</infirmier>
</corps-medical>
</unite>
</hospital-universitaire>

Dans cet exemple, la DTD définit les éléments et les attributs autorisés dans le
fichier XML. La balise <!DOCTYPE> définit la DTD associée.

La balise <hospital-universitaire> est l'élément racine du document XML. Elle


contient une ou plusieurs balises <unite> qui représentent les unités médicales de
l'hôpital. Chaque balise <unite> contient un attribut code qui indique le code de
l'unité, ainsi que deux balises <chef-unite> et <corps-medical> qui représentent
respectivement le chef de l'unité et le corps médical de l'unité.

La balise <chef-unite> contient les informations sur le chef de l'unité : nom,


prénom, spécialité, grade (optionnel) et ancienneté (optionnel). La balise <corps-
medical> contient les informations sur le corps médical de l'unité : un ou
plusieurs médecins spécialistes et un ou plusieurs infirmiers. Les balises
<medecin> et <infirmier> contiennent les informations sur chaque membre du corps
médical : nom, prénom, spécialité, grade (optionnel) et ancienneté (optionnel).

Exercice 03:
Voici la DTD pour le format XML de stockage d'articles bibliographiques :

<!ELEMENT article (titre, texte, bibliographie)>


<!ELEMENT titre (#PCDATA)>
<!ELEMENT texte (paragraphe+)>
<!ELEMENT paragraphe (#PCDATA | important | reference)*>
<!ELEMENT important (#PCDATA)>
<!ELEMENT reference (site-web | ouvrage)>
<!ELEMENT site-web (nom, url)>
<!ELEMENT ouvrage (titre, auteurs, date-parution, editeur)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT auteurs (#PCDATA)>
<!ELEMENT date-parution (#PCDATA)>
<!ELEMENT editeur (#PCDATA)>

<!ATTLIST article
id ID #REQUIRED>
<!ATTLIST texte
id ID #REQUIRED>
<!ATTLIST paragraphe
id ID #REQUIRED>
<!ATTLIST reference
id ID #REQUIRED>
<!ATTLIST site-web
id ID #REQUIRED>
<!ATTLIST ouvrage
id ID #REQUIRED>

Et voici un exemple de document XML respectant cette DTD :

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


<!DOCTYPE article SYSTEM "article.dtd">
<article id="1">
<titre>Titre de l'article</titre>
<texte id="1">
<paragraphe id="1">
Le texte de l'article avec un <important>mot important</important> et une
<reference id="1">référence bibliographique</reference>.
</paragraphe>
<paragraphe id="2">
Un autre paragraphe avec une <reference id="2">autre référence
bibliographique</reference>.
</paragraphe>
</texte>
<bibliographie>
<site-web id="1">
<nom>Nom du site</nom>
<url>http://www.site.com</url>
</site-web>
<ouvrage id="2">
<titre>Titre de l'ouvrage</titre>
<auteurs>Nom de l'auteur</auteurs>
<date-parution>2000</date-parution>
<editeur>Nom de l'éditeur</editeur>
</ouvrage>
</bibliographie>
</article>

Vous aimerez peut-être aussi