【ACCESS精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了ACCESS精品源码-【精品】XQuery高级应用开发应用程序惯用法 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
XQuery 高级应用:开发应用程序惯用法使用扩展函数、单元测试和断言、递归与排序以及高阶函数James R. Fuller 技术主管 FlameDigital Limited amp Webcomposite s.r.o.简介: XQuery 规范发布一年多了。
大量涌现的可靠的实现以及新的兴趣(如果根据开发人员闲聊的话题),似乎表明 XQuery 最终将得到更广泛的应用。
这也许是因为开发人员开始找到 XQuery 与其他多种 XML 技术(如 XML 数据库、XSLT、XML Schema)一起使用的办法了。
XQuery 已经超越了作为一种 XML 查询语言的最初定位,本文介绍如何将其用于开发中间件和 Web 应用程序。
标记本文!发布日期: 2008 年 12 月 22 日级别: 中级访问情况 2349 次浏览建议: 0 添加评论 平均分 (共 13 个评分 )开始之前讨论 XQuery 示例代码之前,先介绍一下如何学好本教程,如何安装和使用所附的源代码(参见下载 小节)。
关于本教程本教程介绍如何使用 XQuery 开发应用程序和中间件。
列举了在应用程序开发中 XQuery的一些局限,就如何克服这些局限提供了切实可行的建议,同时强调 XQuery 在处理这些问题时的优势和缺点在哪里。
然后在此基础上,利用大量的篇幅介绍了应用程序开发中一系列常见的编程惯用法: 使用扩展函数 单元测试与断言 递归与排序 高阶函数每一节都带有源代码示例(参阅 下载 小节)。
回页首目标本教程的目的是帮助您学习如何使用 XQuery 开发应用程序。
我将尽量提供可以剪切粘贴的成熟代码以便在您的应用程序开发中直接使用,但是我希望这些例子能够使您重新考虑XQuery 的应用,而不仅仅是查询 XML。
回页首先决条件本教程是为那些对 XML 技术有一定了解而对 XSLT 或 Query 略有涉猎的开发人员编写的。
这里提出的编程惯用法并不是我发明的,在多种计算机语言中都以各种形式存在。
这种重用意味着适合大多数读者,您将看到熟悉的结构 — 尽管是在 XQuery 编程环境中。
回页首系统要求必须安装 Michael Kay 的 Saxon XSLT 和 XQuery 处理程序 SA 感知版 以便执行示例代码。
因为需要 Saxon-SA 版本,必须注册才能获得 30 天的试用期(比如,撰写本文的 。
过程中使用 9.1SA 版进行了测试) 很多示例代码采用了高阶函数以便利用 Saxon-SA 专有的扩展函数(具体而言即 saxon:function)。
将 Saxon 的所有 Java Archive JAR 文件和许可证文件放在 /lib 目录下。
运行文中的例子可通过命令行调用 Saxon,或者使用下载文件中的 Ant 构建文件(我用于测试示例代码)。
如果使用构建文件则应安装最新的 Apache Ant,修改 saxon.lib.dir 属性使其指向包含 Saxon JAR 的 /lib 目录。
要检查 Saxon 是否安装正确,可对 checkSaxon 运行 Ant,若安装正确则该过程将成功完成。
所有 Ant 目标都把结果输出到 /result 目录下。
今天的 XQuery现在我们讨论一下 XQuery 的历史及目前的处境。
XQuery 规范所谓 XQuery 规范,我指的是一组互相关联的文档: XQuery 1.0(一种 XML 查询语言):定义了核心语言 XQuery 1.0 和 XPath 2.0 数据模型: 定义了 XPath 和 XQuery 共同的数据模型 XQuery 1.0 和 XPath 2.0 形式语义:提供了数学基础 XQuery 1.0 和 XPath 2.0 函数与运算符:定义了 XPath 和 XQuery 共有的函数 XSLT 2.0 和 XQuery 1.0 序列化:定义了如何从 XQuery 构造和输出 XML还有人认为 XML Query 用例文档也很有用,它提出了各种应用场景和相应的 XQuery 解决方案 。
(链接参见 参考资料) 还有一些规范和草案提供了其他的功能,比如更新 XML 和全文本搜索。
常用缩写词 API:应用程序编程接口(Application programming interface) EXSLT:XSLT 扩展(Extensions for XSLT) URI:统一资源标识符(Uniform Resource Identifier) W3C:万维网联盟(World Wide Web Consortium) XML:可扩展标记语言(Extensible Markup Language)