
Ce source XML contient les mêmes informations, mais il présente les avantages suivants :
Il ne mélange pas l'information contenue dans le document et sa présentation comme le fait
le HTML. Par exemple, l'élément <title> du HTML contient de l'information exploitable
alors que l'élément <center> ne sert qu'à indiquer une mise en forme. La rédaction du
contenu et sa mise en forme correspondant à deux métiers différents, il n'est pas logique de
les mélanger.
•
Cette séparation du contenu et de la forme permet d'extraire des informations du document.
Une application peut en effet faire une liste des entrées du répertoire (pour les injecter dans
une base de données par exemple) si elle sait que le nom d'une personne est encadré par un
élément <nom>, son prénom par un élément <prenom>, etc. Cette tâche peut être réalisée de
manière fiable et standard par un parser XML.
•
Document Type Definitions
On peut fixer la grammaire d'un type de document à l'aide d'une DTD (pour Document Type
Definition). Celle de notre exemple de répertoire permet d'imposer que toute entrée comporte un
nom et un prénom, une qualité, etc. Pour notre répertoire, cette DTD pourrait ressembler à la
suivante:
<?xml version="1.0" encoding="iso-8859-1"?>
<!ENTITY % lieux "travail | domicile | vacances">
<!ELEMENT repertoire (personne+)>
<!ELEMENT personne (prenom, nom, qualite, entreprise, adresse+)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT qualite (#PCDATA)>
<!ELEMENT entreprise (#PCDATA)>
<!ELEMENT adresse (rue, cp, ville, pays, telephone, mobile?, email?, www?)>
<!ATTLIST adresse lieu (%lieux;) "travail">
<!ELEMENT rue (#PCDATA)>
<!ELEMENT cp (#PCDATA)>
<!ELEMENT ville (#PCDATA)>
<!ELEMENT pays (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
<!ELEMENT mobile (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT www (#PCDATA)>
Un document muni d'une DTD peut être validé ce qui certifie qu'il est conforme à son type. Les
DTDs du standard sont cependant relativement pauvres (on ne peut par exemple pas imposer qu'un
champ soit un nombre entier). Pour aller plus loin, on peut utiliser Schema qui propose des
conditions beaucoup plus fines pour les types de document.
28/01/2001 Développement XML en Java sous Linux 3