Sunteți pe pagina 1din 9

17/01/13

Documents XML valides - DTD

Chapitres traits
Critre de base d'un document XML valide

Critre de base d'un document XML valide


Chaque document XML doit tre bien form. En d'autres termes, il doit satisfaire un minimum d'exigences de conformit. Si un document n'est pas bien form, il ne peut tre considr comme un document XML. Revoici les critres minimums : 1. Le document doit avoir exactement un lment de niveau le plus lev appel : lment document ou lment racine. Tous les autres lments doivent tre logs entre ces marqueurs.

2. Les lments doivent tre correctement embots. Les lments doivent tre imbriqus, mais ne doivent pas se recouvrir.

3. Chaque lment doit avoir la fois un marqueur d'ouverture et un marqueur de fermeture. Si nous avons besoin d'un lment vide et que nous dsirons traiter directement avec les attributs, nous pouvons utiliser un raccourci.

4. Les noms d'lments sont sensibles la casse.

5. Les valeurs des attributs doivent tre dlimites par des guillemets simples ou doubles. 6. Les noms des attributs l'intrieur d'un lment doivent tre uniques. Il n'est pas permis d'avoir de dfinir plusieurs attributs possdant le mme nom l'intrieur d'un lment. 7. etc. Un document XML bien form peut aussi tre valide. Un document XML valide est un document bien form qui rpond en outre deux exigences. 1. Le prologue du document comporte une dclaration de type de document, contenant une Dfinition de Type de Document (DTD) qui dfinit la structure du document. 2. Le reste du document se conforme effectivement la structure dfinie dans la DTD.

Avantage d'un document XML valide


La cration d'un document XML valide semble accompagne de son lot de complication : d'abord, il faut dfinir compltement la structure du document dans une DTD, ensuite il faut crer le document lui-mme dans le respect des spcifications de la DTD.
Si toutefois, vous voulez tre certain que votre document se conforme une structure spcifique ou un ensemble de standards, l'inclusion d'une DTD dfinissant cette structure permet un processeur XML (tel que XERCES) de vrifier si votre document est conforme la structure. En d'autres termes, une DTD fournit un prototype standard au processeur, de sorte qu'en vrifiant la validit du document il peut appliquer la structure dsire et garantir que le document respecte les normes requises.

Rendre valides des documents XML est particulirement utile pour assurer une uniformit dans un groupe de
coursinformatique.dyalo.com/XML/DTD/DTD.htm 1/9

17/01/13

Documents XML valides - DTD

documents similaires. En fait, la norme XML dfinit une DTD comme une grammaire pour une classe de documents .

Travailler avec des DTD internes ou externes


Si vous ne devez travailler qu'avec un seul document XML, vous pouvez mettre en uvre votre DTD directement dans le mme document ds le dbut avant les premires critures de vos balises XML. Dans ce cas l, il s'agit d'une DTD interne. Dans la majorit des cas, il est prfrable de spcifier votre DTD dans un fichier spar pour qu'il permette la validit d'un ensemble de documents XML. Il s'agit alors d'une DTD externe. Il existe deux types de DTD externes : 1. DTD externe publique : mot-cl PUBLIC . Si vous devez dfinir un document XML sur des sujets dj connus, comme des documents sur les mathmatiques, sur le traitement d'images, il est certainement possible que des DTD existent dj, il suffit alors de se connecter la bonne adresse URL. 2. DTD externe non publique : mot-cl SYSTEM . La plupart du temps, les documents XML relatent des sujets trs varis dont il est ncessaire de fabriquer de toute pice les diffrentes rgles de notre document XML personnel.

Ajout d'une DTD externe un document XML pour le rendre valide


Les DTD externes sont spcifies l'aide d'une dclaration DOCTYPE contenant une URI qui identifie l'emplacement de la DTD.

La dclaration DOCTYPE doit se trouver dans le prologue d'un document XML, donc aprs la dclaration XML, mais avant l'lment racine.

Cration de la DTD
Les dclarations de marquage dcrivent la structure logique du document ; en d'autres termes, elles dfinissent les lments du document, les attributs et d'autres caractristiques.

Une DTD peut contenir les types de dclarations de marquage suivant :

1. Dclaration de type d'lment : elles dfinissent les types d'lments que le document peut contenir, de mme que le contenu et l'ordre des lments. 2. Dclaration de liste d'attributs : chaque dclaration de liste d'attributs dfinit les noms des attributs qui peuvent tre utiliss avec un type particulier, de mme que les types de donnes et les valeurs par dfaut de ces attributs. 3. Dclaration de liste d'entits : On peut utiliser des entits pour stocker des blocs de texte utiliss frquemment, ou pour incorporer des donnes non XML dans le document.

Dclarations d'lments
coursinformatique.dyalo.com/XML/DTD/DTD.htm 2/9

17/01/13

Documents XML valides - DTD

Une dclaration de type d'lment indique le nom de l'lment (de la balise XML) ainsi que le contenu autoris de l'lment (spcifiant souvent l'ordre dans lequel les lments de sa filiation peuvent apparatre). Prise ensemble, les dclarations des lments dans la DTD similaire un schma de base de donnes tracent la carte de toute la structure logique du document. En d'autres termes, les dclarations des lments indiquent le nom des lments que le document contient, l'ordre des lments et les spcifications de contenu des lments. Chacun de ces lments est spcifi l'aide d'une dclaration ELEMENT , compos d'un nom d'lment suivi d'une description du contenu de l'lment, sous la forme suivante :

1. nom_lment : est le nom de l'lment, c'est--dire le nom de la balise utilise dans le document XML. 2. contenu_lment : spcifie les lments enfants, du texte, ou les deux, qui peuvent appartenir l'lment. Sauf exception, si la dclaration d'un lment spcifie un contenu, ce dernier est toujours compris entre parenthses. ATTENTION : chaque lment autoris dans le corps d'un document XML doit tre dclar. Aprs avoir dclar un lment dans la DTD, vous avez le droit de vous en servir dans le corps d'un document XML associ une DTD.

Spcification du contenu d'un lment - #PCDATA


Le modle de contenu le plus simple est probablement celui qui indique qu'un lment ne doit contenir que des donnes textuelles analyses, c'est--dire, du texte brut contenant ventuellement des rfrences d'entits comme &gt ; ou &lt ; (quivalent < et > ). #PCDATA ne doit contenir aucun autre sous-lment, c'est--dire aucun lment enfant. Ce type de contenu reprsente finalement les donnes qui existent entre les balises XML les plus imbriques. Nous pouvons trouver soit un texte, soit un nombre, mais ce nombre n'est pas interprt en temps que tel, il correspond galement une suite de caractres.

Par exemple, cette dclaration renseigne un lment mumro_tlphone contenant du texte, mais ne pouvant pas tre dcrits par des chiffres reprsentant le code zone, le nombre et l'extension.

Spcification du contenu d'un lment Sous-lments


Un autre modle de contenu simple est celui indiquant qu'un lment doit avoir exactement un sous-lment d'un type donn. Dans ce cas, le modle de contenu se composera simplement du nom du sous-lment, entre parenthses.

Par exemple, cette dclaration indique qu'un lment fax doit contenir exactement un seul lment numro_tlphone. Un lment fax ne peut rien contenir en dehors d'un lment numro_tlphone et il ne peut pas en contenir plus ou moins de un.

Spcification du contenu d'un lment Squences


En pratique, un modle de contenu qui ne dsigne un seul sous-lment est peu frquent. La plupart des lments contiennent la fois des donnes textuelles analyses et ventuellement plusieurs sous-lments. La faon la plus simple pour indiquer plusieurs sous-lments est de les sparer par une virgule. C'est ce que l'on appelle une squence. Elle indique que les lments nomms doivent apparatre dans un ordre spcifique.

Par exemple, cette dclaration d'lment indique qu'un lment livre doit contenir exactement un sous-lment titre suivi exactement par un autre sous-lment auteur suivi exactement par un autre sous-lment pages.

coursinformatique.dyalo.com/XML/DTD/DTD.htm

3/9

17/01/13

Documents XML valides - DTD

Spcification du contenu d'un lment Nombre de sous-lments


Toutes les instances d'un lment donn n'ont pas exactement le mme nombre de sous-lments. Vous pouvez complter par l'un des trois suffixes le nom d'un lment dans le modle de contenu pour indiquer combien d'instances de cet lment sont attendues cet endroit.

? +

: autorise zro ou un lment.

* : autorise zro ou plusieurs lments.


: autorise un ou plusieurs lments.

Cette dclaration indique qu'un lment livre doit contenir l'lment titre, peut ou ne pas contenir les lments auteur et pages.

Vous pouvez autoriser plusieurs auteurs en positionnant un astrisque aprs auteur.

Spcification du contenu d'un lment Choix


Un choix est une liste de noms d'lments spars par des barres verticales. Dans ce cas de figure, nous devons exclusivement spcifier un lment parmi la liste propose et pas autre chose. coursinformatique.dyalo.com/XML/DTD/DTD.htm
4/9

17/01/13

Documents XML valides - DTD

exclusivement spcifier un lment parmi la liste propose et pas autre chose.

Cette dclaration indique qu'un lment Contact contient un des trois sous-lment possibles Adresse , Mail ou Tlphone.

Spcification du contenu d'un lment Parenthses


Pris sparment, les choix, les squences et les suffixes sont assez limits. Cependant, ils peuvent tre imbriqus de manire complexe pour dcrire peu prs n'importe quel modle de contenu convenable. Un choix ou une squence peuvent tre indiffremment insrs l'intrieur de parenthses. Les parenthses peuvent tre suivies par galement imbriquer des lments mis entre parenthses dans d'autre choix ou squences.

?,*

ou

+.

Vous pouvez

Spcification du contenu d'un lment Contenu mixte


Pour dclarer un lment pouvant contenir des donnes textuelles et, en outre, un ou plusieurs (ou aucun) lments enfants, listez chaque type d'lment enfant (afin de proposer le choix) la suite de #PCDATA dans le modle de contenu, en sparant les items l'aide du caractre

et en insrant un astrisque la suite du modle de contenu.

Cette dclaration indique qu'un lment dfinition peut contenir des donnes textuelles analyses et des sous-lments Nota. Elle ne spcifie ni dans quel ordre ils apparaissent, ni le nombre de chaque instance. Cette dclaration autorise une dfinition avoir un, aucun ou plusieurs sous-lments Nota, ou zone de texte.

Autre exemple :
coursinformatique.dyalo.com/XML/DTD/DTD.htm 5/9

17/01/13

Documents XML valides - DTD

Spcification du contenu d'un lment Elment vide


Certains lments, appels lments vides, ne possdent aucun contenu. Les lments vides sont quelque fois cris sous la forme d'une seule balise avec un le comportement souhait.

/>

la fin. Les balises vides possdent systmatiquement des attributs qui dfinissent

Ces lments vides sont dclars en utilisant le mot-cl EMPTY pour le modle de contenu :

Cette dclaration indique simplement que l'lment image doit tre vide, et non qu'il doit tre crit avec un marqueur d'lment vide. Etant donn cette dclaration, voil galement un lment image valide :

Si un lment est vide, alors il ne peut rien contenir, pas mme un espace blanc :

Spcification du contenu d'un lment ANY


Vous pouvez employer le mot-cl ANY pour indiquer que l'lment peur avoir tout type de contenu lgal. En d'autres termes, un lment de ce type peut contenir zro, un ou plusieurs lments enfants, dans n'importe quel ordre ou avec n'importe quel nombre de rptitions, avec ou sans donnes textuelles. C'est la spcification la plus souple ; elle cre un lment sans contrainte de contenu.

Dclaration d'attribut
Outre le fait de dclarer ses lments, un document valide doit dclarer tous les attributs des lments. Cela est ralis avec les dclarations ATTLIST. Un seul ATTLIST peut dclarer plusieurs attributs pour un seul type d'lment. Toutefois, si le mme attribut est rpt dans plusieurs lments, il doit tre dclar sparment pour chaque lment o il doit apparatre. Il est galement possible d'utiliser des appels d'entit paramtre pour rendre cette rptition moins lourde.

coursinformatique.dyalo.com/XML/DTD/DTD.htm

6/9

17/01/13

Documents XML valides - DTD

Une simple instruction ATTLIST peut dclarer diffrents attributs d'une mme balise.

Cette dclaration indique que les attributs source, largeur, hauteur sont obligatoires. Cependant, l'attribut alternative est optionnel et peut tre omis par certains lments image. Ces quatre attributs sont dclars contenir des donnes textuelles, le type d'attribut le plus gnrique.

Type d'attribut
Le type d'attribut est le second composant obligatoire dans une dfinition d'attribut. Il spcifie le genre de valeur que vous pouvez affecter l'attribut dans l'lment concern. Dans les documents XML bien forms, les valeurs des attributs peuvent tre n'importe qu'elle chane de texte. Les seules restrictions sont les occurrences de < et & qui doivent tre chappes par &lt ; et &amp ; et quelque soit le type de caractre utilis pour dlimiter la valeur (simple ou double quottes), il doit aussi tre chapp. Cependant, la DTD permet, dans une certaine mesure, des dclarations plus fortes sur le contenu de la valeur.

Dix types d'attributs existent dans XML :

1. CDATA 2. NMTOKEN 3. NMTOKENS 4. ENUMERATION 5. ENTITY 6. ENTITIES 7. ID 8. IDREF 9. IDREFS 10. NOTATION
Seuls ces dix types d'attribut sont autoriss. Une DTD ne peut pas indiquer que la valeur d'un attribut doit tre, par exemple, un entier ou une date entre 1975 et 2004.

Attribut par dfaut


Outre le fait de fournir un type de donnes, chaque dclaration ATTLIST inclut une dclaration par dfaut pour cet attribut. Quatre possibilits existent pour cette option. 1. #IMPLIED : L'attribut est optionnel. Chaque instance de l'lment peut, ou pas, proposer une valeur pour l'attribut. Aucune valeur par dfaut n'est fournie. 2. #REQUIRED : L'attribut est obligatoire. Chaque instance de l'lment doit proposer une valeur pour l'attribut. Aucune valeur par dfaut n'est fournie. 3. #FIXED : La valeur de l'attribut est fixe et non modifiable. Cet attribut a une valeur spcifie, que l'attribut soit ou ne soit pas explicitement not sur l'instance particulire d'un lment. Cette forme permet d'inclure ou d'omettre l'attribut d'un lment de type associ. Si vous omettez l'attribut, le processeur utilisera la valeur par dfaut spcifie.

A cette dclaration, les deux lments suivants sont valides et quivalents :

L'lment suivant est invalide coursinformatique.dyalo.com/XML/DTD/DTD.htm :

7/9

17/01/13

Documents XML valides - DTD

L'lment suivant est invalide :

4. Littral : La vraie valeur par dfaut en temps que chane de caractres crite entre guillemets.

CDATA
Une valeur d'attribut CDATA peut contenir n'importe quelle chane de caractres possible dans la valeur d'un attribut XML bien form. C'est le type d'attribut le plus gnral. Vous pouvez utiliser ce type pour un attribut source d'un lment image puisqu'il n'a pas de forme de texte particulire dans un tel attribut :

NMTOKEN
Il est impossible de spcifier dans une DTD le type de donnes affecter dans un attribut. Par exemple, vous ne pouvez pas obliger un attribut particulier contenir une date et un autre un nombre entier. La seule manire de restreindre les valeurs des attributs consiste faire appel des tokens de noms XML valides.

Les tokens de nom XML sont composs d'une ou plusieurs lettres, chiffres, points . En revanche les espaces ne sont pas autoriss.

. , tiret -

, ou soulign

NMTOKENS
Ce type d'attribut est identique au type NMTOKEN l'exception prs que la valeur peut inclure plusieurs tokens de nom (spars par des espaces) tous l'intrieur d'une seule chane entre guillemets. Par exemple, vous pouvez utiliser ce type pour dcrire l'attribut dates d'un lment concerts, si les dates sont de la forme :
26- 02- 2004 (jj-mm-aaaa).

Enumrations
L'numration est le seul type d'attribut n'tant pas reprsent par un mot cl XML. Le modle de contenu est plutt une liste de toutes les valeurs possibles pour un attribut, spares par des barres verticales. La valeur associe un type numr doit tre une chane entre guillemets conforme aux rgles du XML. Trois catgories de livres dans la mme bibliothque.

La dclaration prcdente indique que la valeur de l'attribut catgorie doit possder uniquement l'une des trois valeurs dsignes par la liste : BD, Fiction, Roman. La balise suivante est donc valide :

Il est possible de prciser une valeur par dfaut qui doit tre spcifie entre guillemets :

coursinformatique.dyalo.com/XML/DTD/DTD.htm

8/9

17/01/13

Documents XML valides - DTD

ID
Ce type indique que la valeur d'un attribut doit tre unique dans un document. Aucun attribut ID ne peut donc prendre une valeur dj affecte un autre attribut ID . Pour implmenter ce mcanisme, il convient de respecter certaines rgles : 1. Lorsque vous dfinissez la valeur d'un attribut ID, vous devez respecter les conventions d'appellation XML. En particulier, cela signifie que les valeurs ID ne peuvent pas commencer par un chiffre. 2. Chaque lment ne peut comporter qu'un et un seul attribut ID. Il est impossible de dclarer un lment avec plusieurs attributs ID. 3. Un attribut ID peut tre dclar comme #IMPLIED ou #REQUIRED, et aucune valeur par dfaut ne doit tre spcifie.

Dans cet exemple, le numro de scurit sociale offre un caractre unique pour chaque individu. Il parat appropri d'utiliser le type ID pour l'attribut numro_scu de l'lment employ . (Attention, il ne faut pas commencer par un chiffre) :

coursinformatique.dyalo.com/XML/DTD/DTD.htm

9/9

S-ar putea să vă placă și