Les logiciels xml libres

By 19 March 2012

Les logiciels libres – Chapitre 3 :

Un des objectifs de ce travail est d’utiliser des solutions logicielles issues du monde du libre. Nous devons examiner les logiciels libres disponibles en matière de XML et les évaluer.
Défini sommairement: un logiciel libre est livré en Open Source, c’est à dire avec son code source, la plupart du temps gratuitement, sans pour autant signifier qu’un logiciel gratuit est libre.

Il est soumis à un droit d’auteur, qui stipule les droits octroyés à l’utilisateur: la licence libre. Toutefois, l’auteur conserve ses droits d’auteur, bien qu’il renonce à une grande partie de ceux-ci. Un logiciel commercial est au contraire soumis au droit d’auteur, son code source n’est pas fourni, il ne peut être rediffusé, et est accompagné d’un contrat de licence payant.

1- Définir les besoins

L’intégralité de ce mémoire, de la recherche d’information à la rédaction sans oublier le traitement XML, sera réalisée sous l’ Operating System Linux en version Mandriva 2008.
En partie rédactionnelle, nous utiliserons OpenOffice.org Writer, pour la réalisations de schémas: OpenOffice.org Draw, les saisies d’écran proviennent de Ksnapshot, sans oublier Mozilla Firefox comme navigateur Web, et des utilitaires anonymes.

En ce qui concerne XML, des logiciels de traitement et transformation de données sont nécessaires. Nous devons disposer d’outils permettant de réaliser les opérations ci-dessous.
– Créer la DTD
– Créer le fichier XML
– Valider XML et DTD
– Opérer des recherches au sein de notre document XML afin d’en extraire les données nécessaires au calcul des résultats ABC.

Nous utiliserons pour ces recherches XQuery.
Nous souhaitons une application XQuery disposant d’un environnement visuel semblable à celui d’un compilateur dédié à un langage de programmation , permettant de saisir les requêtes, mettant en évidence les erreurs de syntaxe, et muni d’une fonction de déboguage donc, analysant la requête et affichant un résultat.
– Présenter les résultats; nous utiliserons XSL-FO.

2- Recherche logicielle

La création de la DTD et du fichier XML peut être réalisée avec un simple éditeur. Nous avons utilisé Kate, éditeur disponible sous Mandriva Linux.
La validation de la syntaxe XML1.0 et de la conformité à la DTD est possible en ligne via une page de la Brown University.
Nous voyons déjà apparaître une division des solutions qui n’est pas très pratique; DTD et document XML avec un éditeur, par contre, XQuery nécessite un logiciel et non pas un éditeur.
Nous en serions donc à deux logiciels et au recours à un site externe. L’idéal serait une suite pouvant assurer l’ensemble des taches.

La démarche pour trouver un processeur XQuery ou bien une suite logicielle XML a été de mener une recherche en ligne qui ponctuellement menait au W3C ( http://www.w3.org/XML/Query/ )
Le W3C répertorie sur son site une cinquantaine de possibilités.

Licence Database XQuery Conversion
Payant (30jours) 9 3
Libre 8 8 2
Site indisponible 2 6
Apple 2 1
MicroSoft 1 1
Autres 2 4

Nous les avons examinées, le tableau non exhaustif ci-dessus en propose un simple aperçu, certaines solutions pouvant figurer dans plusieurs cases.
Les implémentations répertoriées proposent des Database managées par XQuery, ou bien des outils purement XQuery, ou enfin des outils de conversion.

Parmi les conversions, citons XQ2XML permettant de convertir XQuery en XML ou en XSLT
Les Licences étaient soit libres , soit payantes, le plus souvent proposées en période d’essai de 30 à 90 jours.
Certains sites étaient indisponibles, par exemple Rainbowcore, ou Relational XQuery. D’autres solutions sont conçues exclusivement pour Microsoft ou bien MacOS X (Sherlock).

Sous la rubrique « autres », nous reprenons des consultant sans logiciel, ou une solution en ligne comme XQuery demo.
Parmi les XQuery payants, nous trouvons Saxon, StylusStudio, Xquantum, …
Les XQuery en licence libre: Saxon à nouveau, open xquery, Xqilla, Berkeley Lab’s NUX, Zorba, MXQuery.
Des projets, dont un probablement oublié car datant de 2002: php xml classes, ou en cours comme XQP.
AltovaXML peut remplir plusieurs cases: il est payant ou libre, mais sous Windows.
En Database libres, notons XML Global, eXist, Qizx/db.
Enfin, notons que certaines solutions intègrent XBRL (Saxon, StylusStudio).

3- L’installation des logiciels sous Linux

L’installation sous Linux de logiciels peu répandus révèle une caractéristique des Linux du début: la technique de « l’essai-erreur » est de mise, on travaille en ligne de commande dans une console, il manque toujours une librairie que l’on doit trouver en ligne, et qui quand elle est partiellement installée, réclame une autre librairie, etc.
Pour parfois ne pas fonctionner au final.

Le double-clic sur une icône du monde Windows n’est pas de mise.
La procédure consiste à télécharger sur le site de l’éditeur un fichier archivé en .tar.gz ou .tgz ou .zip puis à le décompresser dans un répertoire , parfois au moyen de la console, parfois par un outil permettant de désarchiver sans ligne de commande (il faut essayer si cela fonctionne), ensuite, lecture de la notice au format .txt si elle existe, ou opérer des tentatives sur des fichiers .jar, .sh, ou qui semblent par expérience être exécutables.

4- Saxon

Une première tentative a été menée avec un des logiciels de base du monde XQuery et XML: Saxon.
Saxon développé par Michael Kay, est une suite comprenant un processeur XSLT2.0, un processeur Xpath2.0, un processeur XQuery 1.0, un processeur XmlSchema1.0 .
Saxon est multi-plateformes, java, .NET .
Saxon utilise des parseurs DOM et SAX qui sont deux approches de traitement de document XML.

5- Les licences de Saxon

En 2004, Michael Kay après avoir quitté Software AG qui contribuait au développement de Saxon, a fondé la société Saxonica où il continue de développer Saxon.
A partir de 2004 et Saxonica, Saxon 8 a été décliné en deux versions: SaxonB et Saxon SA. SaxonB est en « Mozilla Public Licence » qui est une variante de licence libre, Saxon SA est un produit commercial, payant et au code non ouvert.
Nous avons tenté la version Saxon9.0 B (donc libre).

Au lancement, Saxon9 a proposé ceci: « ./saxon9.jar: Permission denied »
Saxon disponible en ligne ne permet pas de résoudre ce qui n'était pas un problème de configuration de permissions

La documentation de Saxon disponible en ligne ne permet pas de résoudre ce qui n’était pas un problème de configuration de permissions.
Des recherches en ligne sur « Permission denied saxon9.jar » ne proposaient que 75 résultats sur Google, et laissaient supposer une configuration Linux/ Java à modifier.

La plate-forme Java disponible pour Linux n’est probablement pas tant « up-to-date » que celle dédiée à Windows.
Diverses tentatives Linux n’ayant pas amélioré le résultat, Saxon6 a été testé. Saxon6 s’ouvre, et propose une interface … en ligne de commande.
Souhaitant une solution ergonomique  Saxon6 s'ouvre, et propose une interface ... en ligne de commande.

Souhaitant une solution ergonomique, ce qui n’est pas le cas avec une fenêtre monochrome de saisie de ligne de commande, nous poursuivons les essais de logiciels.
La recherche a ensuite porté sur une éventuelle interface graphique.
Le choix s’est révélé être relativement restreint.

Kernow pour Saxon9 est une interface graphique, que nous avons utilisée au début du travail d’ébauche XML. Pour l’abandonner ensuite, car de l’aveu du concepteur, Kernow n’est pas encore très développé pour sa partie XQuery.
Pour l'abandonner ensuite, car de l'aveu du concepteur, Kernow n'est pas encore très développé pour sa partie XQuery

D’autres tentatives ont été menées, retenons essentiellement NUX qui présente le même type d’interface (ci-dessus), et MxQuery dont nous reparlerons ci-après.

6- Solution payante

Face à ces déconvenues, les ressources temps étant limitées et trop de temps ayant été consacré à cette recherche partiellement vaine, la décision a été prise de renoncer à une solution libre, pour une suite commerciale afin de pouvoir continuer à aller de l’avant.
Plusieurs solutions existent, celle qui paraissait être la plus attrayante « Stylus Studio » du fait d’un outil graphique permettant de créer les requêtes XQuery, était disponible uniquement sous Windows.
Il y avait également Saxon SA, et d’autres.

L’essentiel étant de prendre une décision, nous avons opté pour Oxygen, « <oXygen/>XML » pour être précis.
« <oXygen/>XML » : pour sa convivialité d’installation inespérée sous Linux, son ergonomie, la somme modique de la licence.

7- <oXygen/> XML

<oXygen/>XML est un éditeur complet dédié à XML. L’auteur en est la société roumaine SyncRO Soft.
Outre un éditeur XML DTD, nous y trouvons des outils Xpath et XQuery avec fonction débogueur (<oXygen/> XML intègre SaxonSA) XSLT, XSL-FO et d’autres possibilités dont nous ne ferons pas usage comme XML Schema, Relax NG, SOAP; <oXygen/>XML peut également traiter des databases relationelles XML.

<oXygen/>XML est un programme écrit en java, ce qui lui permet une indépendance quant à la plate-forme utilisée: Windows, Linux, MacOS. Son fonctionnement est lié à la présence d’une Machine Virtuelle Java adéquate à la plate-forme.
<oXygen/>XML existe sous forme d’une suite autonome, ou bien en plug-in de la plate-forme Eclipse.

Enfin, <oXygen/>XML est documenté, il existe une communauté permettant de solutionner les problèmes liés à l’apprentissage.
Le lancement s’effectue au moyen d’une console qui cette fois n’affiche pas de message d’erreur…
Le lancement s'effectue au moyen d'une console qui cette fois n'affiche pas de message d'erreur

Quant à l’aspect de <oXygen/>XML , convivial et ergonomique.
Quant à l'aspect de <oXygen/>XML , convivial et ergonomique

8- MxQuery et XQDT

Sans vouloir transformer ce chapitre en saga, nous revenons sur MxQuery.
MxQuery est un outil XQuery issu d’un projet de l’ETH Zurich.
Ce projet consiste à créer un « XQuery engine » nécessitant une faible mémoire afin de le porter sur des supports mobiles.

Les participants de ce projet sont actifs dans le monde W3C.
Suite à un résultat peu ergonomique comme ceux détaillés ci-dessus, et un manque de documentation, la question quant à une utilisation graphique a été posée à Monsieur Peter Fischer, co-auteur du projet.
Il a très gentillement conseillé de se tourner vers Eclipse, un projet de plate-forme patronné par IBM, pour lequel un plugin XQDT a été développé, .

Nous retranscrivons ci-dessous pour plus de lisibilité.
Dear Mr. Mairesse
thanks for your feedback and your questions regarding MXQuery.
I hope I can answer some of them and give a better understanding of what MXQuery is and what can be achieved with it.
MXQuery is a implementation of the W3C XQuery 1,0 XML Query/expression language, written in java and thus runnable on most client platforms.

Please look into http://www.w3org/XML/Query/ for more information on XQuery.
To drawn an analogy to java, you coud it see MXQuery as the « JVM » implementing the language expressions.
If you are looking for graphical tools to write XQuery, let me point you towards the XQDT Eclipse plugin ( http://www.xqdt.org/) which gives you IDE support for developing XQuery (and bundles MXQuery).

I have to admit that I do not know much about analytic accounting, so I can only make a guess about your requirements. It seems that MXQuery is probably a fairly low-level solution to your problems.
I hope I could clarify some of the questions. Please let me know if and how I could give you more specific answers.
Best Regards, Peter Fischer

Au moment de rédiger ces lignes, la licence Oxygen était acquise et une bonne partie du travail réalisée.
Nous avons toutefois tenté XQDT qui s’installe sous Linux de façon automatique et simple. Toutefois, XQDT s’appuie sur le logiciel XQuery Zorba (existant en .rpm) dont l’installation nécessitait l’installation de plusieurs dizaines de librairies qui à leur tour allaient en requérir d’autres.
La tentative s’est soldée par un échec pour le déploiement de Zorba, la question reste donc ouverte.

9- XQuery low-level

Nous notons la remarque de Monsieur Fischer: « It seems that MXQuery is probably a fairly low-level solution to your problems ».
N’étant pas à même de mesurer la portée de la remarque, nous en prenons note et poursuivons notre démarche.

10- Echec de la solution libre

Pour conclure cette partie logicielle, nous avons dû renoncer à utiliser des logiciels libres par manque de connaissance probablement, par manque de documentation.

Linux n’a pas simplifié la démarche, il est possible qu’un Operating System plus répandu aurait ouvert d’autres possibilités en matière d’installation logicielle.
Nous utiliserons donc une solution commerciale: Oxygen.

Lire le mémoire complet ==> (Application de la méthode Activity Based Costing, technologies XML)
Mémoire présenté en vue de l’obtention du grade de Licencié en Informatique et Sciences humaines
Université libre de Bruxelles, Faculté des sciences sociales politiques et économiques