用于XQuery查询的Java API
http://tech.ddvip.com 2007年07月03日 社区交流
内容摘要:这篇文章对XQJ(XQuery Java API)进行了简要的介绍,并且讨论了一些为XQuery中的关键概念进行建模的接口。如同JDBC在关系数据库中的成功,我们相信XQJ会成为对XML数据源的XQuery引擎进行交互中最广泛使用的Java API。
在上面的例子中,XQDataSource是你用来获得XQuery连接的接口。你可以通过典型的数据源实例化机制,比如JNDI查询或者显式的类装载方法来创建XQDataSource 接口初始实现类。这类似于JDBC的DataSource和Connection接口的设计。
在获得了XQConnection之后,你可以通过XQExpression或者XQPreparedExpression接口来执行XQuery。假如你只执行XQuery表达式一次,那么你应该使用XQExpression,并且如果你要准备XQuery表达式一次而使用不同的绑定值来多次执行这个表达式,像在前面的例子中那样,那么你应该使用XQPreparedExpression。这两个接口分别类似于JDBC中的Statement和PreparedStatement概念。
XQuery结果是XQuery数据模型的一个实例。在例子中显示的XQResultSequence提供了以光标为中心的接口,允许用户在结果的sequence中迭代每一个元素。用户可以从每个元素获得值,或者是原子数值或者XML节点。这类似于JDBC结果集中的迭代。
在使用完XQuery结果之后,程序员需要对XQResultSequence和XQConnection接口调用close()方法来清理这些资源。合理的用于释放资源的错误处理代码对避免资源泄露非常关键。在sequence结果关闭的时候,这个框架隐含的关闭从sequence结果中创建的元素。类似的,在连接被关闭的时候,这个sequence结果也被隐含的关闭了。
XQuery上下文(Context)的支持
XQuery有双重的“上下文”概念:静态的上下文和动态的上下文。XQJ提供了XQStaticContext和XQDynamicContext接口来为它们建模。XQStaticContext提供了方法检索定义在XQuery静态上下文中的信息,比如base URI、the boundary-space policy等等,允许应用检索关于全局静态上下文中的信息。比如,XQConnection接口扩展了XQStaticContext接口。
责编:豆豆技术应用