XML : les DTD

Une DTD est une définition de type de document.
Nous pouvons donc déclarer dans le fichier DTD la liste des éléments du document XML,  avec leur type et leurs attributs, avant leur utilisation. La validité du document XML est soumise au respect de ces déclarations. Un soin particulier doit donc être apporté à la conception de la DTD, elle doit donc comporter une structure parfaitement adaptée au document XML auquel elle est liée.

  1. <!DOCTYPE element_racine [
  2. <!ELEMENT balise (#PCDATA)>
  3. <!ATTLIST balise attribut CDATA #REQUIRED>
  4. <!ELEMENT element_racine (balise)>
  5. <!ENTITY e-aigu "é">
  6. ]>
  7. <element_racine>
  8. <balise attribut="valeur">donn&e-aigu;e</balise>
  9. </element_racine>

Indicateurs d'occurences

SymboleExempleDescription
 <!ELEMENT note (message)>Si nous ne spécifions rien de plus, l'élément message, fils de l'élément note, ne peut apparaître qu'une et une seule fois dans l'élément note.
+<!ELEMENT note (message+)>L'élément message doit apparaître au moins une fois par élément note.
*<!ELEMENT note (message*)>L'élément message peut apparaître dans l'élément note. Sa présence est facultative.
?<!ELEMENT note (message?)>L'élément message peut soit être omis, soit apparaître une seule fois dans l'élément note.
,<!ELEMENT note (de,a,cc,objet,message)>L'élément note comporte les cinq éléments fils suivants : de, a, cc, objet, message dans l'ordre dans lequel ils sont présentés.
|<!ELEMENT livre (#PCDATA | titre)>L'élément livre peut comporter soit une donnée de type PCDATA, soit un élément titre.

Table des matières Haut

Déclaration des éléments xml

Déclaration interne

Nous pouvons réaliser une déclaration des éléments xml au sein même du document, sous la forme suivante:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE Elément_racine...>
<Elément_racine>
...
</Elément_racine>

Table des matières Haut

Déclaration externe

Nous pouvons aussi procéder d'une autre manière (en respectant la tendence qui vise à séparer les données du formatage), par l'utilisation d'une URI (Uniform Resource Identifier) qui nous permettra de lier le document à une DTD externe. Dans ce dernier cas, le mot-clé : SYSTEM ou PUBLIC sera combiné avec le nom public de la DTD externe.

<!DOCTYPE Elément_racine [Enumération...]>
<!DOCTYPE Elément_racine SYSTEM "URI">
<!DOCTYPE Elément_racine PUBLIC "Nom_DTD" "URI">

Mot-cléDescription
SYSTEMPour indiquer où se situe l'URI d'une DTD à laquelle se réfère le document.
PUBLICDétermine que la DTD est d'usage général.

ValeurDescription
"URI"Pour indiquer où se situe une DTD à laquelle s'applique le mot-clé SYSTEM.
"Nom_DTD" "URI"Détermine le nom de la DTD utilisée, avec son adresse, au cas ou le système ne parviendrait pas à la trouver.
Exemple
  1. <!DOCTYPE document SYSTEM "../dtd/definition.dtd">
  2.  
  3. <!DOCTYPE document PUBLIC
  4. "-//NomDTD//dtD//EN"
  5. "http://www.monsite.com/dtd/definition.dtd">
  6.  
  7. <!DOCTYPE document [
  8. <!ELEMENT paragraphe (phrase)>
  9. <!ELEMENT phrase (#PCDATA)>
  10. <!ATTLIST paragraphe auteur CDATA #IMPLIED>
  11. <!ENTITY e-dans-o "&oelig;">
  12. <!ENTITY a-dans-e "&aelig;">
  13. ]>

Explication : mot-clé PUBLIC

Nous avons vu qu'il était nécessaire de procéder à une déclaration PUBLIC au cas ou l'analyseur XML ne serait pas en mesure de trouver la DTD (le cas de l'utilisation d'une DTD extérieure au site).

Nous utiliserons la syntaxe suivante :

ISO|+|-//nom_propriétaire//dtD Descripteur//Bigramme_langue

  • Appartenance au standard.
    • ISO : la DTD appartient au standard.
    • + : la DTD n'appartient pas au standard.
    • - : utilisé dans le cas où la DTD n'a pas été approuvée.
  • //nom_propriétaire : nom du propriétaire.
  • //dtD Descripteur : descripteur de la DTD.
  • //Bigramme_langue : langue sous forme de bigramme.

Remarques

Nous pouvons aussi utiliser les deux méthodes, en combinant une DTD externe à une DTD interne.
En réalité, la DTD du document XML se composera de deux sous-DTD (une interne et une externe).

Deux termes sont utilisés pour définir un document xml :

  • Un document bien formé (Well Formed XML) est un document qui respecte les règles syntaxiques XML.
  • Un document valide (Valid XML) est un document qui respecte les règles spécifiques de son DTD.

Version en cache

18/12/2024 11:16:31 Cette version de la page est en cache (à la date du 18/12/2024 11:16:31) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 07/11/2003, dernière modification le 02/08/2019
Source du document imprimé : https://www.gaudry.be/xml-dtd.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.