使用Visual C++ 2008 Express Edition 编译Oracle Berkeley DB XML
摘要:本文介绍了Oracle Berkeley DB XML, 并描述了使用Microsoft Visual C++ 2008 express edition 在Windows 平台编译Oracle Berkeley DB XML的过程。
关键字:Berkeley DB XML, Windows 平台编译
1.前言
Oracle Berkeley DB XML 是一个可嵌入的开源 Native XML 数据库,可基于 XQuery 访问存储在容器中的文档,并对其内容进行索引。Oracle Berkeley DB XML 构建于 Oracle Berkeley DB 之上,并继承了其丰富的特性和属性。与 Oracle Berkeley DB 一样,它通过应用程序运行,无需人为管理。Oracle Berkeley DB XML 在 Oracle Berkeley DB 之上新增了文档分析器、XML 索引器以及 XQuery 引擎,实现了最快速、最高效的数据检索。由于以 Berkeley DB 作为底层存储引擎,因此 Berkeley DB XML 继承了完整的 ACID 事务处理、自动恢复、热备份、用于分布式事务的 XA、通过 AES 进行磁盘数据加密以及针对高可用性的复制。此外,Berkeley DB XML 中还可存储 XML 和非 XML 数据,这将有利于某些应用程序的运行。目前,除了该数据库外,市场上还没有任何一款 XML 数据库是基于此种成熟、经过实测的技术。
微软推出的Visual Studio Express Edition 是轻型、易学、易用的开发工具,适用于业余爱好者、热衷者和学生, 可以免费使用。在编译器及编译环境上与Visual Studio正式版并无差异。
本文使用Visual C++ 2008 Express Edition 编译Oracle Berkeley DB XML 2.4.16 版本。
2. 下载Oracle Berkeley DB XML
Oracle Berkeley DB XML可从此处下载:http://www.oracle.com/technology/global/cn/software/products/berkeley-db/xml/index.html

点击Berkeley DB XML 2.4.16.zip, 因为本文是描述如何从源代码编译Berkeley DB XML, 所以我们不选择Windows 安装程序。下载zip包后解压。
3. 编译
解压后我们发现, zip包里面存在以下目录

打开dbxmlbuild_windows 目录, 可以看到有很多Visual Studio的解决方案和工程项目文件,包括VC6, VC7, VC8. 我们将使用VC8的solution file.

打开Visual C++ 2008 Express, 选择菜单->File->Open->Project/Solution, 打开build_windows目录下的BDBXML_all_vs8.sln文件.

在出现的转换向导直接点击Finish, 等待VS导入解决方案后,可以看到所有Berkeley DB XML的项目都载入到Visual Studio中,

右键点中dbxml项目,选择Build, 在点击Build前可以在工具栏选择编译的类型Debug/Release 和平台。

先喝杯茶放松放松,稍侯片刻。几分钟后Berkeley DB XML就已经编译完毕

编译完成打开DB XML目录可以看到增加了几个目录,在bin目录下包含的是Berkeley DB XML所使用的.dll 文件。

4. 总结
在Windows平台使用Visual C++ express版本编译Berkeley DB XML是比较容易的,读者如果在编译上有什么疑问欢迎和我交流,后续文章将会介绍更多的Oracle Berkeley DB XML的使用和优化。
—-
参考链接:
http://www.oracle.com/technology/global/cn/software/products/berkeley-db/xml/index.html
http://www.oracle.com/technology/global/cn/products/berkeley-db/xml/index.html
请教一个问题:Xqilla对中文支持似乎不好。用来分析xml文档,其中中文都是乱码,有解决的办法吗?
你好啊。XQilla/DbXml支持完整Unicode集,所以不会出现对中文支持的问题。之所以会出现乱码,一般是你所使用的终端或者编辑器的问题。请按照UTF-8来设置你的终端或者编辑器的编码。谢谢!