以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 其他W3C规范 』 (http://bbs.xml.org.cn/list.asp?boardid=25) ---- 使用 XAPI 管理 XML 集合 (http://bbs.xml.org.cn/dispbbs.asp?boardid=25&rootid=&id=15009) |
-- 作者:oceans -- 发布时间:3/3/2005 3:22:00 PM -- 使用 XAPI 管理 XML 集合 喜欢的编程语言中使用 XML 数据库应用程序编程接口 级别: 初级 Uche Ogbuji (uche.ogbuji@fourthought.com) XML 存储库是 XML 文档这一概念的简单扩展,需要调用一个简单的 API 来实现访问和操纵。DOM 和 XPath 这类技术的粒度太小,而 XQuery 对于某些需要来说又太复杂。于是,XML 存储库的一帮实现者们走到了一起(称为 XML:DB),来共同开发诸如 API 这样的规范,结果就产生了 XML 数据库应用程序编程接口(Application Programming Interface for XML Databases,XAPI)。Uche Ogbuji 将在本文中介绍 XAPI。 XML:DB 小组甚至比最不正规的组织还要松散,他们以非常粗糙的方式开发了自己的规范。尽管如此,他们还是提出了几个非常有影响而且被广泛实现的规范。XUpdate(请参阅 参考资料)可能是最知名的一个例子,而另一项最重要的成就则是 XML 数据库应用程序编程接口(XAPI)。用 XML:DB 自己的话来说(摘自 XAPI 规范): XML:DB API [XAPI] 是为了支持 XML 数据库的公共访问机制而设计的。使用这种 API 可以构造应用程序存储、检索、修改和查询保存在 XML 数据库中的数据。这些设施可用于为任何宣称符合 XML:DB API 的 XML 数据库创建应用程序。一般而言,可以认为这种 API 相当于 ODBC、JDBC 或 Perl[以及 Python] DBI 这类技术。 属于谁的领域? XQuery 完全是为了支持跨越多个文档的聚合而设计的,但它的基本方法是为查询的抽象数据定义非常严格的数据模型和语义。 XQuery 的设计考虑了访问关系数据库和对象数据库这类遗留数据存储,结果其抽象性和复杂性使其完全不同于流行的 XML 存储库,后者常常是纯文本或者简单的散列数据库形式的 XML 集合。因此从本质上说,XQuery 提供了如何访问 XML 数据的所有概念的微积分,还需要针对基本 XML 集合的简单算术,突出 XML 文档中的类文件系统层次结构,而没有太多的概念负担。也可以这样比较,XQuery 就像是该段的企业 DBMS,功能完备,价格也高;而 XAPI 更像是处理 UNIX 文件的 GNU 工具程序 —— 强调输入和输出文本的管道,每个处理阶段只有非常简单的操作。两者不一定互相排斥,事实上有些存储库同时实现了 XAPI 和 XQuery。 具体细节 最小符合级定义了基本存储库特性的接口,如 Resource —— 数据的基本单位(通常是单个文档)—— 和 Collection —— 表示 Resource 集合(通常是某种文件夹或者容器)。此外,Service 针对查询和管理任务提供了 Collection 的扩展,Database 抽象了到特定存储库的连接,ResourceIterator 和 ResourceSet 一般表示查询的结果集。这个符合级别严格以抽象对象作为资源的内容,但是支持可扩展类型和资源标识符的概念。 核心级 0 精化了资源这个抽象概念,增加了 XML 的具体特性。它允许您将 XMLResource 的内容作为 DOM 节点(方法 getContentAsDOM())或者一系列 SAX 事件(方法 getContentAsSAX())来获得。与此类似,核心级 0 也包括修改 XML 内容的方法,以及用于定义为(非 XML)字节流的内容的接口(BinaryResource)。 核心级 1 建立在其他级别的基础上,为一般查询和操作服务提供了以下接口: XPathQueryService:允许使用 XPath 查询集合或资源,包括用于名称空间映射和查询执行的方法。 清单 1. 电影数据库的简单查询 import org.xmldb.api.base.*; /** 驱动程序就是将 XAPI 接口连接到实际数据库或者二进制实现的模块。标记为“A”的代码段创建了数据库连接,并从数据库中选择一个集合。标注为“B”的代码段建立并执行了 XPath 查询(为了保持简单,没有使用名称空间)。而标注为“C”的片段则遍历并输出查询的结果。 结束语
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |