Tracing of FLWOR expressions
The Saxon XSLT and XQuery processor, developed by Saxonica
Brought to you by:
mhkay
The new 9.4 implementation of FLWOR expressions does not allow fine-grained tracing/monitoring at the clause level, which is problem for tools that implement a debugger. A patch (rather extensive) to fix this deficiency is being placed in Subversion. The patch introduces a new kind of FLWOR clause, the TraceClause, and a new method on the CodeInjector allowing TraceClauses to be injectied into a FLWOR pipeline; the TraceClause notifies the TraceListener of each tuple at run time, whether the pipeline is run in pull or push mode.
A further patch has been added in Subversion revision 667 which makes namespace information available to a TraceListener when invoked at the level of a clause in a FLWOR expression. This is needed by one of the debuggers that operates with Saxon.
Fixed in 9.4.0.2
The second patch, to provide namespace information to the trace listener, is incomplete in the version issued with 9.4.0.2. A new patch is therefore being raised which makes further changes to the TraceClause and ClauseInfo.