De l'Aleph à l'@ > L'Informatique > Langages > DTD

DTD

DTD signifie Document Type Définition soit en Français Définition de Classe de Document.
Le but d'une DTD est de définir les règles régissant le document structuré lié et l'ensemble des déclarations utilisables dans ce document.

La structure

Une DTD comporte 2 parties :
- Les déclarations système
- Les déclarations des éléments
Dans le courant de la DTD, il est possible et même recommandé d'ajouter des commentaires afin de rendre le fichier plus lisible.

Les déclarations système

Les déclarations système consistent à décrire des entités internes ou externes.

Les entités externes

Les entités externes correspondent :
- soit à des descriptions d'éléments existants dans un fichier externe :
Exemple : commun PUBLIC '-//ALEPH2AT//ELEMENTS communs Aleph2at//FR'>
- soit à des descriptions de jeux de caractères ou d'expressions :
Exemple : ENTaleph2at PUBLIC '-//ALEPH2AT//ENTITIES Entites Aleph2at//FR'>

Chaque fichier externe appelé devra respecté la même syntaxe que les entités internes.

Les entités internes

Les entités internes correspondent :
- soit à des descriptions d'éléments :
Exemple : paragraphe 'contenu'>
Le contenu respecte alors la syntaxe décrite pour la déclaration des éléments.
On fera appel à ces entités dans les contenus d'éléments par l'expression %paragraphe.
- soit à des descriptions de jeux de caractères ou d'expressions :
Exemple : aleph2at 'De l'Aleph à l'@'>
On pourra alors faire appel à cette entité directement dans le fichier structuré par l'expression %aleph2at.

Les déclarations des éléments

Pour déclarer un élément, il est nécessaire de décrire :
- son nom
- les règles d'omission de ses balises
- son contenu
- ses attributs (non obligatoires)

Un élément est noté de la manière suivante  : nom d f (contenu)>
-  : marque le début de la déclaration de l'élément
- d f : marque les règles d'omission de ses balises
- ( : marque le début de la déclaration du contenu de l'élément
- ) : marque la fin de la déclaration du contenu de l'élément
- > : marque la fin de la déclaration de l'élément

Il est possible aussi de définir des éléments via des entités dans la déclaration système.

Les règles d'omission

Le contenu d'un élément est par défaut encadré par les balises de l'élément (début et fin), mais il est possible d'omettre l'une des deux balises si cela est défini dans le DTD.
Les paramètres d f décrivent respectivement la règle d'omission pour le balise de début et de fin.
Chacune peut avoir deux valeurs :
- - : décrit que la balise est obligatoire
- O : décrit que la balise peut être omise

On pourra donc écrire les 4 cas suivants :
- nom - - (contenu)> : les deux balises sont obligatoires
- nom O O (contenu)> : les deux balises peuvent être omises
- nom - O (contenu)> : la balise de début est obligatoire, celle de fin peut être omise
- nom O - (contenu)> : la balise de début peut être omise, celle de fin est obligatoire

Le contenu

Le contenu d'un élément décrit l'ensemble de ce que peut contenir un élément.
Le contenu peut être de 3 types (ainsi que la combinaison de ceux-ci) :
- un type de contenu
- un enchainement de sous-éléments
- un enchainement d'entités

Type de contenu :
Le type de contenu permet la déclaration du type de chaîne de caractères utilisables dans le contenu.
Les types possibles sont les suivants :

PCDATA

Parsed Character DATA ou Données textuelles analysées.
Ces caractères sont considérés comme déjà traités et ne peuvent donc pas contenir d'entités ou de balises.
Concrètement, il s'agit généralement de chaînes de caractères simples contenant le texte proprement.

RCDATA

Replaceable Character DATA ou Données textuelles remplaçables.
Chaînes de caractères ne contenant que du texte ou des entités.
Il ne peut donc y avoir des balises.

CDATA

Character DATA ou Données textuelles.
Chaîne de caractères ne nécessitant aucun traitement.

ANY


Chaîne de caractères pouvant contenir n'importe quel type de contenu ou n'importe quel élément défini.

EMPTY

Vide.
Contenu vide.

Enchainement de sous-éléments :
Un élément peut contenir des sous-éléments (on dit alors qu'il est parent de ses sous-éléments) déclarés dans la DTD.
L'enchainement de ces sous-éléments est effectué à l'aide d'opérateurs :

,

ET ordonné
Indique l'ordre logique des sous-éléments

&

ET non-ordonné
Indique la suite non-ordonnée des sous-éléments

|

OU exclusif
Indique qu'un et un seul sous-élément peut apparaître

+

OBLIGATOIRE
Indique que le sous-élément est obligatoire et peut être répété

?

0 ou 1
Indique le sous-élément est optionnel et peut apparaître 1 fois

*

0 ou plus
Indique le sous-élément est optionnel et peut être répété plusieurs fois

Les attributs

Les attributs sont des paramètres supplémentaires liés à un élément.
Leur description doit comporter :
- le nom de l'élément auquel il se rapporte
- le nom de l'attribut
- le type de l'attribut

#FIXED

Valeur fixe
L'attribut ne peut prendre que cette valeur.

#REQUIRED

Valeur obligatoire
L'attribut doit avoir une valeur.

#CURRENT

Valeur courante
Si l'attribut n'a pas de valeur spécifiée, il prendra la valeur courante.

#CONREF

Référence croisée
La valeur sera utilisée pour les références croisées.

#IMPLIED

Valeur implicite
Si la valeur n'est pas spécifiée, le système de traitement définira une valeur.

Exemple :
paragraphe id ID #IMPLIED >

Les commentaires

Un commentaire permet d'ajouter des informations pour une plus grande lisibilité de la DTD. Ces informations ne seront pas interprétées par les systèmes utilisant la DTD.
Un commentaire est noté de la manière suivante :
 : marque la fin du commentaire
Il est possible d'écrire un commentaire sur plusieurs lignes


Logo de la date de modification 05/05/2021 Logo du nombre de vues 1 524 vues

Bookmark and Share


Cet élément est cité dans les 2 articles suivants :

L'Informatique : Schema, SGML


Cliquez ici pour envoyer un messageVous en savez plus !
Si vous avez d'autres informations, des corrections à apporter à cette page, n'hésitez pas !
Cliquez ici, et envoyez moi vos informations.

La page Facebook du site :
Page FaceBook du site De l'Aleph à l'@

La page Twitter du site :
Suivre le site De l'Aleph à l'@ sur Twitter

CSS Valide !