Les petites cases

Et le W3C améliora le traitement des fichiers XML

Le W3C a mis en ligne, le 3 novembre, huit « candidate recommandations », c'est à dire la dernière étape avant la recommandation finale, concernant le traitement des fichiers XML. Trois d'entre elles sont d'une importance capitale pour l'avenir de XML :

  1. Une nouvelle version de XSLT dite 2.0, le langage utilisé pour transformer un fichier XML vers un autre fichier XML, dont HTML

  2. Une nouvelle version de Xpath dite 2.0, une syntaxe pour naviguer dans un arbre XML et sélectionner un nœud précis

  3. Xquery 1.0, un langage de requêtes pour les fichiers XML, c'est à dire l'équivalent de SQL pour les bases de données, basé sur Xpath

Selon les règles en vigueur au W3C, une recommandation doit être implémentée dans au moins deux applications pour atteindre le statut « finale ». Ainsi, Xquery est implémenté dans 44 applications selon le site dédié du W3C, dont en open source :

  1. eXist, une base de données XML open source, en java. J'ai déjà testé ce logiciel pour implémenter la recherche en texte intégral sur un corpus dans le cadre du projet de numérisation des cartulaires d'Ile-de-France à l'École des chartes. Deux installations sont possibles : intégrés à Tomcat ou en standalone. Dans le second cas, le serveur est interrogeable par XML-RPC. Cet outil est vraiment performant et atteint une maturité intéressante. Son seul défaut réside dans la lenteur des réponses en XML-RPC.

  2. Qexo, qui utilise le framework Kawa ;

  3. XQengine, aussi en Java ;

  4. Saxon, un processeur XSLT et Xquery qui est développé par un des participants du Working group XSL au W3C, Michael Kay.

Par ailleurs, Oracle et Microsoft ont déjà commencé l'implémentation de Xquery dans leurs produits. Voilà au moins une recommandation du W3C qui a de l'avenir. Si vous êtes intéressés par Xquery, vous pouvez consulter le tutoriel de W3schools, comme d'habitude très clair mais aussi très basique, ce diaporama vous donnera aussi des bonnes pistes incluant des points de comparaisons avec SQL et ce tour d'horizon dans le magazine d'Oracle.

Les nouvelles versions de XSLT et de Xpath apportent leurs lots de nouveautés et, d'après un premier tour rapide, complètent certains manques de la première version. Au stade de ma découverte, je n'en retiendrai que deux mais de taille :

  1. L'amélioration des fonctions pour analyser et traiter des chaînes de caractères avec la possibilité d'utiliser des expressions régulières et l'amélioration des fonctions en Xpath, en particulier la possibilité de remplacer une chaîne par une autre ; à signaler à ce propos la recommandation au stade de Working draft Xquery and Xpath 2.0 Full-text ;

  2. Les fonctions de regroupement en XSLT ; le nouvel élément, <xsl:for-each-group> permet de regrouper des résultats selon la valeur d'un élément ou d'un attribut, c'est à dire de filtrer des doublons. Cela va nous éviter d'utiliser la méthode muenchian qui était assez compliqué à maintenir et très gourmande en ressource. Je l'ai testé sur la génération d'un index en TEI qui m'avait posé pas mal de problèmes en XSLT 1.0 et c'est vraiment impressionnant : le code source ne fait que 12 lignes et le traitement a duré une minute alors qu'il durait une bonne dizaine de minutes avec XSLT 1.0.

Le lendemain de la parution de ces recommandations, le développeur de Saxon, Michael Kay, a annoncé que la dernière version les supportait et si vous voulez tester XSLT et Xpath 2.0, ils sont aussi implémentés dans l'éditeur XML oXygen que je vous recommande, même s'il n'est pas open source.

Xquery XSLT Geekeries —