>> Order of evaluation is undefined in XSLT, and there is no guarantee
>> that $start is evaluated before the apply-templates call is evaluated.
>
> Yikes!
>
> So how do I write the XSLT program so that it is guaranteed that $start will
be evaluated before the apply-templates call is evaluated?
>
There is no guaranteed-portable way of doing this. Doing an xsl:message that
references $start before the apply-templates call would increase your chances;
but there's still no guarantee that $start won't be evaluated much earlier,
e.g. at compile time.
A safer way to get timing information with Saxon is to use a TraceListener.
This is what the Saxon profiler (command line option -TP) does.
Michael Kay
Saxonica
|