Streaming extensions and restrictions

This section describes areas where Saxon differs from the XSLT 3.0 specifications in the constructs that are streamable.

Saxon assesses streamability after performing optimization, and this may have the accidental effect of making some constructs streamable that were not streamable as written. The most common cause of this effect is variable and function inlining. The W3C streamability rules do not allow streamed nodes to be bound to variables, or to be passed to or returned from functions, but where the variable or function is inlined, the resulting code may meet all the streamability rules. This effect can occur even if Saxon streaming extensions are not explicitly enabled.

There are no known restrictions in the current implementation of streaming, relative to the W3C specification. However, there may be limitations due to incomplete coverage of the test suite. These will be documented as they become known.