XPST0008
An undefined name was encountered. This could be a variable name, an element name, an attribute name, or a type name. It may be that you misspelled the name or referred to it in the wrong namespace.
If it is a variable name, that variable may be referenced outside the scope for which it is bound. One reason for this error is misplaced or missing parentheses. A common case is when you attempt to return two items using a FLWOR expression, as in:
for $prod in doc("catalog.xml")//product
return $prod/number, $prod/nameIn this case, the second reference to $prod on the last line is out of scope, because only a single expression is included in the return clause. The rest of the line (, $prod/name) is considered to be a separate expression that appears after the FLWOR expression. This example can be remedied by placing parentheses around the return clause, as in:
for $prod in doc("catalog.xml")//product
return ($prod/number, $prod/name)If an element, attribute, or type name raises the error, it appears in a sequence type but is not part of the in-scope schema definitions. For example, the sequence type:
schema-element(prod, ProductType)
will raise an error if the in-scope schema definitions do not include a declaration for a prod element and a type definition for ProductType.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access