L'objectif des catalogues d'XML est de pouvoir utiliser, dans les "internal subset" des DTD, des noms d'entités externes symboliques : charge alors aux logiciels de parsing, s'occupant de la résolution des entités, de chercher, au sein d'un XML Catalogs, le nom physique du fichier à associer au nom logique.
L'avantage ? Il devient alors possible d'utiliser des adresses physiques de fichiers qui puissent être différentes d'un système à l'autre.
L'idée est simple mais très efficace. OASIS Open, aujourd'hui promoteur de ce standard, l'a déjà mise en place avec succès pour les applications SGML (voir spécification de SGML).
Lorsqu'une entité externe est déclarée dans la DTD d'un fichier XML, il est toujours nécessaire, même si elle utilise un nom publique, d'identifier le fichier XML correspondant. Sur Internet, tout va bien ! Le nom du fichier désigne une URL qui est toujours accessible. Cependant, XML est aujourd'hui aussi utilisé hors la sphère Internet.
Ainsi, si un fichier toto.xml est utilisé sur un répertoire local, on le désigne par le chemin suivant : /temp/mesDoc/toto.xml. La déclaration de ce fichier sous forme d'entité paramètre s'écrira alors :
<!ENTITY toto PUBLIC "Mon Beau Document" "/temp/mesDocs/toto.xml">.
Du coup, si ce document est transféré dans un autre environnement ou si le fichier toto.xml est stocké dans un autre répertoire, la résolution de la déclaration ne pourra plus être effectuée ! La communauté SGML a depuis longtemps compris ce problème et a mis en place un système de catalogue permettant, sur chaque système, de réaliser une correspondance entre des noms logiques et des noms physiques de ressources.
C'est ce même système qui est aujourd'hui proposé par XML Catalogs pour les documents XML. Un XML CatalogsXML Catalogs est donc présent sur chaque système et l'indépendance des systèmes de fichiers est alors assurée.
Pour finir, il faut noter la nécessité d'étendre l'utilisation des XML Catalogs à d'autres informations que les entités externes. Ainsi, un standard comme XInclude devrait pouvoir aussi profiter de cette indépendance des systèmes de fichiers et/ou d'URL.
Using XML Catalogs with JAXP (xml.com) Tom White, mars 2004 Entity management in XML applications (IBM Developer Works) Septembre 2003 |
Managing XML data: XML Catalogs. Indirect stylesheets, DTDs, and schemas, Elliotte Rusty Harold, 13/05/2005, édité par IBM |