Création d'une base de données à partir de documents xml

Bonjour,

J’envisage d’archiver des documents au format xml (exemples joints ci-dessous puisque les pièces attachées ne sont pas retransmises), reçus journellement, dans une base de données au format odb. Ce sont 10 à 20 documents de ce type qui seront à traiter chaque jour, reçus sous forme de pièce attaché à des mails.
Le schéma des documents est clairement décrit par une norme internationale, ce qui permet de définir les tables à constituer, en fonction des besoins de recherche et de traitements ultérieurs.

Quelqu’un s’est-il déjà lancer dans un tel projet ?
Si oui, quels conseils pourrait-il me donner pour m’éviter les premiers écueils ?

Merci d’avance
Cordialement
MM

Premier exemple :
<?xml version="1.0" encoding="ISO-8859-1"?>
-<RIS_Message xmlns="http://www.vnf.fr/avisbat/bean/xml/AvisEuropeen">-<Identification><from>VNF2000+</from><originator>Subdivision de Melun</originator><country_code>FR</country_code><language_code>FR</language_code><district>Voies navigables de France</district><date_issue>20131104</date_issue><time_issue>1418</time_issue></Identification>-<ftm><year>2013</year><number>1709</number><serial_number>0</serial_number><subject_code>EVENT</subject_code>-<target_group><code>ALL</code><direction_code>ALL</direction_code></target_group>-<validity_period><date_start>20131124</date_start><date_end>20131125</date_end></validity_period><contents><p>Cette régate regroupera une quinzaine d'embarcations. En conséquence, Mesdames et Messieurs les usagers de la voie d'eau sont informés qu'en application de l'arrêté préfectoral n° 63/13/SPE/BTPA/Seine 04-13, du 10 avril 2013, ils sont invités à naviguer avec prudence dans la zone définie ci-dessus.</p></contents><source>SU0000031</source><reason_code>EVENT</reason_code><communication/>-<fairway_section>-<geo_object><name>Seine à l'amont de Paris</name><type_code>CAN</type_code>-<coordinate><lat>48 29.3907 N</lat><long>3 29.5351 E</long></coordinate>-<coordinate><lat>48 31.3368 N</lat><long>3 37.9501 E</long></coordinate></geo_object>-<limitation>-<limitation_period><date_start>20131124</date_start><date_end>20131124</date_end><time_start>1030</time_start><time_end>1700</time_end></limitation_period><limitation_code>CAUTIO</limitation_code></limitation></fairway_section></ftm></RIS_Message>

Deuxième exemple :
<?xml version="1.0" encoding="ISO-8859-1"?>
-<RIS_Message xmlns="http://www.vnf.fr/avisbat/bean/xml/AvisEuropeen">-<Identification><from>VNF2000+</from><originator>UTI Moselle</originator><country_code>FR</country_code><language_code>FR</language_code><date_issue>20131016</date_issue><time_issue>1522</time_issue></Identification>-<wrm>-<validity_period><date_start>20131016</date_start><date_end/></validity_period>-<geo_object><name>Moselle canalisée</name><type_code>CAN</type_code><coordinate/></geo_object><reference_code>KP</reference_code>-<measure><predicted>false</predicted><measure_code>HIGWAT</measure_code><measuredate>20131016</measuredate><measuretime>1500</measuretime></measure></wrm></RIS_Message>

Franchement, LO Base n'est pas super-bien adapté pour gérer ce genre de
flux d'informations, sauf à prévoir une macro qui va analyser le xml, faire
la correspondance entre les champs de la db et les valeurs des noeuds, puis
construire une requête pour insérer tout ça comme il faut. Le support des
flux binaires par LO dans l'actuel hsqldb intégré n'est pas ce que l'on
pourrait appeler "optimal" - en gros, sont supportés, directement, les flux
binaires constituant une image, pour les autres, il faut bricoler.

J'ai une appli fournie par une administration avec laquelle je travaille
qui se sert de Firebird pour stocker des flux XML - peut-être qu'avec le
support expérimental de Firebird dans LO 4.2 béta et suivants, il sera
possible de faire ce genre de chose directement, mais aujourd'hui, même
avec Firebird et LO, ce n'est pas possible d'office.

Pour ma part, pour une solution XML rapide, j'utilise BaseX.

Alex