XPDY0002

An expression relies on some part of the dynamic context that is undefined. Most often, this is a path expression or function call that relies on the current context item but the context item is undefined. This may be because you used a relative path, when no outer expression set the context for the path. For example, if your entire query is:

//catalog/product

and the context is not set outside the query by the processor, this error will be raised because the processor will not know what the path is relative to. Instead, start your path with a function call or variable that sets the context, as in:

 doc("catalog.xml")//catalog/product

This error may occur when you use paths in a FLWOR expression and forget to start each path with a step that sets the context. For example:

for $prod in doc("catalog.xml")//product
where number > 500
return number

In this case, the processor does not automatically know to evaluate number relative to the $prod variable; it has to be explicitly specified, as in:

for $prod in doc("catalog.xml")//product
where $prod/number > 500
return $prod/number

This error might also occur if you forget to put the dollar sign in front of the variable name, causing the processor to interpret it as a path. For example:

for $prod in doc("catalog.xml")//product
return prod

With the dollar sign omitted from the beginning of prod in the return clause, the processor will interpret it as a relative path to a child element named prod.

A number of built-in function calls will raise this error as well if they require the current context item and none is defined. There are a number of built-in functions that operate on the current context item by default if no appropriate argument is passed. These functions are base-uri, id, idref, lang, last, local-name, name, namespace-uri, normalize-space, number, position, root, string, and string-length. For example, the function call name( ) (with no arguments) uses the current context item.

Finally, this error can be raised in another situation: if a global variable is defined as external, but it was not bound to a value outside the scope of the query, any references to that variable will raise this error.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.105.2