![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Le rôle de la DTD |
XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe donnée. La norme XML définit ainsi une définition de document type appelée DTD (Document Type Definition), c'est-à-dire une grammaire permettant de vérifier la conformité du document XML. La norme XML n'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par contre le respect exact des règles de base de la norme XML.
Ainsi on parlera de
Une DTD peut être définie de 2 façons:
Déclarer un élément |
Pour pouvoir créer un document XML il est utile dans un premier temps de définir les éléments pouvant être utilisés, ou plus exactement les informations que l'on désire utiliser.
Ainsi pour définir un élément on utilisera la syntaxe suivante:
<! ELEMENT Nom Modèle >
Le paramètre modèle représente soit un type de donné prédéfini, soit une règle d'utilisation de l'élément.
Les types prédéfinis utilisables sont les suivants:
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 |
#PCDATA | L'élément doit contenir un chaîne de caractère |
Ainsi un élément nommé Nom contenant un type #PCDATA sera déclaré de la façon suivante dans la DTD:
<! ELEMENT Nom #PCDATA >
Cet élément pourra être écrit de la façon suivante dans le document XML:
<Nom>Pillou</Nom>
D'autre part il est possible de définir des règles d'utilisation, c'est-à-dire les éléments XML qu'un élément peut ou doit contenir. Cette syntaxe se fait à l'aide de notations spécifiques dont voici un récapitulatif:
Opérateur | Signification | Exemple |
---|---|---|
L'élément doit être présent au minimum une fois | A+ | |
L'élément peut être présent plusieurs fois (ou aucune) | A* | |
L'élément peut être optionnellement présent | A? | |
L'élément A ou B peuvent être présents (pas les deux) | A|B | |
L'élément A doit être présent et suivi de l'élément B | A,B | |
Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs | (A,B)+ |
<! ELEMENT personne (nom,prenom,telephone),email? > <! ELEMENT nom #PCDATA > <! ELEMENT prenom #PCDATA > <! ELEMENT telephone #PCDATA > <! ELEMENT email #PCDATA >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@commentcamarche.net</email> </personne>ou bien
<personne> <nom>Pillou</nom> <prenom>Jeff</prenom> <telephone>555-542136</telephone> </personne>
Déclarer des attributs |
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 XML la syntaxe pour définir un attribut est la suivante:
<! ATTLIST Elément Attribut Type >
Type représente le type de donnée de l'attribut, il en existe trois:
<! ATTLIST Elément Attribut (Valeur1 | Valeur2 | ... ) >Pour définir une valeur par défaut il suffit de faire suivre l'énumération par la valeur désirée entre guillemets:
<! ATTLIST Elément Attribut (Valeur1 | Valeur2 ) "valuer par défaut" >
<! ATTLIST disque IDdisk ID #REQUIRED type(K7|MiniDisc|Vinyl)"CD" >Ce qui signifie que l'on affecte à l'élément disque deux attributs IDdisk et type. Le premier attribut est de type atomique, il s'agit d'un identifiant unique obligatoire. L'élément type peut être soit K7,MiniDisc,Vinyl ou CD, sachant que ce dernier sera affecté par défaut...
Déclarer des notations |
XML permet de définir une application par défaut à lancer pour ouvrir des documents non XML encapsulés dans le code XML.
Il est ainsi possible d'associer les images JPG au programme Paint Shop Pro (psp.exe)
grâce à la syntaxe suivante :
<! NOTATION jpg SYSTEM "psp.exe">