在XML中,原子节点是否与叶节点相同?

时间:2011-10-10 10:52:54

标签: xml xpath xquery

我正在研究W3Schools网站上关于XML的教程。这是我正在访问的页面:http://www.w3schools.com/xsl/xquery_terms.asp

我对原子节点和叶子节点之间的区别感到有点困惑。它们是一样的吗?我知道叶子节点是没有任何子节点的节点,但似乎给定示例中的原子节点也没有任何子节点。

W3Schools网站称“原子值是没有孩子或父母的节点。”当然,节点不可能没有父节点,因为XML文档中的所有节点都必须位于根节点(文档根目录)下?

任何人都可以解释这个,因为我很困惑。

感谢。

3 个答案:

答案 0 :(得分:9)

我发现w3schools通常是查找我曾经知道但已经忘记的信息细节的有用资源,但它是学习新概念的非常差的资源。此示例是典型的:“原子值是没有子节点或父节点的节点。”错了,完全错了。原子值不是节点。在XQuery使用的XDM模型中,有两种项,节点和原子值。我建议您使用不同的资源,通过提供错误的信息不会造成不必要的混淆。

答案 1 :(得分:2)

在XQuery数据模型中,原子值不是节点。它是一个用原子类型标记的值。

因此,节点(甚至是叶节点)永远不是原子值,就像原子值永远不是节点一样。但是,一个节点可以“雾化”为原子值,在这种情况下,它的类型值被采用(如果有的话)。

答案 2 :(得分:0)

该例子显示“J K. Rowling”是原子的 它没有父母,也没有孩子。它本身只是一个价值或节点 (想象一下只有那行的文本文件)

但是这个:<author>J K. Rowling</author>,有一个父母和一个孩子 *家长:作者
*孩子:J K.罗琳
作者可能没有父母,但因为有孩子,所以不是原子的 J K.罗琳可能没有孩子,但它不是原子的,因为它有父母。

同时,叶子节点不是孩子,但它可能有也可能没有父母 总的来说,原子节点只是叶节点的一个子集。