Institut Supérieur des Technologies de l’Information et de la Communication
Architecture J2EE & Web Service Année universitaire : 2021-2022
TP N°2 : Document Type Definition (DTD)
A p erç u su r le c ou rs :
Doc ume nt Ty pe Definition ( D T D )
I. Introduction
Une D T D ( D o c u me n t Type Definition : Déc la rat i on d e Type d e D oc u m en t ) définit la
structure d ' u n d ocum ent , les élém en t s et les attributs qu i y sont autorisés, et le t ype d u c ont enu
ou d'attribut p erm is . Elle fait la différence entre u n d oc u m e n t b i en form é et u n d oc um en t
valide : le premier rép ond aux exigences de la spécification, tandis que le second se conforme
strictement aux règles établies par la DTD à laquelle il fait référence.
II. L es types prédéfinis
D TD c o ntie nt de s type s pré dé finis :
Type prédéfini Description
ANY L'élément peut contenir tout type de données
EMPTY L'élément ne contient pas de données spécifiques
P C D AT A L'élément doit contenir une chaîne de caractères
# C D AT A L‟ATTR IB UT contient une chaîne de caractères
Ainsi un élément nommé N o m contenant u n type # P C D AT A sera déclaré de la façon suivante
dans la DTD : < ! E L E M E N T N o m ( # P C D A T A ) > < N o m > P i l l o n < / N o m >
III. Les opérateurs
Il est possible de définir des règles d'utilisation, c'est-à-dire les élémen t s X M L q u ' un élém en t
peut o u doit contenir. Cett e s yn ta xe se fait à l'aide de notations spécifiques d on t voici u n
récapitulatif :
Opérateur Signification
+ L'élément doit être présent au minimum une fois
* L'élément peut être présent plusieurs fois (ou aucune)
? L'élément peut être optionnellement présent
| L'élément A ou l'élément B peuvent être présents
, L'élément A doit être présent et suivi de l'élément B
() Les parenthèses permettent de regrouper des éléments afin de leur appliquer les
autres opérateurs
Ainsi on peut créer la déclaration suivante dans la DTD :
<!ELEMENT personne (nom,prenom,telephone),email? >
<!ELEMENT nom (#PCDATA) >
<!ELEMENT prenom (#PCDATA) >
<!ELEMENT telephone (#PCDATA) >
<!ELEMENT email (#PCDATA) >
Institut Supérieur des Technologies de l’Information et de la Communication
Architecture J2EE & Web Service Année universitaire : 2021-2022
TP N°2 : Document Type Definition (DTD)
Cette déclaration pourra donc donner un document XML du style :
<personne>
<nom>Pillou</nom>
<prenom>Jean-Francois</prenom>
<telephone>555-123456</telephone>
<email>webmaster@[Link]</email>
</personne>
IV. Les éléments
Il est possible d'ajouter des propriétés à un élément particulier en lui affectant un attribut,
c'est-à-dire une paire clé/valeur. Ainsi avec DTD la syntaxe pour définir un attribut est la
suivante :
<! ATTLIST Elément Attribut Type >
Enfin chacun de ces types d'attributs peut être suivi d'un mot clé particulier permettant de
spécifier le niveau de nécessité de l'attribut :
IMPLIED signifie que l'attribut est optionnel, c'est-à-dire non obligatoire
REQUIRED signifie que l'attribut est obligatoire
#FIXED signifie que l'attribut sera affecté d'une valeur par défaut s'il n'est pas défini.
Il doit être immédiatement suivi de la valeur entre guillemets
Institut Supérieur des Technologies de l’Information et de la Communication
Architecture J2EE & Web Service Année universitaire : 2021-2022
TP N°2 : Document Type Definition (DTD)
ISTIC
Matière : TP Architecture J2EE et WS Classe : 3 LT
TP2 DTD
Exercice 1 :
1.1. On vous demande de reprendre la structure logique du texte ci-dessous et la mettre sous
forme XML :
Bouteilles_eau
Bouteille
Marque : sabrine
Ville : Zaghouan
N-autorisation : 100
Composition :
Sel : 100g
Calcium : 0.01
Magnésium : 0.005
Ph: 1
Marque : Safia
Ville : Zaghouan
N-autorisation : 200
Composition :
Sel: 0.02g
Calcium: 16
Magnesium: 5
Ph:7
1.2.Vérifier la validité de votre fichier
1.3. Donner le DTD correspondant
Exercice 2:
Ecrire un document XML qui soit valide par rapport à la DTD suivante :
< ! ELEMENT pharmacie (médicament)>
< ! ELEMENT médicament (nom, amm, laboratoir, composition)>
< ! ATTLIST medicament forme CDATA „gellules‟>
< ! ELEMENT nom (#PCDATA)>
< ! ELEMENT amm (#PCDATA)>
< ! ELEMENT laboratoir (#PCDATA)>
< ! ELEMENT composition (composant+)>
< ! ELEMENT composant (#PCDATA)>
Exercice 3:
Ecrire un document XML répondant à ces besoins :
Film (id-film,titre, genre)
Institut Supérieur des Technologies de l’Information et de la Communication
Architecture J2EE & Web Service Année universitaire : 2021-2022
TP N°2 : Document Type Definition (DTD)
Client ( id-client, nom)
Emprunt (#id-client,# id-Exemplaire, date-e)
Exemplaire (id-Exemplaire,#id-film)
Exercice 4:
4.1.Rédiger un schéma XMLpour une bibliographie. Cette bibliographie :
- Contient des livres et des articles
- Les informations nécessaires pour un livre (élément livre) sont :
- Son titre général (élément titre)
- Les noms des auteurs (élément auteur)
- Ses tomes (élément tome), leur nombre de pages (élément pages)
- Des informations générales sur son édition (élément infoEdition), le lieu d‟impression
(élément lieu impression), son numéro ISBN (élément ISBN)
Les informations nécessaires pour un article (élément article) sont :
- Son titre (élément titre)
- Les noms des auteurs (élément auteur)
- Ses références de publication (élément info publication) : nom du journal (élément
nom journal), numéro de page (élément page), année de publication (élément année
publication) et numéro de journal (élément numéro journal
Réserver un champ optionnel, pour chaque livre et chaque article, pour un avis personnel
(élément avis)
Remarque : Ne déclarer pour cette première question que des chaines de caractères
4.2. Ecrire un fichier XML et le valider par le schéma décrit au niveau de la question 1
4.3. Modifier le schéma précédent :
- Ajouter un attribut optionnel soustitre à l‟élément titre
- Faire de l‟élément tome un élément vide et en lui ajoutant un attribut obligatoire
nbpages et un attribut optionnel sousTitre
- Faire de l‟élément nomjournal un attribut de l‟élément infospublication et en lui
donnant comme valeur par défaut journal
4.4. Modifier le schéma précédent de façon à utiliser le typage offert par XSD
- Elément pages doit être un entier positif, ainsi que numéro journal
- Choisir le type adéquat pour l‟élément année publication
4.5. Définir vos propres types de données
Définir un type simple nomme typeISBN basé sur une restriction du type xsd : string se
limitant à une chaine de caractères composée de 10 chiffres .L‟utiliser dans la déclaration de
l‟élément ISBN
Déclarer un type typePage basé sur une restriction du type xsd : string se limitant à un
nombre puis la chaine de caractère « a » puis a un autre nombre