0% ont trouvé ce document utile (0 vote)
39 vues33 pages

Introduction au DTD en XML

Transféré par

azizelheni11
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues33 pages

Introduction au DTD en XML

Transféré par

azizelheni11
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

SOA et web service

cours XML

Dr.R.Hanafi
2022-2023
[email protected]
Chapitre 2 : le DTD

ISLAIB.HANAFI.2022 2
ISLAIB.HANAFI.2022 3
ISLAIB.HANAFI.2022 4
ISLAIB.HANAFI.2022 5
Qu'est-ce qu'une DTD?
 Une DTD (Document Type Definition) permet
de définir une structure type de document
XML.
 Il
s'agit d'une grammaire qui décrit la façon
de construire les documents XML qu'elle
valide

ISLAIB.HANAFI.2022 6
ISLAIB.HANAFI.2022 7
Contenu d'une DTD
 Une DTD peut contenir :
 Des déclarations d'entités générales
 Des déclarations d'entités paramètres
 Des déclarations d'éléments
 Des déclarations de listes d'attributs
 Des commentaires

ISLAIB.HANAFI.2022 8
Il existe deux types d'entité ; les entités
internes et les entités externes.
 Les entités internes permettent de définir des
abréviations :
 <!ENTITY nom-entité ''valeur de
remplacement''>
 On utilise un entité de la façon suivante :
&nom-entité;
ISLAIB.HANAFI.2022 9
Entités générales
 <!ENTITY cp ''&#00A9; Editions Acte Sud ''>
 &cp; sera représenté à l'écran par : © Editions Acte Sud
 On peut utiliser des entités internes pour définir d'autres
entités internes.
Les entités générales
 Elles permettent aussi de faire référence à des
fichiers qui se trouve à une certaine URL :
 <!ENTITY nom-entité SYSTEM ''URL''>
 <!ENTITY chapitre-1 SYSTEM ''./chap1.xml''>
 Cette référence permet à chaque fois que l'on
tape &chapitre-1; dans le document XML d'y
insérer le contenu du fichier chap1.xml.
Les entités générales
 On peut utiliser des entités générales aussi
directement dans un document XML de la
façon suivante :
 <!DOCTYPE racine SYSTEM "dtd.dtd" [<!ENTITY
nom "valeur">]>
Les entités paramètres
 Ellesfoncionnent comme les entités
générales, mais ne sont utilisables que dans
la DTD où elles sont déclarées.
 <!ENTITY % nom-entité "valeur">
 Pour les utiliser, il faut écrire :%nom-entité;
Les éléments
 Les déclarations d'élément permettent de
définir les balises ainsi que la façon dont elles
doivent s'organiser dans l'arbre XML.
 Elle est de la forme suivante :
 <!ELEMENT nom modèle>
 Le nom correspond au nom de la balise.
 Le modèle décrit le contenu que doit avoir la
balise ainsi définie.
Modèle d'un élément
 Lemodèle de contenu peut autoriser la
dréation d'éléments qui contiendront :
 Un ou des éléments fils spécifiés;
 Des données représentées par un flot de
caractèes;
 Un mélange de données et d'éléments fils
spécifiés;
 Un mélange arbitraire de donnée et d'éléments;
Modèle d'un élément.
 Unmodèle peut-être une séquence de fils
ordonnés :
 (fils_1, fils_2, ..., fils_n)
 Ainsi : <!ELEMENT chapitre (titre, intro, section)>
spécifie que toute balise chapitre devra être
employée comme il suit :
 <chapitre><titre>...</titre><intro>...</
intro><section>...</section></chapitre>
Modèle d'un élément
 Ilpeut aussi s'agir d'une séquence non
ordonnée :
 (fils_1 | fils_2 | ... | fils_n)
 Ainsi <!ELEMENT date (annee | mois)> spécifie
que toute balise date doit être utiliser de l'un des
deux façons suivantes :
 <date><mois>...</mois><annee>...</annee></
date>
 <date><annee>...</annee><mois>...</mois></
date>
Modèle d'un élément
 Onpeut utiliser des quantificateur pour
autoriser des répétitions :
 P? signifie que l'on peut utiliser l'élément P zéro
ou une fois.
 P* signifie que l'on peut utiliser l'élément P zéro,
une ou plusieurs fois.
 P+ signifie que l'on peut utiliser l'élément P une
ou plusieurs fois.
 Ainsi <!ELEMENT chapitre (titre, intro,
section+)> signifie qu'un chapitre peut contenir
Modèle d'un élément
 On peut imbriquer les déclarations :
 <!ELEMENT chapitre (titre, intro, (titre-section,
devel)+)> signifie que la balise chapitre doit être
utiliser comme suit :
 <chapitre>
 <titre>...</titre><intro>...</intro>
 <titre-section>...</titre-section><devel>...</
devel>
 <titre-section>...</titre-section><devel>...</
devel>
Modèle d'un élément
 Pourspécifier qu'un élément doit
obligatoirement être vide, il suffit d'écrire :
 <!ELEMENT nom EMPTY>
 Pourspécifier qu'un élément peut contenir
n'importe quel type d'arbre, il suffit d'écrire :
 <!ELEMENT nom ANY>
Listes d'attributs
 Pour chaque élément on peut spécifier une
liste d'attributs bien précise. Celle-ci a la forme
suivante :
 <!ATTLIST nom-élément
nom-attribut_1 type-attribut_1 valeur-par-défaut_1
...
nom-attribut_n type-attribut_n valeur-par-
défaut_n >
Les types des attributs

CDATA signife que la valeur de l'attribut sera une chaîne
de caractère

ID la valeur de l'attribut doit être unique pour cette
instance de l'élément.

IDREF référence à l'élément avec un attribut ID ayant
même valeur que IDREF

IDREFS Liste de plusieurs IDREF séparés par des
espaces.

NMTOKEN ou NMTOKENS permettra à l'attribut de
prendre comme valeur le nom d'un token, ou de
plusieurs, c'est-à-dire un ou des noms.
Les types des attributs

NMTOKEN jeton de nom (i.e. chaîne de texte
conforme aux règles de nom de XML)

NMTOKENS liste de NMTOKEN séparés par
des espaces

ENTITY nom d'une entité prédéfinie

ENTITIES listes d'entités prédéfinies séparées
par des espaces
Les types des attributs

Le type d'un attribut peut aussi être une liste
de valeurs, si tel est le cas, on ne peut donner
pour valeur à l'attribut que l'un des éléments
de cette liste. Une telle liste s'écrit comme il
suit :

(valeur_1 | valeur_2 | ... | valeur_n)
Les valeurs par défaut
 #REQUIRED signifie que l'attribut doit
obligatoirement être déclaré
 #IMPLIED signifie que l'attribut est facultatif et
n'a pas de valeur par défaut particulière
 #FIXED "val" l'attribut est facultatif, mais si il
est présent il ne peut prendre que "val" pour
valeur.
 "val"l'attribut est facultatif, et si il n'est pas
présent on considère que sa valeur est "val"
Exemple de DTD

ISLAIB.HANAFI.2022 26
Liaison entre un fichier XML et
une DTD (2/2)

ISLAIB.HANAFI.2022 27
Principe de syntaxe d’une DTD

ISLAIB.HANAFI.2022 28
Exemple de DTD

ISLAIB.HANAFI.2022 29
Exemple (Attributs d’une DTD)

ISLAIB.HANAFI.2022 30
Exemple (Entités d’une DTD)

ISLAIB.HANAFI.2022 31
ISLAIB.HANAFI.2022 32
ISLAIB.HANAFI.2022 33

Vous aimerez peut-être aussi