各类XQuery引擎的比较

译文转自:http://dev.csdn.net/htmls/52/52900.html

 

这篇文档翻译自Wei Ren([email protected] ),写作时间是2001,距今已有3年时间。其间XQuery的发展突飞猛进,文中的很多内容已经不再准确了。翻译的目的也只是给对XQuery,尤其是XQuery实现的朋友一些参考。

 

Software AG's Quip

http://www.softwareag.com/developer/downloads/default.htm

  1. 特性 :
    • 它是一个 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号的草案
  2. 缺陷 :
    • 未实现 :
      • 解引用标识符 (->)
      • 静态类型检查和 Schema验证
      • 除了 String Integer没有其他基本类型
      • Node标记
    • 只能使用反斜线 .
    • 没有源代码

Microsoft's XQuery Prototype

http://131.107.228.20/xquerydemo/demo.aspx

  1. 特性 :
    • 能够通过上面的 web站点解析和执行 XQuery有关的 XML文档。
    • 支持 FLWR表达式 , Path表达式 ,条件表达式 , min() max() avg() sum() count()这些聚集函数。
    • W3C use case给了例子,当然有些还没有实现。
    • 提供了 XQuery类库,能够通过 .Net运行。
    • 语法遵循 W3C 2001 6 7号的草案 .
  2. 缺陷 :
    • 你可以通过上面的站点查询一些预置的 XML文档,而要查询其他的文档,则要使用 Microsoft提供的类编写程序
    • 未实现 :
      1. 解引用标识符 (->)
      2. DISTINCT, UNION, // (DESCENDANT) SORTBY, UNORDERED, FILTER, Namespace, BEFORE/AFTER, Insert/Update/Delete
      3. 没有类型检查

Fatdog - XML Query Engine

http://www.fatdog.com

  1. 特性 :
    • 这是一个基于 JavaBean的可以查询本地 XML文档的 XQuery引擎。通过建立索引使用 XQL来查询 element attribute,还可以进行全文检索
    • 提供 XQuery API,比如要为某个文档建立索引,可以调用 setDocument(filePathStr)。然后可以使用 setQuery(queryStr)来对索引进行查询。
    • 支持 FLWR表达式 , element constructors, 和带有简单谓词的 XPath表达式 .
    • XQuery引擎扩展了 XQL的语法并提供了全文检索功能
    • 附带五个 JAVA例程
  2. 缺陷 :
    • 难以安装和使用,因为文档没有提及应该使用什么版本的 JAVA API来解析 XML
    • 必须写程序来查询 XML文档
    • 必须首先建立索引才能查询
    • 没有源代码

SourceForge - XQuench

http://sourceforge.net/projects/xquench

  1. 特性 :
    • XQench提供给开发人员 API,它基于的规范是 http://www.w3.org/XML/Query (支持最新的规范?)
    • 基于 JAVA的开源项目,未来会有 C++
  2. 缺陷 :
    • 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/

  1. 特性 :
    • Kweelt是一个用于查询 XML数据的框架 .
    • 实现了大部分的 W3C 2001 2 15号的 XQuery需求,并且做了好多的扩展 .
    • 带有大量的例子
    • 提供很多对 XML的支持。并不需要特定的存储方式,而是基于一系列的接口( Node NodeList),并由 NodeFacotry实现
    • JAVA写的开源项目
    • 提供 Kweelt API.
    • 可扩展性好。用户可以创建自己的函数在查询的时候使用。 Kweelt提供了不同的模板类,可以很容易地创建这些函数。
    • 带有 Kweelt Server Pages扩展 ----一个内建地 Cocoon处理器。 KSP使得 Kweelt查询能够嵌在 XML页面中。
  2. 缺陷 :
    • 不支持 namespace;
    • 没有关于 bug的详细信息

 

X-HIVE XQuery

http://www.x-hive.com/xquery

  1. 特性 :
    • 它是一个在线的 XQuery demo.
    • 查询存于 X-Hive数据库中的 XML文档。这些 XML文档可以通过数据库的浏览器查看。
    • 支持查询多个 XML文档。参看 XMach-1.
    • 大部分的 XQuery语言都已经实现了。包括申明,表达式,操作符和其余一些有用的函数。
    • 可以查询 W3C use case使用的文档。
    • 语法遵循 W3C 2001 6 7号的草案。
  2. 缺陷 :
    • 不能查询存于别的地方的 XML文档 ;
    • 仍然有 4个查询在 demo中通不过 .
    • 没有源代码


你可能感兴趣的:(各类XQuery引擎的比较)