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/name
In 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
.
18.221.89.18