Partie III

Partie III-1-2

Création de la DTD du document XML

Partie IV

Partie III-1 Partie III-2
Partie III-1-1

bas

Suite

Voir partie : la feuille XML.

Un document XML est une arborescence. Donc la racine de l'arbre XML doit être définie comme un élément dans le DTD .
La DTD permet de définir certaines règles de l'arborescence du doc xml . Pour cela il se sert d'éléments, d'entités, d'attributs, .....
Cette partie est surtout consacrée à eux.

1. Déclaration d'éléments

Un élément est une suite logique d'info à l'intérieur du document xml .
Il se déclare ainsi dans la DTD :

<!ELEMENT tag specification (contenu)> La spécification du contenu d'un élément contient soit une combinaison d'autres éléments , soit des éléments spéciaux.


Exemple : <!ELEMENT personnene (nom,email*)>

<personnene> peut contenir les éléments nom et email.
* : <adresse> peut apparaître n fois dans <personnene> n étant compris entre 0 et l'infini.

On peut donc utiliser les éléments suivant certaines règles : 

De plus les éléments spéciaux permettent de créer des balises qui normalement serait refusées par la DTD.

Un exemple nous permet de voir ces concepts :
Ainsi la DTD suivante :

<!DOCTYPE carnet [
<!ELEMENT carnet (personnene)+>
<!ELEMENT personnene (nom,email*)>
<!ELEMENT nom (famille,prenom)>
<!ELEMENT famille (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
Cette DTD nous permet de concevoir la hiérarchie du document xml.

Ainsi le document xml suivant :

<carnet>
<personnene>
<nom>
<famille>Dupouy</famille> <prenom>Sylvain</prenom> </nom>
<email>
dup.sly@wanadoo.fr</email>
</personnene>

<personnene>
<nom> <famille>
Bonnafous</famille> <prenom>Pierre</prenom> </nom>
<email>Pedro.Bonnafous@wanadoo.fr</email>
</personnene>
</carnet>
Ce document est valide car il respecte la DTD créée précédemment .

Attention : Tout non respect de la DTD (règles fixées) rend le document invalide et donc illisible par l'analyseur de syntaxes Xml.

2.Déclaration d'attributs

Un attribut est une paire de 'nom_valeur' associée à un élément et fournissant plus d'informations sur le contenu de cet élément .

Il se déclare ainsi :

<!ATTLIST tag nom TypeAttribut TypeAttribut TypeDef Défaut>

Exemple : <!ATTLIST personnene sexe (homme | femme) #IMPLIED "homme">

Les tableaux suivants définissent les TypeAttribut et les TypeDef :








Un exemple étant plus parlant, nous vous proposons la DTD suivante pour vous permettre de caractériser plus précisément la DTD 'carnet' grâce à des attributs :

<!DOCTYPE carnet [
<!ELEMENT carnet (personne)+>
<!ELEMENT personne (nom,email*)>
<!ATTLIST personne id ID #REQUIRED>
<!ATTLIST personne sexe (homme|femme) #IMPLIED>
<!ELEMENT nom (#PCDATA|famille|prenom)*>
<!ELEMENT famille (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT link EMPTY>
<!ATTLIST link manager IDREF #IMPLIED subordinates IDREFS #IMPLIED>
]>

Il permet de définir le document XML suivant :

<!DOCTYPE carnet SYSTEM "ab.dtd">
<carnet>
<personne id="S.Dupouy" sexe="homme">
<nom>
<famille>Dupouy</famille> <prenom>Sylvain</prenom>
</nom>
<email>
dup.sly@wanadoo.fr</email>
<link manager="P.Bonnafous"/>
</personne>
<personne id="P.Bonnafous" sexe="homme">
<nom>
<famille>
Bonnafous</famille> <prenom>Pierre</prenom>
</nom>
<email>
Pedro.Bonnafous@wanadoo.fr</email>
<link subordinates="S.Dupouy"/>
</personne>
</carnet>
</pre>

Par souci d'économiser du temps de téléchargement, nous avons divisé cette partie en deux.

SUITE de la Création de la DTD (Partie 2)

Partie III Haut Partie IV
Partie III-1 RETOUR Partie III-2
    Partie III-1-2 suite