fn:trace
Provides an execution trace intended to be used in debugging queries.
Signatures
fn:trace($value as item()*) as item()*fn:trace(
$value as item()*,
$label as xs:string
) as item()*Properties
This function is deterministic, context-independent, and focus-independent.
Rules
The function returns the value of $value, unchanged.
In addition, the values of $value, converted to an xs:string,
and $label (if supplied)
may be directed to a trace data set. The destination of the trace
output is implementation-defined. The format of the trace output is
implementation-dependent. The ordering of output from calls of the
fn:trace function is implementation-dependent.
Notes
Sometimes there is a need to output trace information unrelated to a specific value.
In such cases it can be useful to set $value to an empty string or an empty
sequence, and to compute the value of the $label argument:
fn:trace((), "Processing item " || $i).
Examples
Consider a situation in which a user wants to investigate the actual value passed
to
a function. Assume that in a particular execution, $v is an
xs:decimal with value 124.84. Writing fn:trace($v,
'the value of $v is:') will put the strings "124.84" and
"the value of $v is:" in the trace data set in implementation
dependent order.