IBM Books
(C) IBM Corp. 2000

Manual de administración y del usuario de DB2 Net Search Extender


Semántica de las expresiones del localizador (XPath)

Según el modelo de datos XML, los documentos XML se ven como árboles que contienen estas clases de nodos:

Los enlaces entre estos nodos, es decir la relación en forma de árbol, reflejan la relación inmediata de contenido del documento XML.

El nodo root sólo puede aparecer en root y en ningún otro lugar del árbol. Contiene, como hijos, el elemento de documento, los comentarios opcionales y las instrucciones de proceso.

Los nodos de elementos pueden contener cualquier clase de nodo excepto el nodo root. Las demás clases de nodos sólo están permitidas en los nodos de terminal del árbol.

Hay tres clases de enlaces de contenido: 'hijo', 'atributo' y 'espacio de nombre'. Los enlaces de contenido 'atributo' y 'espacio de nombre' deben conducir a los nodos de atributo y espacio de nombre, respectivamente. Es decir, para acceder a los hijos de un nodo de elementos (en teoría de gráficos), debe seguir los enlaces 'atributo' para buscar todos los atributos contenidos, seguir los enlaces 'espacio de nombre' para buscar todas las declaraciones de espacios de nombre contenidas y seguir los enlaces 'hijo' para buscar los elementos contenidos, los nodos de texto, las instrucciones de proceso y los comentarios.

Una expresión de XPath debe interpretarse en relación a un nodo de contexto e indica un conjunto de nodos. Cuando se utiliza como patrón del selector de Net Search Extender, el nodo de contexto es libre, es decir, un patrón de vía de acceso relativa p se interpreta como //p.

Estos son los patrones del selector XPath de Net Search Extender:

Nota

NodeTest en la forma NameTest supone que el nodo es del tipo principal del eje seleccionado, que es el tipo de atributo en el eje de atributo y el tipo de hijo en el eje de hijo. Por consiguiente, NameTest no puede utilizarse para elegir nodos de comentarios o de instrucción de proceso, sino sólo para nodos hijo y de atributos. Además, los patrones permiten la selección de cualquier nodo, excepto los nodos de espacio de nombre, porque el especificador de eje 'namespace' no está permitido.

Ejemplo de patrones:

Ésta es la sintaxis del elemento localizador:

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 y QName están definidos en la recomendación sobre nombres de XML:


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]