IBM Books
(C) IBM Corp. 2000, 2003.

Net Search Extender

管理和用户指南


定位器(XPath)表达式的语义

根据 XML 数据模型,XML 文档被视作包含下列类型节点的树:

这些节点之间的链接(换句话说就是树形成关系)反映 XML 文档中的直接包含关系。

根节点只能出现在根处,而不能出现在树的其它位置。它包含作为其子代的文档元素和可选注释及处理指令。

元素节点可包含任何类型的节点,但根节点除外。其它类型的节点只允许在树的终端节点位置。

有三种类型的包含链接:“子代”、“属性”和“名称空间”。“属性”和“名称空间”包含链接必须分别引导至属性和名称空间节点。换言之,要存取元素节点的子代(按照图论),需要跟随“属性”链接来查找所有包含的属性,跟随“名称空间”链接来查找所有包含的名称空间声明,跟随“子代”链接来查找包含的元素、文本节点、处理指令和注释。

需要根据上下文节点来解释 XPath 表达式,并表示一组节点。当用作 Net Search Extender 选择器模式时,上下文节点空闲,也就是说,相对路径模式 p 解释为 //p

下面是 Net Search Extender XPath 选择器模式:

注意

格式为 NameTest 的 NodeTest 假定节点为所选轴上的主体类型,它是属性轴上的属性类型,也是子代轴上的子类型。因此,NameTest 不能用来选择注释或处理指令节点,而只能选择子节点和属性节点。而且,该模式允许选择任何类型的节点(名称空间节点除外),原因是不允许使用轴说明符“namespace”。

模式示例:

以下是定位器元素的语法:

Locator     ::= LocationPathPattern
           | Locator '|'  LocationPathPattern
 LocationPathPattern  ::= '/' RelativePathPattern ?
           | '//'? RelativePathPattern
 RelativePathPattern  ::= StepPattern
           | RelativePathPattern '/' StepPattern
           | RelativePathPattern '//' StepPattern
 StepPattern    ::= ChildOrAttributeAxisSpecifier NodeTest
 ChildOrAttributeAxisSpecifier ::=
           ('child' | 'attribute') '::'
           | '@'?
 NodeTest    ::= NameTest
           | NodeType '(' ')'
           | 'processing-instruction' '(' Literal ')'
 NameTest    ::= '*' | NCName ':' '*' | QName
 NodeType    ::= 'comment' | 'processing-instruction'

NCName 和 QName 是按“XML 名称建议”定义的:


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]