Invocation variants for streaming and non-streaming in XSLT 3.0

On last week's telcon there was a lot of discussion, primarily on whether the spec should or should not mandate when streaming is initiated. I'm writing this as an exercise on the current status of the spec on how a processor knows when it has to stream, when it has to process using streaming or when not, and when it must not stream.

I tried to follow the current consensus of the spec, along the way finding (possibly) a few gaps. I added the xsl:stream/streamable=yes|no option for completeness, although that change is still under review. A few questions mentioned arose from XML London 2016, and a few others arose while writing up the rules.

I tried to be complete, but am not sure I am.

It primarily deals with interpreting what is written in section 19.10 (Streaming guarantees) and in the sections on invoking a stylesheet (2.3.3, 2.3.4, 2.3.5). Note that in the 2.3.x sections we say very little about what happens if the input is a streamed node, and 2.3.5 (function invocation) says nothing about streamable function invocation.

Some rules as written in the document are what I think is a strict interpretation (or narrow interpretation) of the spec. Some of these rules (in particular, invoking a streamable construct with a non-streamed node) perhaps need some attention. I raised bug 29690 to address some of these concerns.

Cheers,
Abel

PS: the htm and docx versions have the mouseovers and popups working on the main table, the pdf version does not, not sure why. All documents contain the same info. 

Received on Wednesday, 8 June 2016 22:54:34 UTC