XPath序列之二

类别:.NET开发 点击:0 评论:0 推荐:

2 数据模型

XPath 将一个 XML 文档作为一棵树进行操作。该树型模型仅仅是概念上的并且不要求任何特定实现。在XML信息集映射(http://www.w3.org/TR/xpath#infoset)中描述了该模型与 XML 信息集的关系。

树包含节点,共有7种节点类型:

·   根节点

·   元素节点

·   正文节点

·   属性节点

·   命名空间节点

·   处理指令节点

·   注释节点

节点之间是有序的,他们之间遵从文档顺序,文档顺序是对文档中所有的节点定义的一个顺序,该顺序对应于在一般实体扩展以后,每个节点的XML表示的首字符出现在文档XML表示中的顺序。这样,根节点将是第一个节点。元素节点出现在他们的孩子前面。因此,文档顺序制定了元素节点以在 XML(实体扩展后)中开始标签出现的顺序为顺序。元素的属性节点和命名空间节点出现在元素的孩子们前面。命名空间节点定义出现在属性节点前。命名空间节点的相对顺序是依赖于实现。属性节点的相对的顺序是实现依赖的。

对于每种节点类型,都有一个方法来决定该类型的节点的字串值。对一些节点,字串值是节点的一部分;对于其它节点,字串值的计算是由后裔节点的字串值来求出。

根节点

根节点为树的根。除了作为树的根,根节点就不再出现。文档元素的元素节点是根节点的孩子。出现在序言中和文档元素后的处理指令及注释也为根节点的子处理指令及注释节点。根节点的字串值是根节点在文本顺序下所有文字节点后裔的字串值的累加。

元素节点

在文档中的每个元素都有一个元素节点。元素节点的孩子是元素节点、注释节点、处理节点及其内容的文字节点。对内部及外部实体的实体引用将被扩展、字符引用也被分解。元素节点的字串值是元素节点在文本顺序下所有文字节点后裔的字串值的累加。

元素节点可以有 一个唯一标识符(ID),它是在DTD中声明为类型ID的属性的值。在同一文档中,没有两个元素可以有相同的唯一标识符。

属性节点

每一个元素节点都有相关联的属性节点集;元素是每一个这些属性节点的父节点;属性节点有字串值。字串值是在 XML 建议标准详细说明的规范化的值。

命名空间节点

每个元素都有命名空间节点的关联的集合,一个为在元素的范围的每个不同命名空间前缀(包括xml前缀,它由XML命名空间建议书隐式地声明),另一个是为缺省命名空间。元素是这些命名空间节点的父节点。命名空间节点的字串值是被绑定在命名空间前缀的命名空间URI;如果它是相对的,它必须被解析。

处理指令节点

除了在文档类型声明中出现的处理指令外,每个处理指令都对应有处理指令节点。每处理指令节点的字串值是处理指令后跟随的目标及任何空白的部分,不包括结尾的 ?>

注释节点

除了在文档类型声明中出现的注释外,每条注释都有注释节点。注释的字串值是注释的内容而不包括起始的

文本节点

文本节点由字符数据组成。每个正文节点总是包含尽可能多的字符数据:不会出现两个相邻的文本节点。文本节点的字串值是它的字符数据。文本节点总是至少有一个字符的数据。

 

-----------------------------to be continued-----------------------------------

本文地址:http://com.8s8s.com/it/it44373.htm