Vidéo: Comment utiliser la puissance de la technologie XML dans vos applications 2024
Un document XML peut avoir un DTD, qui précise exactement quels éléments peuvent apparaître dans un document XML et dans quel ordre les éléments peuvent apparaître. DTD signifie Définition du type de document, mais cela ne fera pas partie du test.
Une DTD pour un document XML sur les films, par exemple, peut spécifier que chaque élément
Movie
doit avoir des sous-éléments
et
Price
et un attribut nommé < année
. Il peut également spécifier que l'élément racine doit être nommé
Films
et se composer d'un nombre quelconque d'éléments
Film
.
L'objectif principal de la DTD est d'épeler la structure d'un document XML afin que les utilisateurs du document sachent comment l'interpréter. Une autre utilisation, tout aussi importante, de la DTD consiste à valider le document pour s'assurer qu'il ne comporte aucune erreur structurelle. Si vous créez un document XML
contenant deux titres pour un film, par exemple, vous pouvez utiliser la DTD pour détecter l'erreur.
Vous pouvez stocker la DTD pour un document XML dans le même fichier que les données XML, mais le plus souvent, vous stockez la DTD dans un fichier distinct. De cette façon, vous pouvez utiliser une DTD pour gérer le format de plusieurs documents XML du même type. Pour indiquer le nom du fichier qui contient la DTD, vous ajoutez une déclaration
au document XML. Voici un exemple:
Ici, le fichier XML est identifié comme document
Films
, dont vous pouvez trouver la DTD dans le fichier
films. dtd
. Ajoutez cette étiquette près du début des films
. fichier xml
, juste après la balise
.
Ce code affiche un fichier DTD pour les films
. fichier XML
.
Chacune des étiquettes ELEMENT dans une DTD définit un type d'élément pouvant apparaître dans le document et indique ce qui peut apparaître comme le contenu de ce type d'élément. La forme générale de la balise
est la suivante:
élément
(contenu)> Utilisez les règles énumérées ici pour exprimer le contenu. Spécification du contenu de l'élément
Contenu
élément * | L'élément spécifié peut apparaître 0 fois ou plus. |
élément +
|
L'élément spécifié peut apparaître 1 fois ou plus. |
élément?
|
L'élément spécifié peut apparaître 0 ou 1 fois. |
element1 | element2
|
L'élément |
element1
|
ou
element2
peut apparaître.
element1, element2
element1 |
apparaît, suivi de
|
element2
.
#PCDATA
Les données textuelles sont autorisées. |
ANY
|
Tous les éléments enfants sont autorisés. |
EMPTY
|
Aucun élément enfant d'aucun type n'est autorisé. |
La première balise
|
ELEMENT |
dans la DTD ci-dessus, par exemple, indique qu'un élément
Films
est constitué de zéro élément
Film
.La deuxième balise
ELEMENT
indique qu'un élément
Movie
se compose d'un élément
Title
suivi d'un élément
Price
. Les troisième et quatrième
ELEMENTS
indiquent que les éléments
Titre
et
Prix
sont constitués de données textuelles.
Si cette notation semble vaguement familière, c'est parce qu'elle est dérivée d'expressions régulières.
La balise
ATTLIST
fournit le nom de chaque attribut. Sa forme générale est la suivante:
élément type d'attribut default-value >>
Voici une répartition de cette balise: l'élément nomme l'élément dont l'attribut peut apparaître.
attribut
-
le nom de l'attribut.
type -
spécifie ce qui peut apparaître comme valeur de l'attribut. Le
type -
peut être l'un des éléments répertoriés dans ce tableau.
par défautfournit une valeur par défaut et indique si l'attribut est obligatoire ou facultatif.
par défaut -
peut être n'importe lequel des éléments répertoriés dans le tableau suivant.
Types d'attributsElément
Valeur d'attribut …
Peut être n'importe quelle chaîne de caractères. | (string1 | string2 …) |
Peut être l'une des chaînes listées.
|
NMTOKEN |
Doit être un jeton de nom
|
|
, qui est une chaîne composée de lettres et de chiffres.
|
NMTOKENS Doit être un ou plusieurs jetons de noms séparés par un espace blanc. ID |
Est un jeton de nom qui doit être unique. En d'autres termes, aucun autre élément du document ne peut avoir la même valeur pour cet attribut.
|
IDREF |
Doit être identique à une valeur
|
ID |
utilisée ailleurs dans le document.
|
IDREFS
Est une liste de
valeurs IDREF |
séparées par un espace blanc.
|
Vérifiez les attributs par défaut ici.
Attributs par défaut |
Facultatif ou Obligatoire?
Obligatoire. | #IMPLIED |
Facultatif.
|
valeur |
Facultatif. Cette valeur est utilisée si l'attribut est omis.
|
Valeur #FIXED |
Facultatif. Cependant, s'il est inclus, il doit s'agir de cette valeur, et s'il est omis, cette valeur est utilisée par défaut.
|
|
Voici la déclaration de la balise
|
ATTLIST |
films. dtd
:
Cette déclaration indique que l'attribut va avec l'élément
Movie
, est nommé
year
, peut être n'importe quel type de données, et est requis.
Voici une balise
ATTLIST
qui spécifie une liste de valeurs possibles avec une valeur par défaut:
Cette forme de la balise
ATTLIST
vous permet de créer un attribut similaire à une énumération, avec une liste de valeurs acceptables.