现有XML文件是否有XML XQuery接口?

现有XML文件是否有XML XQuery接口?,xml,xquery,Xml,Xquery,我的公司从事教育行业,我们使用XML存储课程内容。我们还将一些与课程相关的信息(主要是元信息)存储在关系数据库中。现在,我们正在从专有的XML模式切换到DocBook 5。随着切换,我们希望将课程相关信息从数据库移动到XML文件。这样做的原因是将所有课程数据放在一个地方,并将其置于Subversion之下。然而,我们希望保持关系数据库的灵活性,并且能够轻松地从XML文档中提取有关课程的特定信息。XQuery似乎能胜任这项任务,所以我正在研究支持它的数据库,但到目前为止还没有找到我需要的。我基本上

我的公司从事教育行业,我们使用XML存储课程内容。我们还将一些与课程相关的信息(主要是元信息)存储在关系数据库中。现在,我们正在从专有的XML模式切换到DocBook 5。随着切换,我们希望将课程相关信息从数据库移动到XML文件。这样做的原因是将所有课程数据放在一个地方,并将其置于Subversion之下。然而,我们希望保持关系数据库的灵活性,并且能够轻松地从XML文档中提取有关课程的特定信息。XQuery似乎能胜任这项任务,所以我正在研究支持它的数据库,但到目前为止还没有找到我需要的。我基本上想要的是将我的XML文件放在一个特定的目录结构中,然后在此基础上,我希望有一个系统可以为我的文件编制索引,并允许我使用XQuery从任何文件中选择任何内容。这样我就可以拥有“我的蛋糕也吃了”:我将拥有XQuery接口,并且仍然保持我的文件为纯文本和版本。有什么东西至少有点像我想要的吗

如果你认为我所要求的是无稽之谈,请提出另一个建议


请注意:您有哪些XML数据库(最好是本机和开源的)的经验,您有什么建议?

请看,这是一个支持XQuery的开源XML数据库。

对于am本机XML数据库,您可以尝试,它由Oracle维护,但是开源的


如果您想要一个真正健壮的解决方案,可以使用。这是有代价的

我不知道有哪种XQuery实现既能为文档编制索引,又能将文档留在文件系统上

但是,如果您有少量数据,那么可以使用文件系统并将其用作XQuery实现来查询文档。Saxon可以(以非常灵活的方式),这意味着您可以同时跨一组文档进行查询

如果数据量适中(而文件系统方法太慢),那么这是我使用过的一个很好的开源选项。一个优点是它有一个WebDAV界面,这意味着编辑文件并将其作为另一个目录查看非常容易。eXist有一个存储旧版本文档的存储库,当它们被替换时;我没有使用过它,但是您可能能够围绕它构建一些东西,从而为您提供所需的版本控制。还可以将eXist数据库备份到一个文件,然后使用Subversion进行版本控制


如果您有大量的数据或者eXist不够健壮,那么它就是领先的商业XML数据库,我相信它对内部版本控制有一定的支持。

在过去的一年中,我与Berkeley XMLDB合作过很多次,而且有点复杂

优点:速度快,xquery和xupdate,oracle维护良好,许多语言都有接口,小印记,嵌入式,基于文件(可能有人认为这是个缺点?),对于一些令人讨厌的查询非常灵活

缺点:如果你正在处理任何并发类型的情况,这是一个令人头痛的错误。对于任何关系数据库人员来说,环境都是一个奇怪的概念,通常非常敏感,如果不高兴,往往会出错

同意另一张海报——去一个更强大的环境是一个巨大的成本,通常是在速度上。如果我要尝试其他任何东西,它将是存在的,但我被java打包的开销吓坏了


从概念上讲,xmldbs非常硬,只是它的实现有些不成熟,缺乏竞争,缺乏行业知识。

MarkLogic Xml Database server(4.x)有两个您可以尝试的好特性

  • 它有一个很好的原生Xquery实现,您可以查询xml文档

  • 它有一个内置的搜索引擎/搜索解析器,并有一个XQuery扩展,可以快速索引您的文档

  • 它有一个简单的基于REST的协议支持,可以与外部系统进行通信和行为


  • MarkLogic发布了带有XSLT的v4.2,这对于XML转换非常方便。好的方面是在这个版本中,您可以混合使用XQuery和XSLT代码,以充分利用这两个方面。

    eXist不以XML纯文本存储数据,而是以持久性DOM存储数据。谢谢。我一定会查清楚的。