Partie III-1-2 suite Création de la DTD du document XML |
||
Partie III-1 | Partie III-2 | |
Partie III-1-1 |
Cette page est la suite de la Partie III-1-2 (Création de la DTD).
3.Attributs ou Éléments
Question :
Doit on plutôt utiliser des attributs ou des éléments ? Et dans quelles conditions utilisera on l'un plutôt que l'autre ?
Réponse :
Il faut plutôt utiliser un élément
· lorsque l'ordre est important (l'ordre des attributs est au hasard).
· lorsque l'on veut réutiliser un élément plusieurs fois (avec le même parent).
· lorsqu'on veut (dans le futur) avoir des descendants / une structure interne.
· pour représenter un type de données (objet) plutôt que son usage, autrement
dit : une "chose" est un élément et ses propriétés sont des "attributs".
· lorsque XML sert comme markup pour un texte à publier (tout ce que le lecteur devra voir se trouvera dans un élément, tout ce qui est
"meta" dans attributs).
Il faut plutôt utiliser un attribut
· lorsqu'on désire faire référence à un autre élément (parent="girafe") et
(cat="girafe") dans l'élément référencé.
· pour indiquer l'usage/type/etc d'un élément comme dans : <address usage="prof"> ... </address>
· lorsque vous voulez imposer des valeurs par défaut dans la DTD
· lorsque vous voulez un type de données (pas grand chose) dans la DTD.
4.Déclaration des attributs
Une entité est n'importe quelle donnée pouvant être traitée en tant qu'un objet , tel qu'un fichier externe contenant du texte , une image ,... .
Une entité peut être analysable ou non. Le contenu d'une entité analysable est appelé texte de remplacement ; ce texte fait partie intégrante du document.
Une entité non-analysable est une ressource dont le contenu n'est pas nécessairement textuel. À chaque entité non-analysable est associée une notation, identifiée par un nom. XML n'impose aucune contrainte au contenu des entités non-analysables, mais exige seulement que les noms des entités et des notations soient mis à la disposition de l'application.
Les entités analysables sont appelées par leur nom au moyen d'un appel d'entité ; le nom des entités non-analysables est donné par la valeur d'un attribut de type ENTITY ou
ENTITIES.
Les entités générales sont destinées à être utilisées dans le contenu du document. Les entités paramètres sont des entités analysables destinées à être utilisées dans la
DTD. Les appels à ces deux types d'entités sont différents et sont reconnus dans des contextes différents. De plus, les deux types occupent des espaces de noms distincts ; une entité paramètre et une entité générale de même nom sont deux entités distinctes. Dans ce texte, les entités générales sont parfois appelées simplement entités quand il n'y a pas de risque d'ambiguïté.
On déclare les entités de la façon suivante :
entité générale
<!ENTITY tag "contenu">
Exemple :
<!ENTITY écoutille-ouverte SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
<!ENTITY image-écoutille SYSTEM "../grafix/OpenHatch.gif" NDATA gif >
Appel d'entité dans un document xml :
Un exemple est beaucoup plus parlant . Ainsi :
la feuille XML | bonjour.dtd |
<?xml version="1.0"?> <!DOCTYPE accueil SYSTEM "bonjour.dtd"> <accueil>&livre;</accueil> |
<!ELEMENT accueil (#PCDATA)> <!ENTITY % ed "Éditions Gallimard" > <!ENTITY droits "Tous droits réservés" > <!ENTITY livre "La Peste : Albert Camus, © 1947 %ed;. &droits;" > |
Voici le résultat :
La Peste : Albert Camus, © 1947 Éditions Gallimard . Tous droits réservés
Le & dans '&livre' permet à l'analyseur de retrouver l'adresse de l'entité livre et donc d'afficher son contenu.
Cela peut très bien se faire dans l'entité même (exemple avec &droits).
Conclusion :
La DTD est un outil puissant de création de standards de documents.
La DTD peut être référencé par l'URL ou inclue dans le document XML.
Les DTD seront remplacés par XSchema dans quelques temps.