译文转自:http://dev.youkuaiyun.com/htmls/52/52900.html
这篇文档翻译自Wei Ren(weiren@dstc.edu.au ),写作时间是2001,距今已有3年时间。其间XQuery的发展突飞猛进,文中的很多内容已经不再准确了。翻译的目的也只是给对XQuery,尤其是XQuery实现的朋友一些参考。
Software AG's Quip
http://www.softwareag.com/developer/downloads/default.htm
- 特性 :
- 它是一个 Windows 32位平台的 XQuery引擎
- 易于安装和使用 .
- 实现了大部分 XQuery语言规范,包括 DISTINCT,UNION,//(DESCENDANT),NAMESPACE,用户可以自定义函数
- 可以查询文件系统中的 XML文档,也可以查询保存于 Tamino XML数据库中的 XML文档,查询结果可以保存
- 增加了两个非标准的函数 :
- 'fromCollection(String name)'
- 'textsearch( String s1,String s2) '
- 所带例子中有 76个查询语句和 51 个 XML文件
- 语法遵循 W3C 2001年 6月 7号的草案
- 缺陷 :
- 未实现 :
- 解引用标识符 (->)
- 静态类型检查和 Schema验证
- 除了 String和 Integer没有其他基本类型
- Node标记
- 只能使用反斜线 .
- 没有源代码
- 未实现 :
Microsoft's XQuery Prototype
http://131.107.228.20/xquerydemo/demo.aspx
- 特性 :
- 能够通过上面的 web站点解析和执行 XQuery有关的 XML文档。
- 支持 FLWR表达式 , Path表达式 ,条件表达式 ,和 min()、 max()、 avg()、 sum()、 count()这些聚集函数。
- 对 W3C的 use case给了例子,当然有些还没有实现。
- 提供了 XQuery类库,能够通过 .Net运行。
- 语法遵循 W3C 2001年 6月 7号的草案 .
- 缺陷 :
- 你可以通过上面的站点查询一些预置的 XML文档,而要查询其他的文档,则要使用 Microsoft提供的类编写程序
- 未实现 :
- 解引用标识符 (->)
- DISTINCT, UNION, // (DESCENDANT), SORTBY, UNORDERED, FILTER, Namespace, BEFORE/AFTER, Insert/Update/Delete
- 没有类型检查
Fatdog - XML Query Engine
- 特性 :
- 这是一个基于 JavaBean的可以查询本地 XML文档的 XQuery引擎。通过建立索引使用 XQL来查询 element, attribute,还可以进行全文检索
- 提供 XQuery API,比如要为某个文档建立索引,可以调用 setDocument(filePathStr)。然后可以使用 setQuery(queryStr)来对索引进行查询。
- 支持 FLWR表达式 , element constructors, 和带有简单谓词的 XPath表达式 .
- XQuery引擎扩展了 XQL的语法并提供了全文检索功能
- 附带五个 JAVA例程
- 缺陷 :
- 难以安装和使用,因为文档没有提及应该使用什么版本的 JAVA API来解析 XML
- 必须写程序来查询 XML文档
- 必须首先建立索引才能查询
- 没有源代码
SourceForge - XQuench
http://sourceforge.net/projects/xquench
- 特性 :
- XQench提供给开发人员 API,它基于的规范是 http://www.w3.org/XML/Query (支持最新的规范?)
- 基于 JAVA的开源项目,未来会有 C++版
- 缺陷 :
- XQuench还处于初步开发阶段,没有什么文档 .
- 你必须自己从 sourceforge的站点得到源代码并使用 Ant编译,编译之前还必须有 JAVACC来产生 XQuery的解析器。相对而言,编译的帮助文档要比 Fatdog详细。
- 目前 XQuench所做的就是解析 XQuery语法。因此当你运行它所带的测试语句是,会看到 --Input: /home2/weiren/work/xmlquery/xquench/xquench/dist/doc/testsuite/simp1.xmq --Good Input! >Start > XQueryFile > XQueryUnit > FunctionLibrary > Query > Expression .........
Kweelt
http://db.cis.upenn.edu/Kweelt/
- 特性 :
- Kweelt是一个用于查询 XML数据的框架 .
- 实现了大部分的 W3C 2001年 2月 15号的 XQuery需求,并且做了好多的扩展 .
- 带有大量的例子
- 提供很多对 XML的支持。并不需要特定的存储方式,而是基于一系列的接口( Node和 NodeList),并由 NodeFacotry实现
- JAVA写的开源项目
- 提供 Kweelt API.
- 可扩展性好。用户可以创建自己的函数在查询的时候使用。 Kweelt提供了不同的模板类,可以很容易地创建这些函数。
- 带有 Kweelt Server Pages扩展 ----一个内建地 Cocoon处理器。 KSP使得 Kweelt查询能够嵌在 XML页面中。
- 缺陷 :
- 不支持 namespace;
- 没有关于 bug的详细信息
X-HIVE XQuery
- 特性 :
- 它是一个在线的 XQuery demo.
- 查询存于 X-Hive数据库中的 XML文档。这些 XML文档可以通过数据库的浏览器查看。
- 支持查询多个 XML文档。参看 XMach-1.
- 大部分的 XQuery语言都已经实现了。包括申明,表达式,操作符和其余一些有用的函数。
- 可以查询 W3C的 use case使用的文档。
- 语法遵循 W3C 2001年 6月 7号的草案。
- 缺陷 :
- 不能查询存于别的地方的 XML文档 ;
- 仍然有 4个查询在 demo中通不过 .
- 没有源代码