Base de données relationnelles en XML
Bonjour à toutes et à tous,
Je travaille actuellement sur un projet de logiciel client serveur en Java, langage que j’apprends un peu "sur le tas" bien que derrière j'ai de solides bases de POO.
Mon problème vient du fait que je suis contraint d'utiliser une "base de données XML" sachant que mon modèle de données est à 100% relationnel. Je suis conscient qu'utiliser un modèle hiérarchique pour représenter du relationnel n'est pas pratique du tout mais le passage sous un SGBD ne pourra se faire malheureusement que si l'appli version "XML" est satisfaisante).
Bref ça serait bien que ça marche de cette manière et donc depuis 1 semaine je parcours un peu tout les tutoriels que mon ami Google veut bien me filer pour me documenter.
Qu’est ce que je veux faire ? Un schéma est plus parlant qu’un long discours :
http://img20.imageshack.us/img20/2456/sansre1il.jpg
(Copyright Serge Tahe pour le schéma, depuis son magnifique cours sur la persistance Java5)
On part donc d’une IHM en Swing pour atterrir sur une "base de donnée" sous forme de fichiers XML (sur un DD partagés en réseau). Ma question est donc : qu’est ce que je mets entre les deux ?
J’ai donc découvert JPA et le fameux "hibernate" mais il semblerait que ce soit réservé justement pour le monde du relationnel (MySQL et compagnie…).
Cf le cours de M. J.M. DOUDOUX :
Citation:
JPA ne peut être utilisé qu'avec des bases de données relationnelles.
Pourquoi utiliser JPA ? Car quand l’outil aura fait ses preuves et que j’aurais "gagné" mon SGBD je n’aurais, si j’ai bien compris, plus qu’à changer mon fichier de configuration d’accès aux données.
Je me suis penché aussi sur la sérialisation (vu qu’au final ce ne sont que des classes que je veux stocker) mais cela ne me satisfait pas car j’ai besoin de pouvoir faire des requêtes pour repérer les liaisons entre mes "pseudos-table-XML"
Je me dis que je ne suis sûrement pas le seul à m’être confronté à ce problème. Ça sert à rien de réinventer la poudre donc est-ce qu’il existe déjà une API de ce genre, ou plus généralement une astuce pour contourner le problème ?
Ou bien est-ce que je suis condamné à faire ça via JDOM et à réécrire des méthodes de "simulation de tables" ?
Bref j’en appel à votre expérience pour m'orienter, me conseiller dans quelle direction regarder.
Si vous avez besoin de plus d'explication n'hésitez pas.
Merci d'avance et bonne journée ; )