Le XML a parfois bon dos...

Prenez n'importe quel logiciel actuel, quel que soit son domaine, de la bureautique aux bases de données en passant par la PAO par exemple : vous lirez presque systématiquement XML parmi les caractéristiques.

Le logiciel est donc annoncé comme sachant utiliser le XML, se basant même dessus ou poussant encore plus loin son utilisation. Il y a de quoi être tenté et convaincu. Car le XML est un format ouvert, même l'un des plus puissants.

Cependant, ces déclarations exactes peuvent se révéler totalement fausses ! En effet, faire du XML, utiliser le XML est une chose, mais quel XML ? Plus exactement, comme le XML est en fait très général, il faut indiquer de quel type de XML on parle, car il y a des types de XML déjà en place (ont déjà été cités ici entre autres le XHTML, l'EAD ou le XForms) et même d'autres que l'on peut créer à volonté.

Voici un exemple simple :

<xml version="1.0" encoding="ISO-8859-1">
<crt>
<bper><ba>André</ba><bb>Jacques</bb><bc>03/12/2002</bc><bd>30</bd></bper> 
<bper><bs>H</bs><ba>Dominique</ba><bb>Michel</bb></bper>
</crt>
</xml>

C'est du XML qui respecte un codage correct (balises ouvrantes et fermantes, arborescence,... ; le gras visible n'est en revanche ici que pour une meilleure lecture : il n'y en a pas dans du code XML). Mais c'est du XML totalement inutilisable : en effet, il est impossible de savoir exactement de quoi il s'agit. C'est absolument obscur :

  • que signifient les balises dénommées "ctr" ou "bper" ? Et "ba", "bb", "bc", "bd", "bt" ?
  • à quoi se rapporte la date qui est donnée ? Et est-ce le 3 décembre, ou le 12 mars 2002 ?
  • pourquoi y a-t-il un renseignement "H" seulement pour l'un, et "30" seulement pour l'autre ? et que signifient-t-il ?
  • si on essaye de deviner, on a sans doute des noms et des prénoms, mais lequel est le nom et lequel le prénom ? et "30", est-ce un âge, un département, le poids ?

Pour répondre à ces questions, il faut les informations précises et complètes, qui sont contenues dans ce qui s'appelle la DTD (Document Type Definition), qui donne... la définition du type de document : sa structure, la signification de ses balises,...

Et sans la DTD, pas de XML utilisable. Sa puissance disparait. Il faut avoir la DTD, et il faut qu'elle soit publiée, documentée, librement accessible, librement utilisable. Sinon, ce XML là devient un format fermé.

Sources et liens :

  • Les pages des logiciels avec leurs caractéristiques sont bien trop nombreuses. Vous en trouverez facilement. Et avec la fameuse mention XML !
  • Le XML, définition officielle par le W3C qui en a la charge, http://babel.alis.com/web_ml/xml/REC-xml.fr.html