我正在研究W3Schools网站上关于XML的教程。这是我正在访问的页面:http://www.w3schools.com/xsl/xquery_terms.asp
我对原子节点和叶子节点之间的区别感到有点困惑。它们是一样的吗?我知道叶子节点是没有任何子节点的节点,但似乎给定示例中的原子节点也没有任何子节点。
W3Schools网站称“原子值是没有孩子或父母的节点。”当然,节点不可能没有父节点,因为XML文档中的所有节点都必须位于根节点(文档根目录)下?
任何人都可以解释这个,因为我很困惑。
感谢。
答案 0 :(得分:9)
我发现w3schools通常是查找我曾经知道但已经忘记的信息细节的有用资源,但它是学习新概念的非常差的资源。此示例是典型的:“原子值是没有子节点或父节点的节点。”错了,完全错了。原子值不是节点。在XQuery使用的XDM模型中,有两种项,节点和原子值。我建议您使用不同的资源,通过提供错误的信息不会造成不必要的混淆。
答案 1 :(得分:2)
在XQuery数据模型中,原子值不是节点。它是一个用原子类型标记的值。
因此,节点(甚至是叶节点)永远不是原子值,就像原子值永远不是节点一样。但是,一个节点可以“雾化”为原子值,在这种情况下,它的类型值被采用(如果有的话)。
答案 2 :(得分:0)
该例子显示“J K. Rowling”是原子的 它没有父母,也没有孩子。它本身只是一个价值或节点 (想象一下只有那行的文本文件)
但是这个:<author>J K. Rowling</author>
,有一个父母和一个孩子
*家长:作者
*孩子:J K.罗琳
作者可能没有父母,但因为有孩子,所以不是原子的
J K.罗琳可能没有孩子,但它不是原子的,因为它有父母。
同时,叶子节点不是孩子,但它可能有也可能没有父母 总的来说,原子节点只是叶节点的一个子集。