[
Lists Home |
Date Index |
Thread Index
]
>Is anyone aware of publically available implementations of XPath,
>XQuery, and XSLT that operate in a streaming manner i.e. in a single
>pass over the input.
In general, this can't be done. An XPath expression, starting at any
point in the document, can navigate to any other point. So for
example there's nothing to stop the XSLT template that matches the
last chapter of a book from referring to the title of the first
chapter. Templates can do random access.
[On the other hand, XSLT's *output* is sequential. An XSLT
implementation could in principle generate arbitrarily huge
documents without needing much memory.]
It's quite a severe restriction for a transformation to be completely
streamable. It would imply that nothing that was copied from the
input to the output was ever in a different order in the output. On
the other hand it's quite common for transformations to be *mostly*
sequential, with templates performing random access only within rather
local parts of the input. But it's rather difficult to determine that
automatically.
-- Richard
|