Хранение файлов XML в базе данных - PullRequest
0 голосов
/ 18 ноября 2010

Мне нужно создать настольное приложение на Java 6. Программа должна иметь возможность общаться с другой системой, используя файлы XML (отправка / получение).Каждый отдельный XML-файл связан со своим XSD, тегами, описывающими его содержимое, имя пользователя и статус документа.Приложение должно обеспечивать такую ​​функциональность, как поиск, модификация и т. Д. XML-контент.

Вопрос в том, как хранить всю эту информацию, сохраняя логические соединения?

У меня возникла идея сохранить ееиспользуя базу данных XML - BaseX.Другими словами, хранение файлов XML с информацией, связанной с ними, в одном большом файле XML (базы данных).

Пример базы данных:

<?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>

Мне также было интересно, можно ли BaseX прочитать узел <XMLContent> и затем обработать его содержимое как XMLчто позволяет мне выполнять операции XQuery.

Надеюсь, это понятно;)

Спасибо за любые подсказки и предложения.

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Не совсем понял. :)

То есть вы хотите сохранить несколько XMLFiles с соответствующей схемой в другом XML-файле?

Зачем это? Просто обработайте каждый XML-файл индивидуально. Храните их в виде файлов .xml внутри вашего .jar. Таким образом, каждый клиент может получить к нему доступ.

ура

0 голосов
/ 18 ноября 2010

Если я вас правильно понял, вы должны создать таблицу SAMPLE_RECORD с полями id (PK) user_name статус

затем создайте таблицу TAG с полями record_id (FK для записи таблицы) тег

Создать класс SampleRecord Теперь напишите код, который анализирует XML и создает экземпляры SampleRecord. Затем реализуйте логику, которая хранит коллекцию SampleRecord в БД и читает ее оттуда. Вы можете использовать ORM или просто старый добрый простой JDBC.

Вот и все.

...