代码改变世界

XML DataBase之BaseX相关

2011-07-20 10:23  shy.ang  阅读(2241)  评论(0编辑  收藏  举报

  在众多的开源XML数据库中,我首先选择了BaseX来了解。http://basex.org/ BaseX主页,想了解BaseX大概情况的主要参照该网站,本文主要是对自己在了解BaseX过程中知道的情况和遇到的问题写下来,也供读者借鉴吧 : )。

  BaseX有三种模式,服务器、客户端和单机模式。windows下装BaseX还是很方便的,BaseX网站提供了exe文件,不像Xindice(我装两次还失败了,RP~~)还需要一个一个设置,虽然也比较简单。

  BaseX一个比较显著地优点是有了GUI,界面中有查询窗口,可采用XQuery查询相关数据库中的XML文件;也有能够动态展示xml文件层次和节点关系的图。但我感觉也就这点好处了,编程时和GUI无关了。

  和Xindice相比,BaseX更能支持大型XML文档的存储,而Xindice对大型xml没有很好的支持,为管理中小型文档的集合而设计。

  在调试BaseX时,首先遇到了Eclipse安装XQDT的问题,需要先装DLTK(http://blog.msbbc.co.uk/2011/06/eclipse-installing-dltk-on-eclipse.html        http://www.cnblogs.com/bluesky4485/archive/2011/04/26/2029667.html

  然后装载BaseX网站中code examples时也遇到了不少问题,首先要知道在BaseX安装文件目录中已经为我们备好相关api库文件(我就一开始没注意,找缺少的jar找了半天,网上还没有相关…………),导入到程序中即可。

  还有一点很重要,也令我不解的是,用BaseX客户端命令行或者GUI或者是程序中利用客户端session执行命令行语句对数据库进行操作时,所对应的数据库都是在BaseX安装目录下地data文件中,也就是一般情况的数据库都是在这个data文件夹中。而在程序中使用XML:DB的API进行数据库操作或者是单机模式cmd时,所对应的初始URI却对应着C:\Users\shy\BaseXData(Win7)文件夹,shy是我的用户名。如下代码片段:

/** Database driver. */
private static final String DRIVER = "org.basex.api.xmldb.BXDatabase";
/** Name of the referenced database. */
private static final String DBNAME =
"xmldb:basex://localhost:1984/XMLDBCollection";
//其中的XMLDBCollection程序是从C:\Users\shy\BaseXData文件夹中寻找的,如果找不到下面的DatabaseManager.getcollection(...)会返回null