查询包含名称空间的XML数据
http://tech.ddvip.com 2007年07月03日 社区交流
内容摘要:如果想学习关于 XQuery 与 SQL/XML 的基础以外的更多知识,那么必须理解文档和消息中的 XML 名称空间对查询的语义的影响。否则,就可能收到意外的结果。幸运的是,学习如何查询包含名称空间的 XML 文档并不难。本文提供了一些例子来帮助您起步。
XML 消息和文档中名称空间的广泛使用对应用程序开发人员如何编写查询有很大的影响。不幸的是,名称空间与流行的查询语言(例如 SQL/XML 和 XQuery)之间的关系往往遭到误解。本文通过几个常见的场景,帮助您理解如何查询包含名称空间的 XML 数据。
对某些人而言,XML 名称空间是一剂良药;而对另外一些人而言,XML 名称空间则是一块绊脚石。然而,无论您喜欢它们还是讨厌它们,XML 名称空间无处不在。事实上,很多开发人员认为它们必不可少。
打开一个 Web 服务定义语言(WSDL)文件或 SOAP 消息,将一个字处理文档转换成 XML,或者浏览行业相关的 XML 模式,常常可以发现其中有对多个名称空间的引用。如果想查询 XML 数据,那么就必须考虑这些名称空间,因为名称空间会影响一切东西。(所谓一切东西 是有点儿夸张。不过名称空间对查询的语义的确有着巨大的影响。)
如果忽视了名称空间的存在,那么所编写的查询很可能得不到期望的结果。这算是一个坏消息。好消息是,弄懂如何正确地查询包含名称空间的 XML 数据并不需要花太多时间。本文就可以助您起步。
XML 名称空间简介
XML 名称空间是一项 W3C XML 标准。实际上,XPath、XML Schema、XQuery 和其他 XML 技术都支持名称空间。本文并不提供关于名称空间的详细教程,而只是简述一些关键概念。要了解更多关于 XML 名称空间的知识,请参阅 参考资料 小节。
XML 名称空间允许 XML 文档将来自不同词汇表的元素和属性混合在一起,而不会产生歧义和处理上的冲突。XML 名称空间使得公司可以为他们的 XML 数据使用一个通用的惟一标记词汇表(元素和属性名称),并可以与其他组织共享这个词汇表。有些公司依赖于名称空间来帮助组合来自不同来源的 XML 数据,随业务需求的变化而更新 XML 模式,以及促进文档的重用。
来源:ibm.com 作者:C. M. Saracco 责编:豆豆技术应用