Proposal for bug 29492 (streamability of attribute sets)

ACTION 2016-04-14-001 on MHK (bug 29492) to review Abel's suggestions and revise as necessary.

A. In 10.2.3, list item 2, delete the phrase "considered as a sequence constructor".

B. Change 19.8.6 as follows:

The posture of an attribute set is always grounded.

The sweep of an attribute set is motionless if the following conditions apply to every xsl:attribute-set declaration within the attribute set:

1. Every xsl:attribute instruction child of the xsl:attribute-set declaration, when assessed with a context posture of striding, is motionless.

2. Every attribute set referenced by a use-attribute-sets attribute on the xsl:attribute-set declaration is guaranteed-streamable.

If the sweep is not motionless then it is deemed to be free-ranging.

Note: for simpllicity, the analysis excludes the possibility of attribute sets being consuming. In practice, it is unusual for the evaluation of an attribute set to be dependent on the focus. While it would be theoretically feasible for evaluation of an attribute set to consume the context item, a stylesheet that has such a requirement can easily be rewritten to use streamable template rules.

C. In xsl:copy (19.8.4.12), xsl:element (19.8.4.15), and literal result elements (19.8.4.1), where [xsl:]-use-attribute-sets is referenced as an operand, make the usage inspection, and add (Note: in practice, for the instruction to be guaranteed streamable, all referenced attribute sets must be declared streamable, in which case they will necessarily be grounded and motionless).

Michael Kay
Saxonica

Received on Monday, 18 April 2016 16:04:54 UTC