Des nouvelles de XSV (XML Schema Validator)

Henry Thompson vient d’annoncer une nouvelle version (3.1) de son processeur de schémas XSV.

Pourquoi s’intéresser à XSV alors qu’il y a d’autres implémentations du langage de schémas W3C XML Schema?

XSV est écrit par Henry Thompson et Richard Tobin et Henry Thompson est l’éditeur le plus emblématique de la recommandations W3C XML Schema. XSV est donc une implémentation de référence qui devrait être particulièrement respectueuse de la recommandation et c’est un des outils qui m’ont servi de juge de paix lorsque j’ai écrit mon livre sur ce langage.

L’autre raison pour laquelle vous pourriez vouloir vous intéresser à XSV est qu’il est écrit en Python et que Python manque très cruellement d’implémentations décentes de W3C XML Schema.

Enfin, XSV permet de visualiser, sous forme d’un document XML suivant un schéma assez peu lisible il est vrai, le fameux « PSVI » (Post Schema Validation Infoset), ce qui est assez rare pour être souligné.

Malheureusement, XSV avait jusqu’à présent deux gros défauts :

  • Henry Thompson a toujours été beaucoup plus intéressé par la première partie de la recommandation dédiée à la structure des documents qu’à la deuxième partie dédiée aux types de données et que l’implémentation de la deuxième partie était très incomplète.

  • XSV exigeait l’utilisation d’un parseur XML (PyLTXML) partiellement écrit en C dont l’installation me laissait des souvenirs épouvantables.

L’annonce mentionnant que ce dernier point était levé, j’ai pensé qu’il était intéressant de tenter à nouveau l’expérience.

J’ai donc essayé d’installer XSV à partir de sources puis à partir de son package Debian sur mon poste de travail (Ubuntu Gusty) et dans les deux cas, les installations se sont passées sans problème notable.

Quelques points méritent toutefois d’être signalés :

  • S’il est vrai que XSV peut se passer de parseur spécifique, il faut dans ce cas installer une version ancienne de « PyXML », un module nécessaire au support de XML sur les premières versions 2.x de Python. La plupart des fonctions de PyXML ont maintenant été intégrées à Python, PyXML n’est plus maintenu et son utilisation peut poser des problèmes de coexistence avec les fonctions intégrées.

  • L’installation du parseur spécifique (PyLtXML) se fait maintenant sans problème que ce soit à partir des sources ou du package Debian. Je pense que cette option est moins risquée que l’utilisation de PyXML.

  • Les packages Debian pour XSV et PyLtXML installent ces bibliothèques sur Python 2.4. Pour les utiliser avec Python 2.5, il faut donc les recopier ou utiliser l’installation à partir des sources.

  • XSV ne semble pas tenir compte de la variable PYTHONPATH pour rechercher les DTDs de XML Schema dont il a besoin. Ce problème peut être résolu en créant des liens symboliques sur ces DTDs.

Sans être parfaite, l’installation est donc effectivement beaucoup plus facile que sur les versions que j’ai utilisé en 2001 et devient à la portée d’un être humain!

En ce qui concerne le support des types de données, la documentation ne mentionne plus dans la liste des restrictions que « le reste des types de données simples notamment les types xs:duration ».

XSV semble donc devenir petit à petit une bibliothèque réellement utilisable, que ce soit pour les programmeurs Python en quête d’une implémentation W3C XML Schema ou pour les gourous XML cherchant une implémentation de référence.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *