节点数

节点符合为 XQuery 定义的节点类型之一。 这些节点类型包括:文档、元素、属性、文本、处理指令、注释和命名空间节点。

序列的节点形成一个或多个树,树由文档节点和从文档节点直接或间接可达的所有节点组成。 每个节点只属于一棵树,而每棵树只包含一个文档节点。 根节点为文档节点的树称为文档。 根节点不是文档节点的树称为片段

以下XML文档包含一个名为 product 的文档元素,该元素包含一个 description 元素。 product 元素有一个名为 pid (采购订单ID)的属性。 description 元素包含名为 namedetailspriceweight 的元素。
<product xmlns="http://posample.org" pid="100-101-01"> 
 <description>                                            
   <name>Snow Shovel, Deluxe 24"</name>                    
   <details>A Deluxe Snow Shovel, 24 inches wide, ergonomic
curved handle with D-Grip</details>                                    
   <price>19.99</price>                                    
   <weight>2 kg</weight>                                   
 </description>                                           
</product>
下图显示了前面描述的文档的数据模型的简化表示。 该图包括文档节点、元素节点、属性节点和文本节点。
图 1。 产品文档的数据模型图
开始图描述。 该图是铲雪工具的XML文档示例。 结束图描述。

如示例中所示,一个节点可将其他节点作为子代,从而组成一个或多个节点层次结构

节点标识

每个节点都有一个唯一标识。 这意味着两个节点是可区分的,即使它们的名称和值可能相同。 然而,原子值没有标识。 原子值的每个实例(例如,整数 7)与该值的其他每个实例都完全相同。

文档顺序

在层次结构的所有节点中,有一个称为文档顺序的完全排序,其中每个节点都出现在其子节点之前。 文档顺序与节点层次结构以XML格式呈现时节点的显示顺序一致:

  • 文档节点是第一个节点。
  • 元素节点在它们的子代前面出现。
  • 命名空间节点紧接与其关联的元素节点之后。
  • 属性节点出现在命名空间节点之后,如果没有命名空间节点,则出现在其关联的元素节点之后。

    属性节点和命名空间节点不是元素节点的子节点,但关联的元素节点是它们的父节点。

    属性节点的相对顺序是任意的,但在处理 XQuery 表达式时,顺序不会改变。

  • 元素节点、文本节点、处理指令节点和注释节点可以是元素节点或文档节点的子节点。
  • 同代的相对顺序由它们在节点层次结构中的顺序来确定。
  • 一个节点的子代和后代将在该节点后面的同代前面出现。

节点属性

每个节点都具有一些属性,这些属性用来描述该节点的特征。 例如,节点的属性可能包括:节点的名称、子代、父代、属性以及用来描述该节点的其他信息。 节点种类确定为特定节点提供了哪些属性。

一个节点可以具有下面的一个或多个属性:
节点名
节点的名称(以QName表示)。
父代
是当前节点的父代的节点。
类型名称
节点的动态(运行时间)类型。
子代
当前节点的子节点的序列。
属性
属于当前节点的一组属性节点。
字符串值
可以从节点中抽取的字符串值。
类型值
可以从节点中抽取的由零个或零个以上原子值组成的序列。
目标
标识处理指令所指向的应用程序。 目标是一个NCName(不带冒号的本地名称)。
content
处理指令、文本节点或注释节点的内容。