Существует ли интерфейс XML XQuery для существующих файлов XML? - PullRequest
2 голосов
/ 19 сентября 2008

Моя компания работает в сфере образования, и мы используем XML для хранения содержимого курса. Мы также храним некоторую информацию, связанную с курсом (в основном, метаинфо) в реляционной базе данных. Сейчас мы находимся в процессе перехода от нашей собственной XML-схемы к DocBook 5. Наряду с переключением мы хотим переместить информацию, связанную с курсом, из базы данных в XML-файлы. Причина этого заключается в том, чтобы хранить все данные курса в одном месте и поместить их в Subversion. Однако мы хотели бы сохранить гибкость реляционной базы данных и иметь возможность легко извлекать конкретную информацию о курсе из XML-документа. XQuery, похоже, справился с этой задачей, поэтому я исследовал базы данных, которые его поддерживают, но пока не смог найти то, что мне нужно. В основном я хочу, чтобы мои XML-файлы находились в определенной структуре каталогов, а затем я хотел бы иметь систему, которая бы индексировала мои файлы и позволяла мне выбирать что-либо из любого файла с помощью XQuery. Таким образом, у меня может быть «мой пирог и ешь его тоже»: у меня будет интерфейс XQuery, и я по-прежнему буду хранить свои файлы в виде простого текста и версий. Есть ли что-нибудь, хотя бы отдаленно напоминающее то, что я хочу?

Если вы считаете, что я спрашиваю о чепухе, сделайте альтернативное предложение.

В примечании по теме: С какими базами данных XML (желательно с собственными и открытыми исходными кодами) вы работаете и что бы вы порекомендовали?

Ответы [ 6 ]

1 голос
/ 26 сентября 2008

Я не знаю ни одной реализации XQuery, которая бы индексировала ваши документы и оставила их в файловой системе.

Но если у вас небольшой объем данных, вы можете использовать файловую систему и использовать Saxon в качестве реализации XQuery для запроса документов. Saxon может обрабатывать любой каталог как «коллекцию» (довольно гибким способом), что означает, что вы можете одновременно запрашивать несколько документов.

Если у вас небольшой объем данных (а подход с файловой системой слишком медленный), тогда eXist - хороший вариант с открытым исходным кодом, который я использовал. Одним из преимуществ является то, что он имеет интерфейс WebDAV, что означает, что очень легко редактировать файлы и просматривать их как просто другой каталог. eXist имеет триггер истории , который будет хранить старые версии документов при их замене; Я не использовал его, но вы могли бы построить что-то, что дало бы вам необходимый контроль версий. Также возможно сделать резервную копию базы данных eXist в файл, который вы затем управляете версиями с помощью Subversion.

Если у вас большой объем данных или eXist недостаточно надежен, то MarkLogic Server - это ведущая коммерческая база данных XML, и я считаю, что она имеет некоторую поддержку для внутреннего контроля версий.

1 голос
/ 20 сентября 2008

Для нативной базы данных XML вы можете попробовать Berkeley XMLDB , которая поддерживается Oracle, но с открытым исходным кодом.

Если вы хотите действительно надежное решение, вы можете использовать MarkLogic Xml Server . Есть стоимость.

1 голос
/ 19 сентября 2008

Взгляните на существуют , это XML-база данных с открытым исходным кодом, поддерживающая XQuery.

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

MarkLogic выпустила v4.2 с XSLT, что очень удобно для преобразования XML. Хорошая часть заключается в том, что в этой версии вы можете смешивать код XQuery и XSLT, чтобы получить лучшее из обоих миров.

0 голосов
/ 12 апреля 2010

Сервер базы данных MarkLogic Xml (4.x) имеет несколько полезных функций, которые вы пробуете.

  1. у него есть хорошая нативная реализация Xquery, которую вы можете запросить в ваших XML-документах.

  2. имеет встроенную поисковую систему / анализатор поиска и расширение XQuery, которое может быстро индексировать ваши документы.

  3. имеет простую протокольную поддержку на основе REST, которая может взаимодействовать с внешней системой и вести себя.

0 голосов
/ 04 ноября 2008

Я много работал с Berkeley XMLDB в прошлом году, и это своего рода смешанная сумка.

Плюсы: FAST, xquery и xupdate, oracle поддерживается хорошо, многие языки имеют интерфейсы, небольшой оттиск, встроенный, основанный на файлах (может быть, некоторые считают это мошенничеством?), Чрезвычайно гибкий для некоторых злых и удивительных запросов

Минусы: это неприятная ошибка в заднице, если вы имеете дело с любым типом ситуации параллелизма, окружение - это странная концепция, которую может выбрать любой человек с реляционными БД, в целом она очень чувствительна и имеет тенденцию к сегфо, если не довольна *

Согласитесь с другим постером - переход к более жесткой ситуации требует больших затрат, как правило, на скорость. Если бы я собирался попробовать что-нибудь еще, это было бы существовать, но меня сдерживают накладные расходы на упаковку Java.

Концептуально xmldbs очень жесток, просто его реализация несколько незрелая, отсутствие конкуренции, отсутствие отраслевых ноу-хау.

...