...
Comme décrit dans le paragraphe 5.3 de l'appel d'offre, les données à exporter concernent la partie cas. Techniquement, ces données sont entièrement contenues dans la structure org.fudaa.dodico.corba.mascaret.SParametresCAS
.
Solution technique
Fudaa/Java
L'outil Xstream, version 1.4.2,sera utilisé pour convertir les objets java en XML. Cet outil est déjà intégré à Fudaa ( utilisé pour Fudaa-Prepro et Fudaa-Crue) et est compatible avec le JRE 1.7.
...
La configuration de Xstream pouvant être longue, elle pourra être effectuée dans une classe à part.
Comme les classes en question sont générées par IDLJ, il ne faut pas configurer l'outil de mapping XML<-> Objet par annotations, qui seraient perdues à chaque re-génération des classes.
Pourquoi utiliser XStream ?
...
Pour le mapping XML<->Object, l'utilisation de JAXB utilise uniquement des annotations si on veut modifier le comportement initial ( changement de noms,....). Cette restriction élimine JAXB dans notre cas ou une configuration "externe" aux classes est requis.
Au sujet des performances, on peut lire plusieurs rapports et notamment:
...
qui place XStream comme étant le plus rapide ( attention, les tests de performances sont toujours à prendre avec des "pincettes").
Dans l'absolu, il n'y a pas de raisons évidentes pour préférer XStream à JAXB. XStream a été préféré car il avait déjà été validé sur d'autres projets de Fudaa et car la configuration sans annotations n'est pas possible avec JAXB.
Fortran
Pour la partie Fortran, 2 librairies ont été évaluées.
FOX http://www1.gly.bris.ac.uk/~walker/FoX/
Projet actif ( voir GitHub https://github.com/andreww/fox) qui supporte la lecture des XML et de la DTD. Les 2 approches SAX ( par évènvement) et DOM ( lecture complète de l'arbre) sont disponible.
XML-Fortran http://xml-fortran.sourceforge.net/
Ce projet XML-Fortran comporte plus de limitations que FOX ( pas de support de la DTD. taille du fichier XML < 1000 caractères). Le projet est moins vivante que FOX ( dernière livraison en 2010).
Voici un extrait du site concernant les limitations du projet:
Basic limitations:
- The lines in the XML-file should not exceed 1000 characters. For tags that span more than one line, the limit holds for all the lines together (without leading or trailing blanks).
- There is no support for DTDs or namespaces, XSLT, XPath and other more advanced features around XML.
- There is currently no support for the object-oriented approach. It is up to the application to store the information that is needed, while the parsing is going on.
- No support (yet) for a single quote as delimiter
- No support (yet) for conversion of escape sequences (>. for instance)
- The parser may not handle malformed XML-files properly
- The parser does not (yet) handle different line-endings properly (that is: reading XML-files that were written under MS Windows in a UNIX or Linux environment)
Solution retenue
Le constat est clairement en faveur de FOX de part ses fonctionnalités et la vitalité du développement.
Modifications apportées à Fudaa-Mascaret
...