[Bug 27051] [XSLT30] Resolution to bug 25185 introduced a bug in streaming rules of xsl:apply-templates

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

--- Comment #3 from Michael Kay <mike@saxonica.com> ---
I have managed to convince myself that we can change the table in 19.8.7.7
(Streamability of axis steps) to say:

Climbing | attribute, namespace | Striding | Motionless
Striding | attribute, namespace | Striding | Motionless
Crawling | attribute, namespace | Striding | Motionless

In addition, I think we can incorporate the changes proposed in 

https://lists.w3.org/Archives/Member/w3c-xsl-wg/2014Oct/0033.html

I propose to do this by adding a new column to the table "selects elements",
defined as meaning that the static type of the axis expression contains
U{element}. The two rows in the table that currently produce a crawling result
will then be subdivided so that if selects elements is "no", the result posture
is striding instead of crawling.

I don't think we need to add an extra row for

Crawling | child, descendant, d-or-self | elements="no" | Striding | Consuming

Because this is handled under the rules for scanning expressions. But we should
change rule 2(b) for scanning expressions (in 19.8.7.6) from

If the expression is a scanning expression then its posture is crawling.

to

If the expression is a scanning expression then 

* if the static type of the expression contains U{element} then its posture is
crawling.

* otherwise, its posture is striding.

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

Received on Saturday, 25 October 2014 11:44:23 UTC