Vous êtes sur la page 1sur 21

Validation de document avec DTD (Document Type Definition) :

 La définition d'un langage XML particulier se fait grâce à un schéma qui permet de lister les

mots du langage (vocabulaire) et de définir leur utilisation (grammaire). On parle également

de format.

 Afin de vérifier qu'un document XML est conforme à une syntaxe donnée, DTD nous permet

de décrire la structure et l'ensemble des règles que doit suivre le document:

– liste des balises, attributs des balises, organisation des balises

 La validation est le mécanisme qui vérifie qu’un document XML respecte une DTD
Dr. AISSAOUA HABIB 1
 Une DTD interne s'écrit dans ce qu'on appelle le DOCTYPE. On le place sous le prologue du
document et au dessus du contenu XML. Voyons plus précisément la syntaxe :

<!DOCTYPE racine [ ]>


La DTD interne est ensuite écrite entre les []. Dans ce DOCTYPE, le mot racine doit être
remplacé par le nom de la balise qui forme la racine du document XML.

 Une DTD externe est une DTD qui est écrite dans un autre document que le document XML.
Il existe 2 types de DTD :
 DTD externes PUBLIC: on fait appelle au fichier contenant la grammaire à partir son URL

 DTD externes SYSTEM: on fait appelle au fichier contenant la grammaire à partir d'un fichier local.

 Une DTD mixte si elle est constituée d'une partie interne et d'une partie externe.

Dr. AISSAOUA HABIB 2


Exemple d’un document XML ayant une DTD externe cours.dtd

1. Les éléments dans la DTD: pour déclarer les éléments autorisés à apparaître dans le
document, ainsi que leurs imbrications possibles, on utilise la forme suivante:

Dr. AISSAOUA HABIB 3


 ELEMENT : mot clé pour déclarer une balise

 nom : le nom de la balise

 (contenu) : représente soit un type de donnée prédéfini, soit une règle d'utilisation de
l'élément:

 Un ou des éléments fils spécifiés

 #PCDATA: signifie que l’élément ne contient que des textes,

 Un mélange des deux précédents

 EMPTY : signifie que l’élément doit être vide,

 Les éléments fils peuvent avoir un ordre imposé séparés par des virgules
Dr. AISSAOUA HABIB 4
Dr. AISSAOUA HABIB 5
Type DTD XML

Elément avec <!ELEMENT elt (s1, s2)> <elt>


plusieurs sous <!ELEMENT s1 EMPTY> <s1/>
éléments <!ELEMENT s2 EMPTY> <s2/>
</elt>

Elément avec <!ELEMENT elt (#PCDATA|s1)> <elt>texte</elt>


contenu variable <!ELEMENT s1 EMPTY> ou
<elt><s1/></elt>

Elément à <!ELEMENT elt ANY> <elt>texte</elt>


contenu non <!ELEMENT s1 EMPTY> ou
défini <elt><s1/></elt>
etc.

Dr. AISSAOUA HABIB 6


Il est possible de moduler le nombre d'apparitions d'un sous-élément en utilisant des quantifieurs
après les noms d'éléments:

Dr. AISSAOUA HABIB 7


Prenons l'exemple suivant:

Cette définition impose que la balise <personne/> contienne obligatoirement la balise <nom
/> puis éventuellement <prenom/>
Dr. AISSAOUA HABIB 8
Regardons alors la validité de ces documents XML :

Dr. AISSAOUA HABIB 9


2. Déclaration des attributs: Les attributs sont précisés dans l’instruction ATTLIST. Cette
dernière, étant indépendante de l’instruction ELEMENT, on précise à nouveau le nom de
l’élément sur lequel s’applique l’attribut. Une déclaration d'attributs typique aura la forme
suivante:

 ATTLIST : mot clé pour déclarer un attribut

 nom : le nom de la balise

 nom-attribut : le nom de l’attribut


Dr. AISSAOUA HABIB 10
 type : type de l’attribut
 CDATA : chaîne de caractères

 liste de valeurs possibles ("v1"|"v2"|"v3")

 valeur-par-defaut: valeur par défaut de l’attribut si aucune valeur n’est fournie


 Contrainte : définit les contraintes que doit respecter l’attribut, n’est pas obligatoire.

• REQUIRED : l’attribut est obligatoire

• IMPLIED : l’attribut est optionnel

• FIXED : la valeur de l’attribut est fixé

• ID : l’attribut est déclaré comme identifiant unique d’un élément. Un attribut dont la valeur
distingue l'élément de tous les autres dans le document XML courant,
Dr. AISSAOUA HABIB 11
Example :

Dr. AISSAOUA HABIB 12


• Un attribut peut être déclaré comme référence vers un autre élément (clé étrangère) avec le
mot clé IDREF. l’attribut doit être égal, dans le document XML, à l’identifiant d’un autre
élément

Dr. AISSAOUA HABIB 13


Ainsi on pourra avoir une déclaration d'attribut comme suite:

Ce qui signifie que l'on affecte à l'élément disque deux attributs IDdisk et type. Le premier
attribut est un identifiant unique obligatoire. L'attribut type peut être soit K7, MiniDisc, Vinyl ou
CD, sachant que ce dernier sera affecté par défaut.

Dr. AISSAOUA HABIB 14


• Définition d’une entité: XML permet de créer des entités. Les entités sont des symboles qui
représentent des morceaux d’arbre XML ou des textes. L'utilisation d'entités dans un
document XML permet une plus grande facilité de mise à jour

• Elle est définie dans la DTD pour pouvoir être utilisée dans les documents correspondants

• l’entité associe un nom à une valeur suivant la syntaxe &nom;

La valeur d’une entité peut être interne ou externe.

 Forme interne : <!ENTITY nom "VALEUR">

Dr. AISSAOUA HABIB 15


Exemple: dans la DTD :

<!ENTITY us "Université de Sétif">

Dans chaque document : &us; doit être remplacé par la chaîne « Université de Sétif »

 Forme externe : <!ENTITY nom_de_l_entite SYSTEM "nom_du_fichier">

Exemple: dans la DTD :

<!ENTITY usfile SYSTEM "univ_setif.txt">

Dans chaque document : &usfile; doit être remplacé par le texte contenu dans le fichier

univ_setif.txt
Dr. AISSAOUA HABIB 16
Exemple:

Dr. AISSAOUA HABIB 17


Dr. AISSAOUA HABIB 18
Dr. AISSAOUA HABIB 19
Dr. AISSAOUA HABIB 20
Dr. AISSAOUA HABIB 21

Vous aimerez peut-être aussi