DTD : Declaration
* DTD interne :
<!DOCTYPE root-element [ declarations ]>
< !DOCTYPE simple [
<!ELEMENT simple (#PCDATA)>
]>
* DTD externe :
UR L : <!DOCTYPE bibliography SYSTEM "bibliography.dtd">
Fichier local : <!DOCTYPE bibliography SYSTEM "bibliography.dtd">
DTD : Construction ...
* Du point de vue d'une DTD, un document XML est constitué des blocs de données suivants:
- Éléments
- Balises
- Attributs
- Entités
- Données brutes PCDATA
- CDATA
DTD : Exemple
<!ELEMENT (livre+)>
< !ELEMENT livre (titre,isbn,auteurs,description?,prix)>
< !ELEMENT auteurs (nom_auteur+)>
< !ELEMENT titre (#PCDATA)>
< !ELEMENT isbn (#PCDATA)>
< !ELEMENT auteur (#PCDATA)>
< !ELEMENT description (#PCDATA)>
< !ELEMENT prix EMPTY>
< !ATTLIST prix CanCDATA #REQUIRED>
DTD : ELEMENTS (Déclaration des éléments)
* Syntaxe :
<!ELEMENT element regexp>
où
- Le nom de l'élément est donné par l'identifiant element et l'expression rationnelle regexp décrit les suites autorisées d'éléments dans le contenu de
l'élément.
- Cette expression rationnelle est construite à partir des noms d'éléments en utilisant les opérateurs ',', '|', '?','*' et '+' ainsi que les parenthèses '(' et ')' pour former des groupes.
Opérateur Signification
, Mise en séquence
| Choix
? 0 ou 1 occurence
* Itération (nombre quelconque d'occurences)
+ Itération stricte (nombre non nul d'occurences)
* Syntaxe :
<!ELEMENT nom-élément contenu-élément>
où
- nom-élément est le nom de l'élément;
- contenu-élément indique le type de données ou les éléments qui doivent ou peuvent être imbriqués.
* Exemple :
< !ELEMENT NOM_PERSONNE (NOM,PRENOM+)>
< !ELEMENT NOM (#PCDATA)>
< !ELEMENT container ANY>
< !ELEMENT BR EMPTY>
Déclaration de structure d'élément
* Séquence
< !ELEMENT HTML (HEAD,BODY)>
* Choix
< !ELEMENT ENFANT (FILLE | GARCON)>
* Indicateur d'occurrences
1 HEAD
? 0 ou 1 e-mail?
* 0 ou plusieurs TELEPHONE*
+ 1 ou plusieurs PRENOM+
Déclaration des éléments
* Exemples:
<!ELEMENT elem (elem1, elem2, elem3)>
- elem doit contenir un élément elem1, un élément elem2 puis un élément elem3 dans cet ordre.
<!ELEMENT elem (elem1 | elem2 | elem3)>
- elem doit contenir un seul des éléments elem1, elem2 ou elem3.
<!ELEMENT elem (elem1, elem2?, elem3)>
- elem doit contenir un élément elem1, un ou zéro élément elem2 puis un élément elem3 dans cet ordre.
<!ELEMENT elem (elem1, elem2*, elem3)>
- elem doit contenir un élément elem1, une suite éventuellement vide d'éléments elem2 et un élément elem3 dans cet ordre.
<!ELEMENT elem (elem1, (elem2 | elem4), elem3)>
- elem doit contenir un élément elem1, un élément elem2 ou un élément elem4 puis un élément elem3 dans cet ordre.
0 commentaires:
Enregistrer un commentaire