- All Modules
- All Functions
-
www.w3.org
- 2005
- XDM
- store
- introspection
- reflection
- external
-
xqdoc
-
project_xqdoc
-
xqdoc
(E)
- xqdoc2xhtml
-
project_xqdoc
- data processing
- expath.org
- www.functx.com
- debugger
- error
- www.zorba-xquery.com
http://www.zorba-xquery.com/modules/node-position
import module namespace np = "http://www.zorba-xquery.com/modules/node-position";
This module provides a function (np:node-position) that, given a node, returns positional information about the node in the form of an xs:anyURI item. The module also defines functions that use such positional information to determine: (1) positional relationships between two nodes (e.g. if one is the ancestor of another) and (2) positional properties of a single node (e.g. its level in the tree). Within this module, the term "node position" will be used to refer to an xs:anyURI item that is returned by the np:node-position function.
Federico Cavalieri, Markos Zaharioudakis
xquery version "1.0" encoding "utf-8";
The latest version of this module is 2.0. For more information about module versioning in Zorba please check out this resource.
- the XQuery module can be found here.
np | http://www.zorba-xquery.com/modules/node-position |
ver | http://www.zorba-xquery.com/options/versioning |
![]() |
ancestor-of
(
$pos1 as xs:anyURI,
$pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is an ancestor of the node position given as first argument. |
![]() |
attribute-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is an attribute of the node position given as first argument. |
![]() |
child-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is a child of the node position given as first argument. |
![]() |
descendant-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is a descendant of the node position given as first argument. |
![]() |
following-in-document-order-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is following in document order the node position given as first argument. |
![]() |
following-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is following the node position given as first argument. |
![]() |
following-sibling-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is a following-sibling of the node position given as first argument. |
![]() |
in-collection
(
$n-pos as xs:anyURI
) as xs:boolean external Determines whether a node position belongs to a collection. |
![]() |
in-same-collection-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether two node positions belong to the same collection. |
![]() |
in-same-tree-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether two node positions belong to the same tree. |
![]() |
in-subtree-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument belongs to the subtree rooted at the node position given as first argument. |
![]() |
is-attribute
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to an attribute node. |
![]() |
is-comment
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to a comment node. |
![]() |
is-document
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to a document node. |
![]() |
is-element
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to an element node. |
![]() |
is-processing-instruction
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to an processing-instruction node. |
![]() |
is-text
(
$n-pos1 as xs:anyURI
) as xs:boolean external Determines whether a node position corresponds to a text node. |
![]() |
level
(
$n-pos as xs:anyURI
) as xs:integer external Computes the level of a node position in its tree. |
![]() |
node-position
(
$arg as node()
) as xs:anyURI external Return a URI item containing positional information for a given node. |
![]() |
parent-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is the parent of the node position given as first argument. |
![]() |
preceding-in-document-order-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is preceding in document order the node position given as first argument. |
![]() |
preceding-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is preceding the node position given as first argument. |
![]() |
preceding-sibling-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether the node position given as second argument is a preceding-sibling of the node position given as first argument. |
![]() |
sibling-of
(
$n-pos1 as xs:anyURI,
$n-pos2 as xs:anyURI
) as xs:boolean external Determines whether two node positions are siblings. |
declare function np:ancestor-of ( $pos1 as xs:anyURI, $pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is an ancestor of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is an ancestor of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential descendant node position
- $n-pos2 the potential ancestor node position
- true if the node position $n-pos2 is an ancestor of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:attribute-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is an attribute of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is an attribute of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential parent node position
- $n-pos2 the potential attribute node position
- true if the node position $n-pos2 is an attribute of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:child-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is a child of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is a child of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential parent node position
- $n-pos2 the potential child node position
- true if the node position $n-pos2 is a child of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:descendant-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is a descendant of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is a descendant of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential ancestor node position
- $n-pos2 the potential descendant node position
- true if the node position $n-pos2 is a descendant of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:following-in-document-order-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is following in document order the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is following in document order the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential preceding node position
- $n-pos2 the potential following node position
- true if the node position $n-pos2 is following in document order the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:following-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is following the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is following the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential preceding node position
- $n-pos2 the potential following node position
- true if node positions $n-pos1 and $n-pos2 belong to the same XML tree and $n-pos2 is following the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:following-sibling-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is a following-sibling of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is a following-sibling of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential preceding-sibling node position
- $n-pos2 the potential following-sibling node position
- true if the node position $n-pos2 is a following-sibling of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:in-collection (
$n-pos as xs:anyURI
) as xs:boolean external
Determines whether a node position belongs to a collection.
- $n-pos the node position
- true if the node position $n-pos belongs to a collection; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:in-same-collection-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether two node positions belong to the same collection. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the two nodes belong to the same collection. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 a node position
- $n-pos2 a node position
- true if the two nodes whose node positions are $n-pos1 and $n-pos2 belong to the same collection.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:in-same-tree-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether two node positions belong to the same tree. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the two nodes belong to the same tree. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 a node position
- $n-pos2 a node position
- true if the two nodes whose node positions are $n-pos1 and $n-pos2 belong to the same tree.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:in-subtree-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument belongs to the subtree rooted at the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node belongs to the subtree rooted at the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes. This function differs from np:descendant-of in the way it treats attribute nodes. np:descendant-of follows the XQuery/XPath specification for the descendant axis, and as a result, it does not consider attributes as descendants of any nodes; it will always return false if $n-pos2 was obtained from an attribute node.In contrast, np:in-subtree-of will return true if $n-pos2 was obtained from an attribute node that appeared in the subtree of the node that $n-pos1 was obtained from.
- $n-pos1 the potential subtree root node position
- $n-pos2 the potential node in the subtree node position
- true if the node position $n-pos2 belongs to the subtree rooted at the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-attribute (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to an attribute node.
- $n-pos the potential attribute node position
- true if the node position $n-pos corresponds to an attribute; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-comment (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to a comment node.
- $n-pos the potential comment node position
- true if the node position $n-pos corresponds to an comment; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-document (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to a document node.
- $n-pos the potential document node position
- true if the node position $n-pos corresponds to a document; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-element (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to an element node.
- $n-pos the potential element node position
- true if the node position $n-pos corresponds to an element; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-processing-instruction (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to an processing-instruction node.
- $n-pos the potential processing-instruction node position
- true if the node position $n-pos corresponds to a processing instruction; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:is-text (
$n-pos1 as xs:anyURI
) as xs:boolean external
Determines whether a node position corresponds to a text node.
- $n-pos the potential text node position
- true if the node position $n-pos corresponds to a text; false otherwise.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:level (
$n-pos as xs:anyURI
) as xs:integer external
Computes the level of a node position in its tree. Note: The root node of a tree is at level one. The result of the function applies to the corresponding node as well, that is, within the snapshot in which the position was computed, the node level is the returned one. The result of the function does not imply anything about the node level in other snapshots.
- $n-pos the node position of the node whose level should be determined.
- the level in the tree of the node position $n-pos as xs:integer.
- zerr:ZAPI0028 if the given URI is not a valid node position computed by the np:node-position function.
declare function np:node-position (
$arg as node()
) as xs:anyURI external
Return a URI item containing positional information for a given node.
Within a snapshot, each has a different positional URI. However, different nodes in different snapshots might have the same URI.
- $arg the node for which the positional information URI should be computed
- the opaque positional information URI of the node.
declare function np:parent-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is the parent of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is the parent of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential child node position
- $n-pos2 the potential parent node position
- true if the node position $n-pos2 is the parent of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:preceding-in-document-order-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is preceding in document order the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is preceding in document order the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential following node position
- $n-pos2 the potential preceding node position
- true if the node position $n-pos2 is preceding in document order the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:preceding-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is preceding the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is preceding the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential following node position
- $n-pos2 the potential preceding node position
- true if node positions $n-pos1 and $n-pos2 belong to the same XML tree and $n-pos2 is preceding the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:preceding-sibling-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether the node position given as second argument is a preceding-sibling of the node position given as first argument. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is a preceding-sibling of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 the potential following-sibling node position
- $n-pos2 the potential preceding-sibling node position
- true if the node position $n-pos2 is a preceding-sibling of the node position $n-pos1; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.
declare function np:sibling-of ( $n-pos1 as xs:anyURI, $n-pos2 as xs:anyURI ) as xs:boolean external
Determines whether two node positions are siblings. If the two positions were obtained within the same snapshot S, then the result of the function applies to the corresponding nodes as well, that is, within snapshot S, the second node is a sibling of the first. Otherwise, the result of the function does not imply anything about the positional relationship of the two nodes.
- $n-pos1 a node position
- $n-pos2 a node position
- true if the two node positions $n-pos1 and $n-pos2 are siblings; false otherwise.
- zerr:ZAPI0028 if one of the given URI is not a valid node position computed by the np:node-position function.