RE: How to perform output in two destinations

> I recognize there are use cases where this can cause difficulty. Your
> particular use case, of producing a log, is covered I think by
> <xsl:message>. Whether xsl:message meets the requirement depends rather on
> the implementation. I know that some implementors provide very little
> control over the destination of messages, and some discard the message
> entirely, but this is a matter for implementors, not for the specification
> itself.

In my case log tree after the further processing is appending to a main
result.

> Any attempt to offer interleaved writing - including the xsl:message
> capability - suffers from the fact that the sequence of nodes in the
result
> tree will depend on the order of execution of instructions in the
> stylesheet. For example, if xsl:message is included inside xsl:variable,
> then the number of messages output and their relative order depends on the
> order in which variables are evaluated, and on whether their values are
held
> in memory or re-evaluated on demand.

I suppose a small set of rules could be tailored in order to guaranty
consistent order of output operations. For example something like this:
  a) all xsl:output-tree (hypothetical element) elements are executing in
the order of appearance;
  b) if variable contains such element then after variable declaration it
should be evaluated one time with option to execute xsl:output-tree elements
in content of variable declaration, in other cases (if any) xsl:output-tree
in the content of variable is not evaluated.

In general these rules do not impose any restrictions on the order of
content execution if it does not contain any xsl:output-tree element and
just force variable evaluation when it contains xsl:output-tree element.
--
Nesterovsky Vladimir
vladimir@nesterovsky-bros.com

Received on Tuesday, 22 October 2002 11:16:07 UTC