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.
<!DOCTYPE element_racine [ <!ELEMENT balise (#PCDATA)> <!ATTLIST balise attribut CDATA #REQUIRED> <!ELEMENT element_racine (balise)> <!ENTITY e-aigu "é"> ]> <element_racine> <balise attribut="valeur">donn&e-aigu;e</balise> </element_racine>
Indicateurs d'occurences
Symbole | Exemple | Description |
---|---|---|
<!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. |
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>
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 |
---|---|
SYSTEM | Pour indiquer où se situe l'URI d'une DTD à laquelle se réfère le document. |
PUBLIC | Détermine que la DTD est d'usage général. |
Valeur | Description |
---|---|
"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 | |
|
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.
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 07/11/2003 gemaakt, de laatste keer de 02/08/2019 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/xml-dtd.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.