写点什么

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:261005
用户头像

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

关注

评论

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

科大讯飞t30pro和lumie10pro有什么区别

妙龙

科大讯飞 学习机

科大讯飞air2和air区别,科大讯飞air2和air哪个好

妙龙

科大讯飞 学习机

科大讯飞air2和air2pro哪个好,科大讯飞air2和air2pro区别

妙龙

科大讯飞 学习机

用阿里通义灵码对MicroBlocks代码AI重构

积木思维

鸿蒙NEXT开发案例:颜文字搜索器

zhongcx

科大讯飞s30功能配置介绍,科大讯飞s30怎么样优缺点分析

妙龙

科大讯飞 学习机

科大讯飞air2和x3区别,科大讯飞air2和x3哪个好

妙龙

科大讯飞 学习机

科大讯飞智能办公本Air 2 评测 使用感受

妙龙

科大讯飞 学习机

科大讯飞学习机和小猿学练机区别对比

妙龙

科大讯飞 学习机

Java程序员如何精进性能优化技能?

了不起的程序猿

性能优化 架构师 java面试 MySQL优化 jvm调优

如何做好一个中层管理

易成研发中心

企业管理 企业管理软件

初见ByConity

法医

ByConity

SEO 搜索引擎优化核心名词全解析

恩爸编程

搜索引擎 百度 SEO SEO伪静态 SEO 优化

《Django 5 By Example》阅读笔记:p521-p542

codists

Python django

教学培训小程序软件开发,协助机构管理招生工作

V\TG【ch3nguang】

科大讯飞T30 Lite和步步高S8的区别

妙龙

科大讯飞 学习机 步步高 步步高家教机

科大讯飞T30Lite配置参数 科大讯飞学习机哪款好

妙龙

科大讯飞 学习机

crossover安装exe后无法打开怎么办?CrossOver安装成功但打不开

阿拉灯神丁

容器 应用程序配置 苹果软件精选 CrossOver Mac下载 CrossOver 24

鸿蒙NEXT开发案例:世界时间表

zhongcx

鸿蒙

科大讯飞air2pro和airpro的区别,科大讯飞air2pro和airpro哪个好

妙龙

科大讯飞 学习机

科大讯飞T30 Ultra,T30pro,T30 Lite选哪个好

妙龙

科大讯飞 学习机

科大讯飞Air 2 Pro和Air 2、Air Pro哪款好

妙龙

科大讯飞 学习机

如何写出好的大模型提示词?如何判断提示词的好坏?

AIGC.TWang

AIGC GPT 提示词

基于MicroBlocks的"双模态"遥控智能小车

积木思维

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