DÉCLARER UNE DTD EN LIGNE

Transcription

DÉCLARER UNE DTD EN LIGNE
XML/03
08/12/00
11:06
Page 32
XML
DÉCLARER UNE DTD EN LIGNE
V
ous pouvez définir des types de données spécifiques
pour chaque composant d’un document XML grâce
à une définition de type de document (DTD).
Les DTD sont parfois qualifiées de vocabulaires, car elles
définissent un jeu commun et structuré d’éléments et
d’attributs, de la même manière que les lexiques humains
établissent des termes et règles syntaxiques identiques à
tous. Il est par exemple possible d’utiliser une DTD pour
limiter la valeur d’un élément XML à des caractères. Vous
pouvez implémenter une DTD de deux manières :
■
En incluant son texte dans le document XML, comme
c’est le cas dans cette tâche. Privilégiez cette approche
fondée sur des DTD en ligne dans de petits documents
XML et dans tous les fichiers XML en phase de
développement, ainsi que dans les cas où vous
n’envisagez pas d’appliquer la DTD à d’autres
documents XML.
■
En enregistrant le texte de la DTD dans un fichier
indépendant, auquel vous faites référence au sein du
document XML. Pour plus d’informations sur ces DTD
externes, consultez la page 34.
Une DTD en ligne se crée au moyen de la syntaxe suivante :
<!DOCTYPE élément_racine [règles_dtd]>
élément_racine correspond à la racine du document
XML qui renferme la DTD. règles_dtd désigne une ou
plusieurs déclarations XML qui définissent des règles de
DTD pour des éléments particuliers inclus dans la racine.
DÉCLARER UNE DTD EN LIGNE
⁄ Ouvrez le fichier XML
dans lequel vous désirez
ajouter une DTD en ligne.
¤ Cliquez entre la
déclaration XML et celle de
l’élément racine.
■ Note. Pour créer la déclaration
de document XML, consultez la
page 12. Pour définir l’élément
racine, consultez la page 14.
32
‹ Tapez <!DOCTYPE.
› Saisissez le nom de
l’élément racine du
document XML.
ˇ Tapez [.
XML/03
08/12/00
11:06
Page 33
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
3
Tous les éléments définis dans un fichier XML doivent être associés à une déclaration particulière dans la DTD.
Dans cette tâche, nous définissons un seul élément : BIENVENUE. La déclaration correspondante dans la DTD
décrit la règle de validation sémantique de cet élément. #PCDATA est un mot clé XML réservé qui limite le contenu
de la valeur de l’élément BIENVENUE à des caractères (contrairement à d’autres éléments, comme des valeurs
prédéfinies). Les mots clés répertoriés dans le tableau ci-dessous permettent de définir le type d’un élément XML :
Mot clé
Description de l’élément
(#PCDATA)
Caractères
(#PCDATA)*
Zéro ou plusieurs caractères
(un_élément)
Une seule instance de un_élément
(un_élément+)
Une ou plusieurs instances de un_élément
(un_élément?)
Zéro ou plusieurs instances de un_élément
(un_élément, autre_élément)
Une instance de un_élément et une de autre_élément
(un_élément | autre_élément) Une instance de un_élément ou une de autre_élément
(#PCDATA | un_élément)*
Á Tapez une ou plusieurs
règles de DTD.
Note. Pour créer une règle de DTD,
consultez les pages 38 à 49.
Une instance de un_élément ou plusieurs caractères (quand #PCDATA
est employé avec d’autres options, il doit figurer en premier dans la
liste) EMPTY Aucun contenu ANY N’importe quel contenu (ANY
désactivant la vérification du type de données, employez-le uniquement
lors d’une conversion de document, et seulement si besoin est, mais
jamais pendant la phase de production)
■ Ici, nous insérons le mot
clé #PCDATA, afin de limiter
la valeur de l’élément
BIENVENUE à des caractères.
‡ Tapez la balise de
fermeture de la DTD : ]>.
° Enregistrez le fichier.
33
XML/03
08/12/00
11:06
Page 34
XML
DÉCLARER ET ENREGISTRER
UN FICHIER DTD EXTERNE
i vous envisagez d’appliquer votre DTD à plusieurs
documents XML, vous pouvez enregistrer le texte qui
la compose dans un fichier externe indépendant et
référer ensuite à ce dernier dans votre document XML, en
associant le mot clé SYSTEM à la déclaration DOCTYPE.
S
Les règles de validation se retrouvant ainsi séparées des
données XML, cette technique favorise le réemploi des
documents. Plusieurs documents XML peuvent en effet
référer au même fichier DTD, sans que les règles de
validation soient physiquement répétées.
Pour créer une DTD externe, utilisez la syntaxe suivante :
<!DOCTYPE élément_racine SYSTEM
"fichier_dtd">
élément_racine correspond à la racine du document
XML à laquelle est appliquée la DTD. fichier_dtd est le
nom du fichier DTD externe.
La déclaration DOCTYPE accepte n’importe quel nom de
fichier DTD existant comme paramètre pour le nom de la
DTD. Il est de rigueur d’ajouter l’extension .dtd à tous les
fichiers DTD.
DÉCLARER ET ENREGISTRER UN FICHIER DTD EXTERNE
⁄ Ouvrez le fichier XML à
lier à une DTD externe.
34
¤ Cliquez juste après la
déclaration XML.
‹ Tapez <!DOCTYPE.
XML/03
08/12/00
11:06
Page 35
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
3
Lorsque vous associez au mot clé SYSTEM uniquement le nom du fichier DTD, le parseur XML considère que
ce dernier se trouve dans le même dossier que le document XML référant. Si le fichier DTD est stocké dans
un autre répertoire, la valeur de ce paramètre doit correspondre au nom du fichier DTD avec son chemin
d’accès. Supposons que le fichier section1.xml se trouve dans le dossier c:\xml\chapitre2, et le fichier
section2.dtd, dans le sous-dossier c:\xml\chapitre2\DTD. La déclaration DOCTYPE doit alors se présenter
comme suit :
<!DOCTYPE livre_programmation SYSTEM "/DTD/section2.dtd">
Les mots clés répertoriés dans le tableau ci-dessous permettent de définir le type d’un attribut XML :
Mot clé
Description de l’attribut
CDATA
Caractères (chaîne)
ID
Identifiant unique
IDREF/IDREFS
Un ou plusieurs ID (alors séparés par des espaces) définis auparavant
ENTITY/ENTITIES
Une ou plusieurs entités prédéfinies, alors séparées par des espaces
(voir <!ENTITY>)
NMTOKEN/NMTOKENS
Version limitée (aucun espace toléré) d’un ou plusieurs CDATA, alors
séparés par des espaces
a | b | c | …
Liste d’attributs déjà définis et séparés par un trait vertical
› Tapez le nom de la racine
qui constituera le premier
élément affecté par la DTD.
ˇ Tapez SYSTEM.
Á Entre guillemets, tapez le
‡ Tapez le chevron de
fermeture : >.
° Enregistrez le fichier.
nom du fichier DTD.
Note. Si le fichier DTD se trouve
dans un autre dossier que le
document XML, indiquez son
chemin d’accès complet. S’il se
situe sur le Web, spécifiez son URL.
35
XML/03
08/12/00
11:06
Page 36
XML
AJOUTER UN COMMENTAIRE
DANS UN FICHIER DTD
V
ous pouvez ajouter des commentaires dans un
fichier DTD, afin de faciliter la lecture et la gestion
du code.
Il est possible d’appliquer une DTD à plusieurs
documents. De nombreux utilisateurs comptent d’ailleurs
sur le développement de DTD standard dans les années à
venir, qui pourraient être employées par toutes les
grandes entreprises. Ajoutée à la nature non intuitive de la
syntaxe DTD, cette réutilisation éventuelle par d’autres
programmeurs rend les commentaires essentiels dans
l’élaboration de fichiers DTD.
Les commentaires s’insèrent dans un fichier DTD au
moyen de la syntaxe suivante :
<!–– commentaire ––>
Vous pouvez inscrire à la place de commentaire
n’importe quel texte, sauf un tiret double (--). Il est aussi
possible d’y insérer des espaces séparateurs, comme des
retours chariot, très utiles pour améliorer la lisibilité.
Les commentaires peuvent figurer n’importe où dans un
fichier DTD, si ce n’est à l’intérieur d’un autre
commentaire de la DTD. En d’autres termes, il est
impossible de les imbriquer. La syntaxe suivante, par
exemple, est incorrecte et sera signalée comme erronée
par le parseur :
<!–– premier commentaire <!–– deuxième
commentaire ––> ––>
AJOUTER UN COMMENTAIRE DANS UN FICHIER DTD
⁄ Ouvrez le fichier DTD
dans lequel vous désirez
insérer un commentaire.
36
¤ Tapez la balise d’ouverture
du commentaire : <!--.
XML/03
08/12/00
11:06
Page 37
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
Grâce aux commentaires de DTD formels, vous
pouvez :
■
■
Décrire les règles de validation sous une forme
intelligible pour un lecteur humain. Le nombre
de DTD ne cessant de croître, les développeurs
doivent être en mesure de les comprendre et
de les utiliser sans peine. En incluant des
commentaires adéquats dans un fichier DTD,
et non dans un document séparé ou un manuel,
vous vous assurez que la documentation
essentielle n’est pas dissociée du fichier DTD
physique.
Organiser les règles de validation pour améliorer
la lisibilité. Les DTD constituent généralement de
longs fichiers, très complexes. En les scindant en
plusieurs sections (une pour la déclaration de
l’entité et une pour celle des éléments, par
exemple), vous facilitez leur lecture et leur
modification.
‹ Saisissez votre commentaire.
3
Lors du développement d’une application, il est
conseillé d’insérer un commentaire de DTD avant
chacun de ces composants :
■
Section de déclaration des éléments. Regroupez
toutes les déclarations d’éléments et faites
précéder cette section, qui constitue
généralement l’essentiel du document DTD,
d’un commentaire d’en-tête de section.
■
Section de déclaration des entités. Faites suivre la
section de déclaration des éléments d’une section
de déclaration des entités, où vous définissez
toutes les entités de la DTD. Ajoutez ensuite un
commentaire d’en-tête de section juste avant.
■
Toute déclaration d’élément ou d’entité
difficilement identifiable par un lecteur
occasionnel de la DTD. Ajoutez, si nécessaire,
des commentaires descriptifs au sein de
différentes sections.
› Tapez la balise
de fermeture du
commentaire : -->.
ˇ Enregistrez le fichier.
37
XML/03
08/12/00
11:06
Page 38
XML
DÉCLARER UN ÉLÉMENT CONTENEUR
ous pouvez établir des relations conteneur/contenu
entre des données XML pendant la phase
d’exécution. Les conteneurs sont des éléments
composés exclusivement d’autres éléments prédéfinis.
V
La possibilité de mettre de telles relations en œuvre
permet de façonner des rapports complexes entre des
données XML. Vous pouvez ainsi établir des relations
entre des groupes d’éléments répétitifs et apparentés,
comme des employés et des projets, des clients et des
commandes, ou des produits et des détaillants.
Pour créer un élément conteneur, utilisez la syntaxe
suivante :
<!ELEMENT élément_conteneur
(élément_contenu_1, élément_contenu_2...
élément_contenu_N)>
élément_conteneur est le nom de l’élément XML à
définir comme conteneur.
élément_contenu_1, élément_contenu_2 et
élément_contenu_N correspondent aux noms des
éléments XML à inclure dans élément_conteneur.
DÉCLARER UN ÉLÉMENT CONTENEUR
⁄ Ouvrez le fichier DTD
dans lequel vous souhaitez
définir une relation
conteneur/contenu.
38
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 39
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
3
Les éléments contenus n’ont pas à être déclarés dans le même ordre dans la DTD que dans le document
XML, mais il est recommandé de le faire. Mettre en outre chacun d’eux en retrait permet d’identifier
beaucoup plus facilement les relations qui les unissent.
Pour faire référence à un élément appartenant à un domaine de noms dans une DTD, vous devez en indiquer
le nom totalement qualifié. La syntaxe suivante, par exemple, indique que l’élément detaillants associé au
domaine de noms d dans le fichier XML correspondant est inclus dans l’élément infos_marketing :
<!ELEMENT infos_marketing (caracteristiques_particulieres, gamme, d:detaillants)>
Les déclarations d’attributs peuvent prendre l’une de ces quatre valeurs par défaut :
Valeur par défaut de l’attribut
Description
#REQUIRED
L’attribut doit renfermer une valeur pendant la phase d’exécution.
#IMPLIED
L’attribut peut ne pas renfermer de valeur pendant la phase
d’exécution.
"valeur_particulière"
Si l’attribut ne renferme aucune valeur pendant la phase d’exécution,
valeur_particulière lui est affecté.
#FIXED "valeur_particulière"
‹ Tapez le nom de
l’élément conteneur.
La valeur valeur_particulière est affectée d’office à l’attribut.
› Entre parenthèses, saisissez
le nom des éléments contenus,
en séparant chacun d’eux par
une virgule et un espace.
ˇ Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
Á Enregistrez le fichier.
■ Les éléments produit et
fonction_js ont été déclarés
dans le document XML associé
à cette DTD.
39
XML/03
08/12/00
11:06
Page 40
XML
DÉCLARER UN ÉLÉMENT OBLIGATOIRE
ous pouvez créer une règle de validation qui
garantisse l’association d’un élément donné à une
valeur unique pendant la phase d’exécution. On
qualifie alors cet élément d’obligatoire, car il doit exister
lors de l’exécution. Tous les éléments XML étant contenus
dans un élément racine, voire également dans d’autres
éléments, les éléments obligatoires sont généralement
définis comme éléments contenus.
V
Voici quelques exemples de types d’éléments de données
couramment définis comme obligatoires :
■
nom de client,
■
numéro de sécurité sociale,
■
numéro d’identification de produit,
■
numéro de compte.
Un élément obligatoire se crée au moyen de la syntaxe
suivante :
<!ELEMENT élément_conteneur
([élément_obligatoire_N])>
élément_conteneur est le nom de l’élément XML à
définir comme conteneur.
élément_obligatoire_N correspond au nom d’un ou
plusieurs éléments XML qui, pendant la phase
d’exécution, ne devront renfermer qu’une seule valeur.
DÉCLARER UN ÉLÉMENT OBLIGATOIRE
⁄ Ouvrez le fichier DTD dans
lequel vous désirez ajouter un
élément obligatoire.
40
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 41
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
3
Les éléments contenus peuvent se présenter sous l’une des trois formes suivantes :
■
élément : cet élément doit être associé à une valeur et une seule.
■
élément+ : cet élément doit être associé à une ou plusieurs valeurs.
■
élément* : cet élément doit être associé à zéro ou plusieurs valeurs.
La syntaxe de DTD suivante, par exemple, déclare un élément contenu, produit, qui doit être associé
à une valeur unique :
<!ELEMENT infos_produits_bertani (produit)>
La syntaxe suivante, en revanche, déclare un élément contenu, produit, qui doit être associé à une valeur,
au moins :
<!ELEMENT infos_produits_bertani (produit+)>
La syntaxe suivante, enfin, déclare un élément contenu, produit, qui peut n’être associé à aucune valeur
ou être couplé à plusieurs :
<!ELEMENT infos_produits_bertani (produit*)>
Attention ! si vous utilisez le symbole + ou *, n’oubliez pas de le faire figurer entre les parenthèses, comme
dans les exemples ci-dessus.
‹ Tapez le nom de l’élément
conteneur.
› Entre parenthèses,
saisissez le nom des
éléments obligatoires, en
séparant chacun d’eux par
une virgule et un espace.
ˇ Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
Á Enregistrez le fichier.
41
XML/03
08/12/00
11:06
Page 42
XML
DÉCLARER UN ÉLÉMENT FACULTATIF
ous pouvez créer une règle de validation qui
permette d’associer un élément donné à zéro ou
plusieurs valeurs pendant la phase d’exécution.
On qualifie alors cet élément de facultatif.
V
Il est possible de définir des éléments facultatifs en même
temps que des éléments obligatoires. Vous pouvez par
exemple déclarer un élément conteneur qui renferme à la
fois des éléments facultatifs et obligatoires.
Pour désigner un élément facultatif, vous devez inclure un
point d’interrogation dans la syntaxe :
élément_conteneur est le nom de l’élément XML à
définir comme conteneur.
élément_facultatif_N correspond au nom d’un ou
plusieurs éléments XML qui, pendant la phase
d’exécution, pourront être associés à zéro ou plusieurs
valeurs. Si vous insérez plusieurs éléments, séparez-les
par une virgule et un espace (exemple :
élément_obligatoire+,
autre_élément_obligatoire,
élément_facultatif?).
<!ELEMENT élément_conteneur
([élément_facultatif_N?])>
DÉCLARER UN ÉLÉMENT FACULTATIF
⁄ Ouvrez le fichier DTD
dans lequel vous désirez
ajouter un élément facultatif.
42
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 43
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
Le point d’interrogation (?) qui permet de définir des
éléments facultatifs sert principalement à établir des
relations zéro/plusieurs entre des éléments de
données. Ce type de rapport est très employé par
les développeurs d’applications de bases de
données. On en trouve également assez souvent
dans des organisations de données concrètes.
En associant des documents XML à des DTD, les
développeurs peuvent créer des applications de
bases de données composées de bases de données
à fichiers « à plat » (les documents XML), de fichiers
de définitions de données (les DTD) et de
fonctionnalités de requête (le code de traitement).
‹ Tapez le nom de l’élément
conteneur.
› Entre parenthèses, saisissez
le nom de l’élément contenu
facultatif.
ˇ Tapez un point
d’interrogation juste après
le nom de l’élément
facultatif.
3
Dans l’exemple de cette tâche, vous pouvez associer
zéro ou plusieurs instances de infos_marketing à
un produit. Le DOM (Document Object Model)
permet d’effectuer des boucles par toutes les
instances de infos_marketing associées à un
produit donné éventuel pendant la phase
d’exécution. Pour ce faire, il suffit de créer un
processeur XML. Consultez à cette fin le chapitre 13.
Ne confondez pas la déclaration d’élément
facultatif (?) avec le symbole requis pour déclarer
zéro ou plusieurs caractères pour un élément
(#PCDATA)* donné.
Á Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
‡ Enregistrez le fichier.
43
XML/03
08/12/00
11:06
Page 44
XML
DÉCLARER UN ÉLÉMENT RÉPÉTÉ
ous pouvez créer une règle de validation qui
garantisse l’association d’un élément donné à une
ou plusieurs valeurs pendant la phase d’exécution.
Ce type de déclaration est semblable à celle d’un élément
obligatoire, à ceci près que cette dernière n’autorise
qu’une seule valeur pendant la phase d’exécution, et non
plusieurs.
V
Pour désigner un élément répété, vous devez inclure un
signe plus (+) dans la syntaxe :
<!ELEMENT élément_conteneur
([élément_contenu_N+])>
élément_conteneur est le nom de l’élément XML à
définir comme conteneur.
élément_contenu_N correspond au nom d’un ou
plusieurs éléments XML qui, pendant la phase
d’exécution, devront être associés à une ou plusieurs
valeurs.
DÉCLARER UN ÉLÉMENT RÉPÉTÉ
⁄ Ouvrez le fichier DTD
dans lequel vous désirez
ajouter un élément répété.
44
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 45
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
Le signe plus (+) qui permet de définir des éléments
répétés sert principalement à établir également des
relations un/plusieurs entre des éléments de
données. Ce type de rapport est très employé par
les développeurs d’applications fondées sur des
bases de données relationnelles. En associant des
documents XML à des DTD, les développeurs
peuvent créer des applications de bases de données
composées de bases de données à fichiers « à plat »
(les documents XML), de fichiers de définitions de
données (les DTD) et de fonctionnalités de requête
(le code de traitement).
‹ Tapez le nom de l’élément
conteneur.
› Entre parenthèses,
saisissez le nom de
l’élément répété.
3
Dans l’exemple de cette tâche, un élément
infos_produits_bernati doit être associé à un ou
plusieurs éléments produit pendant la phase
d’exécution.
Les mots clés ID et IDREF permettent également
d’établir deux précieuses instructions pour les bases
de données en XML : les clés primaire et externe.
Pour définir des attributs de type ID et IDREF,
consultez le chapitre 4.
Á Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
‡ Enregistrez le fichier.
ˇ Tapez un signe plus (+)
juste après le nom de
l’élément répété.
45
XML/03
08/12/00
11:06
Page 46
XML
DÉCLARER UN ÉLÉMENT RENFERMANT
DES CARACTÈRES
ous pouvez créer une règle de définition de
données garantissant que la valeur d’un élément
donné se compose exclusivement de caractères
pendant la phase d’exécution (contrairement à des
éléments prédéfinis ou à une association des deux).
V
Pour déclarer le type de données caractère pour un
élément XML, vous devez utiliser le mot clé réservé et
sensible à la casse, #PCDATA (Parseable Character Data).
Ce dernier représente un caractère unique analysable
(c’est-à-dire autre qu’un caractère spécial). Les éléments
de type #PCDATA ne peuvent renfermer que des
caractères, et aucun autre élément prédéfini.
La syntaxe à utiliser est la suivante :
<!ELEMENT nom_élément (#PCDATA)*>
nom_élément est le nom de l’élément qui devra
renfermer des caractères.
L’astérisque (*) qui apparaît hors de la déclaration du type
de données (#PCDATA) est obligatoire. Il indique que la
valeur de l’élément peut renfermer zéro ou plusieurs
caractères analysables pendant la phase d’exécution. Si
vous omettez l’astérisque, cette valeur est limitée à un
seul caractère.
DÉCLARER UN ÉLÉMENT RENFERMANT DES CARACTÈRES
⁄ Ouvrez le fichier DTD
dans lequel vous désirez
ajouter un élément
renfermant des caractères.
46
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 47
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
Les seules valeurs non valides pour un élément de
type #PCDATA sont des données de balisage, séries
de caractères encadrés par des chevrons d’ouverture
et de fermeture.
"<Cette valeur, par exemple, ne peut pas
être affectée à un élément de type #PCDATA,
car elle renferme les caractères <>.>"
3
Avec le mot clé #PCDATA, les nombres sont
considérés comme des caractères. Pour déclarer un
type de caractères plus spécifiques, comme des
entiers, une date ou une heure, vous devez utiliser
un schéma ou inclure un code de détection et de
gestion dans votre processeur XML. Les chapitres 6
et 7 expliquent comment créer un schéma, et le
chapitre 13, un processeur XML.
Si vous avez besoin de définir un élément XML qui
accepte des données de balisage comme valeur,
utilisez une section CDATA. Consultez à cette fin la
page 30.
‹ Tapez le nom de l’élément
qui devra renfermer des
caractères.
› Juste après le nom de
l’élément, tapez (#PCDATA)*.
ˇ Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
Á Enregistrez le fichier.
47
XML/03
08/12/00
11:06
Page 48
XML
DÉCLARER UN ÉLÉMENT VIDE
ous pouvez créer une règle de définition de
données garantissant que la valeur d’un élément
précis ne renferme aucune donnée pendant la
phase d’exécution. Bien que cela semble a priori
surprenant, les éléments vides se révèlent parfois
précieux.
V
Certains éléments servent à rassembler des données
conceptuellement, et non à définir des valeurs spécifiques
eux-mêmes. Prenons l’exemple d’un élément appelé
description_produit. Selon l’application et le produit
impliqués, il se peut qu’aucune valeur ne convienne à cet
élément. Néanmoins, il est possible que plusieurs
attributs, considérés conjointement, aboutissent à une
description du produit acceptable. Dans de telles
situations, vous pouvez déclarer l’élément comme vide et
définir plusieurs attributs. Dans notre exemple, vous
déclareriez les attributs hauteur, poids, prix, couleur, etc.,
qui, pris dans leur ensemble, décriraient un produit
particulier. Les attributs associés à un élément vide ne
doivent pas eux-mêmes être vides pendant la phase
d’exécution. Pour déclarer des attributs, consultez le
chapitre 4.
Un élément vide se déclare au moyen de la syntaxe
suivante :
<!ELEMENT nom_élément EMPTY>
nom_élément est le nom de l’élément à définir comme
vide.
DÉCLARER UN ÉLÉMENT VIDE
⁄ Ouvrez le fichier DTD
dans lequel vous désirez
créer un élément vide.
48
¤ Tapez <!ELEMENT.
XML/03
08/12/00
11:06
Page 49
CRÉER UNE DTD I - DÉCLARER DES ÉLÉMENTS DE DTD
Les éléments vides ne peuvent évidemment pas être
associés à une valeur unique signifiante. En
revanche, il est possible de les utiliser pour
regrouper plusieurs attributs.
En tant que développeur, vous êtes libre de définir
vos données comme éléments ou comme attributs.
Gardez simplement à l’esprit que pour un
programme de traitement, l’accès aux éléments et
leur gestion sont plus simples que ceux des
attributs. Les éléments conviennent parfaitement à la
description de données que vous devez
fréquemment localiser et utiliser ; les attributs sont
quant à eux parfaits pour la description de
métadonnées (données sur d’autres données).
‹ Tapez le nom de l’élément
qui devra rester vide.
› Juste après le nom de
l’élément, tapez EMPTY.
3
Voici un exemple d’élément vide, appelé
infos_nutrition, et associé aux attributs non vides
calories_pour_cent_grammes et
teneur_vitamines. Les valeurs de ces derniers
définissent les informations de nutrition
(infos_nutrition) pour un produit donné :
<!ELEMENT infos_nutrition EMPTY>
<!ATTLIST infos_nutrition
calories_pour_cent_grammes CDATA
#REQUIRED
teneur_vitamines CDATA #IMPLIED
>
ˇ Tapez le chevron de
fermeture (>) de la balise
<!ELEMENT>.
Á Enregistrez le fichier.
49