1.Document valide
Un document XML a besoin d'une DTD pour savoir ce qu'il est possible de faire ou pas.
Si l'on fait la comparaison avec l'HTML, on sait que théoriquement on doit écrire:
Si l'on fait la comparaison avec l'HTML, on sait que théoriquement on doit écrire:
<html>
<head>
</head>
<body>
<table>
<tr>
<td>
</td>
</tr>
</table>
</body>
</html>
et non pas
<html>
<head>
</head>
<table>
<td>
</td>
</table>
</html>
il y a certaines rêgles à respecter même si les navigateurs ont été programmés pour comprendre à peu près n'importe quoi.
Avec la DTD, on va pouvoir décrire de manière stricte la structure du fichier XML. Avec des outils on pourra alors vérifier qu'un fichier XML est "valide" pour une DTD donnée.
2.Un exemple de DTD
Une DTD peut être définie soit à l'intérieur d'un document XML soit dans un fichier à part. Cette dernière solution est la plus fréquente car la plus pratique.
Pour définir une DTD externe, il suffit d'écrire <!DOCTYPE racine SYSTEM "nomdufichier.dtd"> juste après <?xml version="1.0" ?> où racine est le nomde la balise racine de l'arbre XML.
Reprenons notre fichier XML d'exemple et ajoutons-y cette ligne:
Pour définir une DTD externe, il suffit d'écrire <!DOCTYPE racine SYSTEM "nomdufichier.dtd"> juste après <?xml version="1.0" ?> où racine est le nomde la balise racine de l'arbre XML.
Reprenons notre fichier XML d'exemple et ajoutons-y cette ligne:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE annuaire SYSTEM "annuaire.dtd">
<annuaire>
<personne type="étudiant">
<nom>HEUTE</nom>
<prenom>Thomas</prenom>
<email>webmaster@xmlfacile.com</email>
</personne>
<personne type="chanteur">
<nom>SOUCHON</nom>
<prenom>Alain</prenom>
<email>alain@souchon.name</email>
</personne>
</annuaire>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT annnuaire (personne*)>
<!ELEMENT personne (nom,prenom,email+)>
<!ATTLIST personne type (étudiant | professeur | chanteur | musicien) "étudiant">
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT email (#PCDATA)>
Voici ce que pourrait-être sa DTD:
3.La syntaxe
Reprenons les différents indicateurs d'occurences:
Et voici les différents connecteurs possibles:
Les attributs (déclarés par ATTLIST) possèdent différents contrôles:
4.Conclusion
Il est très important d'avoir une bonne DTD et donc de passer du temps à sa conception. C'est elle qui vous permettra de construire des documents XML valides. Il peut-être aussi astucieux d'utiliser des DTD existantes et éventuellement de les modifier, c'est généralement plus efficace que de tout refaire à 0. Par exemple, il est plus que probable qu'une DTD définissant un annuaire existe déjà et qu'il prend en compte des choses auxquelles vous n'aviez pas pensé comme l'Etat aux USA par exemple.
Jusque là, on a défini une structure qui pourra être utilisés dans de nombreux outils. On peut ainsi stocker des données (dans des fichiers XML) reste à trouver le moyen de les mettre en forme: c'est le rôle entre autres d'XSL. |
Aucun commentaire:
Enregistrer un commentaire