50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

XQuery Java API JSR 225 发布公开预览版

  • 2007-07-04
  • 本文字数:1576 字

    阅读完需:约 5 分钟

JSR 225——XQuery API for Java——的第一个公开预览草案已经发布。其规范(由Oracle 领导)的目标在于为XQuery 的Java 实现提供标准的便捷的访问接口。XQJ 是一个通用的XQuery 数据访问框架,它在许多不同的XQuery 实现之上提供了一个统一的接口。

W3C 的 XQuery 是针对 XML 的查询语言。Wikipedia 对它的定义是,提供了用于抽取和操纵来自于 XML 文档或者任何可以视作 XML 的数据源(比如关系型数据库或者 office 文档)中数据的方式。XQuery 使用 XPath 表达式语法来解析 XML 文档中的特殊部分。 XQuery 的语法要求 之一是 Query 语言必须是方便人们读写的。现在 XQuery 语言既有一种方便人们阅读的语法,也有一种基于 XML 的语法。基于 XML 的语法开始于 XQueryX 1.0

用 Java 编写的基本 XQJ 表达式看起来是这样(源自规范):

...<br></br>// establish a connection to the XQuery engine<br></br>XQConnection conn = xqds.getConnection();<p>// create an expression object that is later used</p><br></br>// to execute an XQuery expression<br></br>XQExpression expr = conn.createExpression();<p>// the XQuery expression to be executed</p><br></br>String es = "for $n in fn:doc('catalog.xml')//item " +<br></br>"return fn:data($n/name)";<p>// execute the XQuery expression</p><br></br>XQResultSequence result = expr.executeQuery(es);<p>// process the result (sequence) iteratively</p><br></br>while (result.next()) {<br></br> // retrieve the current item of the sequence as a String<br></br> String str = result.getAtomicValue();<br></br> System.out.println("Product name: " + str);<br></br>}<p>// free all resources allocated for the result</p><br></br>result.close();<p>// free all resources allocated for the expression</p><br></br>expr.close();<p>// free all resources allocated for the connection</p><br></br>conn.close();<br></br>...
虽然 XQJ 规范是由 Jim Melton(Oracle)领导制定,但它的 JCP 专家组成员包括 Jason Hunter DataDirect BEA System 等等。除了 JCP 之外的行业领导者也一直遵循 XQJ 规范,贡献自己的思想,并为了统一而改善他们自己的产品。 Saxon 的创建者及 XPath 2.0 开发参考 的作者—— Michael Kay 写道 :> 这 是近一年来的第一个新版本,而且规范是在完全保密的情况下制定的,因此我很感兴趣它里面发生了什么。我原来并没有太多期望,因为我对于之前草案的多数评论 都被婉拒了(大约在我提交完的 8 个月后,而且没有任何公开的讨论)。但肯定的是,他们已经整理了很多细微之处,但总体设计并没有改变多少。(然而大多数应 用将不得不进行调整:不是重写,而是进行多处修改。这无疑说明了系统的兼容性并不好。)它还是坚定地基于客户机 - 服务器、面向连接的模 式,这样应用程序就存在于不同于数据库所在的那台机器上(就好像回到了上世纪八十年代!)……prepared 语句并不是线程安全的——你不能编译一个表 达式并让它在多个线程中同时运行,因为 XQPreparedExpression 持有它自己的动态执行上下文。

那有什么优点吗?是的,有一些。XPath 值(19 个基本数据类型)到 Java 对象的映射做得相当好——比 JAXP 好得多……这个版本还有针对所有 XPath 类型的 Java 表示……

还有,我认为还有一个可以做得更好……

W3C XQuery 规范和 8 个相关规范(包括 XSLT 2.0 XPath 2.0 )于 2006 年 6 月 8 日提交给 W3C。其中大多数更新于 2007 年 1 月 23 日。整个行业已经开始在他们的产品中使用 XQuery,甚至 JSR 170/Java 内容仓库也在使用它作为它们的标准访问机制。InfoQ 也一直在跟踪 XQuery 规范,XQJ 规范以及实现的发展。查看英文原文: http://www.infoq.com/news/2007/07/xquery-review

2007-07-04 21:261345
用户头像

发布了 127 篇内容, 共 48.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

墨天轮访谈 | 拓扑岭雷鹏:数据库新思维下的弹性压缩与内存计算

墨天轮

数据库 redis 国产数据库 键值数据库

网络协议之:haproxy的Proxy Protocol代理协议

程序那些事

Java Netty 程序那些事 4月月更

#FlyFish现金激励计划# 参与开源项目,赢万元现金!

云智慧AIOps社区

JavaScript 大前端 活动 开源项目 可视化编排

凭借这份Spring Cloud教程,成功拿下阿里,头条面试

Java架构追梦

程序员 java面试 后端开发 Spring 框架漏洞

10天“背书”这份200多页PDF,远程通过头条,阿里,Java岗面试

Java架构追梦

Java 后端开发 程序员面试

智汇华云 | flashcache原理及实践

华云数据

5 张弹珠图彻底弄清 RxJS 的拉平策略:mergeMap、switchMap、concatMap、exhaustMap

前端 RXJS 函数式编程

企事业单位如何有效开展知识管理建设

小炮

知识管理

广袤之中:沿着克拉克三大定律,读懂华为的最深期待

脑极体

科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象| 活动报名

科创人

浪潮信息加入,已完成与龙蜥操作系统产品兼容性验证

OpenAnolis小助手

云计算 服务器 龙蜥社区 CLA 浪潮

以图搜图应用篇-家具家居行业

视觉智能

人工智能 以图搜图 图像搜索 视觉智能

为团队投资CRM系统的投资回报率是多少?

低代码小观

CRM 客户关系管理 低代码开发 CRM系统 客户关系管理系统

21天连更回归,这个五一宅家写作,挑战一触即发!

InfoQ写作社区官方

热门活动 5月月更

开发一个不需要重写成Hive QL的大数据SQL引擎

华为云开发者联盟

sql 大数据 mapreduce SQL引擎 大数据仓库

硬核!8个类手写一个配置中心!

码农参上

微服务 配置中心 4月月更

华为数字化转型实践

乌龟哥哥

4月月更

设备如何使用go sdk轻松连接华为云IoT平台

华为云开发者联盟

华为云 sdk go sdk IoT平台 华为云IoT平台

AIRIOT物联网低代码平台如何配置OPC DA驱动?

AIRIOT

驱动配置

java岗面试阿里后整理的面试资料包含(Jvm+微服务+Spring等)

Java架构追梦

程序员 java面试 后端开发

如何在优麒麟上进行超大型文件的远程传输?这个命令帮你快速搞定!

优麒麟

Linux 开源 命令行 优麒麟 远程传输

零基础学Java第二节(运算符、输入、选择流程控制)

五分钟学大数据

Java 4月月更

从艺赛旗iS-RPM,看国产流程挖掘产品的发展与特性

王吉伟频道

RPA 超自动化 业务流程优化 流程挖掘 任务挖掘

科创人·SUSE大中华区董事长江永清:真开源要有打磨技术的匠心,要能持续创造社会价值

科创人

搞懂这份大厂Java面试知识点笔记汇总,涨薪15K你也没问题

Java架构追梦

Java 程序员 后端开发

阿里大牛评:入门到大成!GitHub新上线并发编程深度解析实战PDF

Java架构追梦

Java 后端开发 程序员面试

如何选择不同类型的AI服务器?

Finovy Cloud

人工智能 gpu GPU服务器 GPU算力

XQuery Java API JSR 225发布公开预览版_Java_Abhay Bakshi_InfoQ精选文章