2010-11-18 12 views
0

Je dois créer une application de bureau en Java 6. Le programme devrait être capable de communiquer avec un autre système en utilisant des fichiers XML (envoi/réception). Chaque fichier XML est connecté à son XSD, des balises décrivant son contenu, son nom d'utilisateur et son statut. L'application doit fournir des fonctionnalités telles que la recherche, la modification, etc. le contenu XML. La question est: comment dois-je stocker toutes ces informations en conservant les connexions logiques?Stockage de fichiers XML dans la base de données

Je suis venu avec une idée pour le stocker en utilisant la base de données XML - BaseX. En d'autres termes, stocker des fichiers XML avec des informations qui leur sont connectées dans un gros fichier XML (base de données).

base de données de l'échantillon:

<?XML VERSION="1.0"?>
<mySampleRecord id="1">
<XMLcontent> // Content of XML file (...) </XMLcontent>
<XMLschema> // Content of XSD file (...) </XMLschema>
<tags>j2ee java xml</tags>
<username>File Owner</username>
<status>received</status>
</mySampleRecord>
<mySampleRecord id="2">
<XMLcontent> // Content of XML file (...) </XMLcontent>
<XMLschema> // Content of XSD file (...) </XMLschema>
<tags>doc xls mdb</tags>
<username>Admin</username>
<status>sent</status>
</mySampleRecord>

Je me demandais aussi s'il est possible BaseX lire noeud <XMLContent> puis traiter son contenu en XML me permettant d'effectuer des opérations de XQuery.

Espérons son compréhensible;)

Merci pour tout conseils et suggestions.

Répondre

1

Je n'ai pas compris. :)

Vous souhaitez donc stocker plusieurs fichiers XML avec le schéma correspondant dans un autre fichier XML?

Pourquoi faire ça? Traitez chaque fichier XML individuellement. Ayez-les en tant que fichiers .xml à l'intérieur de votre fichier .jar. Chaque client peut donc y accéder.

acclamations

0

Si je vous ai bien compris, vous devez créer la table SAMPLE_RECORD avec des champs id (PK) user_name état

puis créez la table TAG avec des champs record_id (FK à table de l'enregistrement) tag

Créer une classe SampleRecord Maintenant, écrivez du code qui analyse XML et crée des instances de SampleRecord. Ensuite, implémentez la logique qui stocke la collection de SampleRecord dans DB et la lit à partir de là. Vous pouvez soit utiliser ORM ou juste vieux bon JDBC simple.

C'est tout.

+0

Je ne pense pas qu'il utilise une base de données relationnelle, il sonne comme s'il envisageait une base de données native XML (NXD). Dans ce cas, le découpage et le découpage en dés pour le stockage seraient effectués par DB. – StaxMan

+0

Enfin, j'ai trouvé la solution parfaite pour mes besoins. J'ai décidé d'utiliser SQLite au lieu de la base de données XML. Maintenant, j'ai un conteneur sans serveur pour mes données et je peux utiliser des expressions SQL pour obtenir ce que je veux. Le seul problème restant est de concevoir une base de données. AlexR Je vais utiliser votre solution dans ce cas. Merci tout le monde! – monczek

Questions connexes