XPath
和XQuery
和有什么区别XPointer
?据我所知,XQuery
是XPath
. 我有一些基本的知识XPath
。是否有任何可用的功能XPath
不在XQuery
?昨天,我听到一个新词,XPointer
。我很困惑。哪种语言用于哪种目的?
4 回答
尽管 Matthew 的回答给人留下了良好的第一印象,但关于上述标准还有很多要讲的,还有很多相关的。网上有一篇来自 XML Holland 用户组杂志的好文章,它讲述了很多关于 XQuery 的历史,并从不同角度看待这些标准。第一部分在这里非常相关:
XQuery代表XML 查询语言。这已经说明了本质。它是一种从大量 XML 文件中选择子集和子结构的语言。可以将结果处理成适合用于例如后续流程或在 Web 浏览器中显示的内容。XPath在 XQuery 中被大量使用。
所有 XML 标准都有自己的范围。我会举几个。XSLT是一种用于将 XML 转换为其他格式的语言。XPointer是 XPath 的扩展,用于在 XML 片段甚至节点的子部分中更准确地寻址节点。XLink是定义关系的标准。XInclude是一种使用例如 XLink 关系将多段 XML 组合成一个的标准。和XProc是一个标准,可以用来描述如何处理 XML 文档以获得所需的最终结果。它以 XML 表示,并逐步描述流程,也称为 XML 管道。在 XProc 中,您使用 ao XQuery、XSLT 和 XInclude 语言(因此也间接使用 XPath、XPointer 和 XLink)来表达在每个步骤中准确需要完成的内容。
所有这些标准都捆绑在一起。它们是相关的,并且相互依赖。下一张图片很好地总结了一些提到的 XML 标准之间的重叠,您也可以在W3Schools找到该图片:
完整的文章可以在这里找到:http: //grtjn.blogspot.nl/2011/10/xquery-novelties-revisited.html
!
嗯,我认为 XQuery 是值得区分的。XPath 和 XPointer 几乎相同,都用于 XML 节点选择。另一方面,XQuery 是 XPath 的一个很大的扩展。例如,它提供了声明自定义函数的可能性。所以它更像是一种编程语言,它本机地与 XML 一起工作。您可以在此处查看一些示例:embedding-xquery-in-java
问候
XPath 有意限制为读取现有节点。
作为 XSLT,XQuery 可以创建节点。它还可以更新节点(使用 XQuery 更新工具)。
从我的 XQuery 实现者的角度来看 ;-)