管理XML数据:eXist——开放源码的XML数据库(1)

发表于:2007-06-11来源:作者:点击数: 标签:
Wolfgang Meier 的开放源码的 eXist 数据库 可能是当今最流行的原生 XML 数据库(但这并不是说它是最好的)。eXist 是用 Java 编程语言编写的,可运行在大多数主要平台上。程序通过 eXist 绑定的 HTTP 服务器 与 eXist 交互。 SOA P、XML-RPC 和 RESTful 接

Wolfgang Meier 的开放源码的 eXist 数据库可能是当今最流行的原生 XML 数据库(但这并不是说它是最好的)。eXist 是用 Java™ 编程语言编写的,可运行在大多数主要平台上。程序通过 eXist 绑定的 HTTP 服务器与 eXist 交互。SOAP、XML-RPC 和 RESTful 接口它都提供了,您可以通过这些接口向核心服务器提交 XPath、XQuery 和 XUpdate 请求。命令行和 GUI 客户机也是可用的。

安装 eXist

eXist 需要 Java 1.4 或更高版本,否则,所有必需的依赖关系都将被绑定。事实上,对于服务器端开放源码项目来说,安装 eXist 已经是相当容易了。其他很多项目,不管是开放源码的,还是非开放源码的,安装时都可以从安装 eXist 受到启发。安装程序是用 IzPack 构建的。发行版是一个 JAR 档案文件。要安装 eXist,只要像下面这样运行该档案文件即可:

$ java -jar eXist-1.0b2-build-1107.jar


安装程序打开一个 GUI,询问您要将 eXist 目录安装在哪里。我把它安装在 /home/elharo/eXist 中。eXist/bin 目录包含必需的启动脚本。要启动服务器,可执行 startup.sh (UNIX®) 或 startup.bat (Microsoft® Windows®):

$ ./startup.sh


该命令在端口 8080 上运行服务器,并开始服务 /eXist 中的文件。您可以从任何 Web 浏览器连接到 eXist。例如,我将 eXist 安装在 eliza.elharo.com 上,所以我可以在以下 URL 处连接到 eXist:

http://eliza.elharo.com:8080/exist/


(您不要在自己家里这么去尝试,因为我的防火墙会挡住您。您必须连接到您自己的服务器。)

最初,您将看到 eXist 文档,还有一些您将要去探明的示例。

将数据装载到 eXist 中

eXist 不是真正的 Web 服务器,它只是使用一个 Web 服务器作为到底层数据库服务器的方便的接口。软件包中还包含独立的 GUI 客户机和编程 API,您可以使用这些来执行各种操作。您甚至可以使用 WebDAV 从 Microsoft Windows Explorer 浏览 eXist。对于初次体验来说,可能使用简单的 GUI 客户机是最容易的。要启动客户机,可从 eXist/bin 目录执行 client.sh (UNIX) 或 client.bat (Windows):

$ ./client.sh


从图 1 可以看到,默认情况下,客户机试图连接到运行在端口 8080 上的本地主机上的 eXist 数据库。您可以在 URL text 字段指定另外的主机和端口。这一个窗口也会要求输入用户名和密码。默认情况下,用户名是 admin,可以将 password 字段保持为空。



连接到 eXist



图 1. 连接到 eXist

您登录之后,客户机显示图 2 所示的 GUI。最初,eXist 带有一个集合,叫做 system,其中存储有用户信息。现在您不想使用这个集合,而是通过选择 File > New Collection 为文档创建一个新的集合。我创建了一个名为 books 的集合。要打开集合,可在 GUI 中双击它。打开一个集合后,要上载文档,可单击看起来有点像一张弯曲的纸、旁边有一个加号的图标。



eXist 管理客户机

图 2. eXist 管理客户机

我首先上载两个小文档,数据库毫无意见地接受它们。然后我尝试上载我的 Processing XML with Java 一书的完整文本。这个操作悄无声息地失败了,没有给出任何错误消息。不通过 GUI 客户机上载,改为通过 Web 接口上载也失败了。但是该接口给出了一个堆栈跟踪,有助于调试问题。这表明 eXist 没有解析文档类型声明中使用的相对 URL。要装载具有外部 DTD 子集的文档,您必须手动在服务器的文件系统上安装 DTD,并编辑一个编目文件,告诉数据库要装载的文档在哪里;然后,必须重启数据库服务器,使它重新装载编目文件。这是一个主要的争论点,尽管每个不同的 DTD 您通常只需要安装一次。在您的文档不使用 DTD 或者只使用少量不怎么改变的 DTD 时,eXist 工作得最好。


共3页: 1 [2] [3] 下一页

原文转自:http://www.ltesting.net

...