OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xml-dev] RE: Namespaces Best Practice

PaulT wrote:

> 1. no-side-effects allows future parallelizm.
> ( hence future XSLT engine expected to
> be a combination of threads, running in parallel ).
> "By design".
> 2. xsl:attribute should reside in the appropriate
> place to allow streaming output. "By design".
> Maybe you can. Or maybe somebody else can. Sofar
> nobody (?) have implemented even (simple, standalone)
> part 2.

Both SAXON and XT stream the output, in the sense that
they don't construct the entire result tree in memory
before spitting it out.  I suspect other engines do
as well.

The "no side-effects" rule doesn't help any with parallelism --
indeed, it's hard to conceive of an effective way to parallelize
XSLT transforms -- but it does help a *lot* when it comes
to lazy evaluation.  Lazy evaluation is critical for
getting good performance out of XSLT; if side effects
were allowed this would be much harder to implement
in a coherent way. [*]

([*] Mike Kay did manage to add side-effects to SAXON  -- <saxon:assign> --
in a way that was  both efficiently implementable and semantically sound.
However, when the result-tree fragment restrictions are eliminated you
have to either sacrifice laziness (and hence some efficiency) or allow
ambiguous semantics.)

--Joe English