查询 XML 数据库外的 XML 文档
2010-10-22 17:19:23 来源:WEB开发网独立实现
一个著名的独立 XQuery 处理程序是 Saxon Home Edition (Saxon-HE),Saxonica 的开源版本。这个处理程序支持 XSLT version 2.0 和 XPath version 2.0,并进行了性能优化。本文通过 Saxon 演示了数据库环境外部的 XQuery 的使用。
您可以使用 XQuery 处理任意 XML 文档,不管文档存储在何处。大量 XML 存储在本地文件系统上,或以二进制大对象(BLOB)存储在传统关系数据库中。不在原生 XML 数据库之外使用 XQuery 也是一种浪费。
通过一些工作,数据甚至不必是 XML 格式就可以使用 XQuery 处理。例如,如果您使用一个扩展函数来检索非 XML 数据,XQuery 很适合以一种有效的方式来生成 XML 输出。以下查询可能是在不需要数据库的 XQuery 查询中简单的一个:
<sum>{2+3}</sum>
这个查询的结果是:
<sum>5</sum>
关于 XQuery 的另一个误解是它需要 FLWOR(代表 let、where、order by、return)表达式 — 类似于 SQL 需要 SELECT-FROM-WHERE 表达式这种误解。尽管 FLWOER 表达式功能强大、用途广泛,但不使用它们也可以完成许多任务。每个有效的 XPath 2.0 表达式也是一个有效的 XQuery 1.0 表达式。XQuery 向该语言添加了一些强大的功能,使其能够胜任一些更大型的操作,但 XPath 本身最适合一行代码就能容纳的小型查询和表达式。
运行示例
可以通过多种方法启动 XQuery 代码。在 XML 数据库中,这种可能性因产品不同而不同。在 XML 数据库外部,您可以使用命令行程序或编写几行 Java 代码来调用 XQuery。
XQuery API for Java(XQJ — Java Specification Request [JSR] 225)是用于调用 XQuery 代码的标准 Java API。清单 1 展示了使用 XQJ 来运行示例这种简单方法。
更多精彩
赞助商链接