[Bug 29889] [xslt30] Add clarifications on stylesheet invocation options

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29889

--- Comment #4 from Michael Kay <mike@saxonica.com> ---
I propose:

#1 and #4. In 19.10, change the sentence

If a construct is guaranteed-streamable then it must be processed using
streaming.

to

If a construct is guaranteed-streamable and the input is provided in streamable
form, then the input must be processed using streaming.

with a Note: the requirement to process the input using streaming does not
apply if the processor is able to determine that this would convey no benefit:
for example, if the input is supplied as a tree in memory. However, this does
not remove the requirement to verify that the relevant stylesheet constructs
are guaranteed streamable.

#2. In 2.3.5, Function Call Invocation, add:

If the initial function is declared streamable, a streaming processor SHOULD
allow the value of the first argument to be supplied in streamable form, and if
it is supplied in this form, then it MUST be processed using streaming.

#3. In 2.3.3 Apply-templates invocation, replace the existing note:

If the initial mode is a streamable mode, then streaming will only be possible
if nodes in the input sequence are supplied in a form that allows such
processing: for example, as a reference to a stream of parsing events.

by

If the initial mode is declared streamable, a streaming processor SHOULD allow
some or all of the items in the initial match selection to be nodes supplied in
streamable form, and any nodes that are supplied in this form MUST then be
processed using streaming.

#7. I'm not convinced anything needs saying here. Remember that everything is
allowed unless we say it isn't - we don't have to list all the things that
processors might choose to do.

#8. I find it difficult to see what we should say beyond the existing paragraph
in 19.10:

For a non-streaming processor, the processor must evaluate the construct
delivering the same results as if execution used streaming, but with no
constraints on the evaluation strategy. (Processing may, of course, fail due to
insufficient memory being available, or for other reasons.) A non-streaming
processor is not required to assess whether constructs are
guaranteed-streamable, or to apply restrictions such as the rules for where
calls on the functions accumulator-before and accumulator-after may appear.
However, a non-streaming processor must enforce the constraint implied by a
use-accumulators attribute restricting which accumulators can be used with a
particular document.

#9. (the table) I'll take another look at this. I'm a bit concerned at the risk
that the table might say (or be perceived as saying) something different from
the current prose.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 7 October 2016 21:15:18 UTC