
I have found working with DFDL expressions basically impossible without the fn:trace function to help debug them. I am not sure how I would write a tutorial about expressions without using fn:trace in it to illustrate what is going on in the expressions. In the interests of keeping the tutorials portable I suggest we add the fn:trace function. fn:trace($value as item()*, $label as xs:string) as item()* Summary: Provides an execution trace intended to be used in debugging queries. The notation item()* means any node sequence including an empty node sequence. The input $value is returned, unchanged, as the result of the function. In addition, the inputs $value, converted to an xs:string, and $label may be directed to a trace data set. The destination, format, and ordering of the output of this trace data set is implementation specific. Related Issue: I don't see any language in the spec where we flat out say that a node sequence in the expression language is a sequence of Infoset Element Information Items. We should add this near the begining of section 23. -- Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com