DTD - Syntaxe

Une DTD XML peut être soit spécifiée dans le document, soit conservée dans un document séparé, puis le document peut être lié au document DTD pour l'utiliser.

Syntaxe

La syntaxe de base d'une DTD est la suivante -

<!DOCTYPE element DTD identifier
[
   declaration1
   declaration2
   ........
]>

Dans la syntaxe ci-dessus -

  • DTD commence par le délimiteur <! DOCTYPE.

  • Un element indique à l'analyseur d'analyser le document à partir de l'élément racine spécifié.

  • DTD identifierest un identifiant pour la définition du type de document, qui peut être le chemin vers un fichier sur le système ou l'URL d'un fichier sur Internet. Si la DTD pointe vers un chemin externe, elle est appeléeexternal subset.

  • le square brackets [ ] inclure une liste facultative de déclarations d'entités appelées internal subset.

DTD interne

Une DTD est appelée DTD interne si des éléments sont déclarés dans les fichiers XML. Pour le référencer en tant que DTD interne, l' attribut autonome dans la déclaration XML doit être défini suryes. Cela signifie que la déclaration fonctionne indépendamment de la source externe.

Syntaxe

La syntaxe de la DTD interne est la suivante:

<!DOCTYPE root-element [element-declarations]>

où l' élément racine est le nom de l'élément racine et les déclarations d'élément est l'endroit où vous déclarez les éléments.

Exemple

Voici un exemple simple de DTD interne -

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>

<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>

<address>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</address>

Passons en revue le code ci-dessus -

Start Declaration - Commencez la déclaration XML par l'instruction suivante.

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>

DTD- Immédiatement après l'en-tête XML, suit la déclaration du type de document , communément appelée DOCTYPE -

<!DOCTYPE address [

La déclaration DOCTYPE a un point d'exclamation (!) Au début du nom de l'élément. Le DOCTYPE informe l'analyseur qu'une DTD est associée à ce document XML.

DTD Body - La déclaration DOCTYPE est suivie du corps de la DTD, où vous déclarez des éléments, des attributs, des entités et des notations -

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>

Plusieurs éléments sont déclarés ici qui composent le vocabulaire du document <nom>. <! ELEMENT name (#PCDATA)> définit le nom de l'élément comme étant de type "#PCDATA". Ici, #PCDATA signifie des données textuelles analysables.

End Declaration- Enfin, la section déclaration de la DTD est fermée à l'aide d'un crochet fermant et d'un crochet angulaire fermant (]>). Cela met effectivement fin à la définition, et par la suite, le document XML suit immédiatement.

Règles

  • La déclaration de type de document doit apparaître au début du document (précédée uniquement de l'en-tête XML) - elle n'est autorisée nulle part ailleurs dans le document.

  • Comme pour la déclaration DOCTYPE, les déclarations d'éléments doivent commencer par un point d'exclamation.

  • Le nom dans la déclaration de type de document doit correspondre au type d'élément de l'élément racine.

DTD externe

Dans la DTD externe, les éléments sont déclarés en dehors du fichier XML. Ils sont accessibles en spécifiant les attributs système qui peuvent être le fichier .dtd légal ou une URL valide. Pour le référencer en tant que DTD externe, l' attribut autonome dans la déclaration XML doit être défini comme no. Cela signifie que la déclaration comprend des informations provenant de la source externe.

Syntaxe

Voici la syntaxe pour DTD externe -

<!DOCTYPE root-element SYSTEM "file-name">

nom-fichier est le fichier avec l' extension .dtd .

Exemple

L'exemple suivant montre l'utilisation d'une DTD externe -

<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<!DOCTYPE address SYSTEM "address.dtd">

<address>
  <name>Tanmay Patil</name>
  <company>TutorialsPoint</company>
  <phone>(011) 123-4567</phone>
</address>

Le contenu du fichier DTD address.dtd sont comme indiqué -

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

Les types

Vous pouvez faire référence à une DTD externe en utilisant soit system identifiers ou public identifiers.

System Identifiers

Un identifiant système vous permet de spécifier l'emplacement d'un fichier externe contenant les déclarations DTD. La syntaxe est la suivante -

<!DOCTYPE name SYSTEM "address.dtd" [...]>

Comme vous pouvez le voir, il contient le mot-clé SYSTEM et une référence URI pointant vers l'emplacement du document.

Public Identifiers

Les identificateurs publics fournissent un mécanisme pour localiser les ressources DTD et sont écrits comme ci-dessous -

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">

Comme vous pouvez le voir, il commence par le mot-clé PUBLIC, suivi d'un identifiant spécialisé. Les identificateurs publics sont utilisés pour identifier une entrée dans un catalogue. Les identifiants publics peuvent suivre n'importe quel format, cependant, un format couramment utilisé est appelé identifiants publics formels, ou FPI.