xsl:iterate to define processing to be carried out when the input sequence is exhausted.
Available in XSLT 3.0. From Saxon 9.8, available in all editions. Implemented in Saxon-PE and Saxon-EE since Saxon 9.6.
- Content: sequence-constructor
- Permitted parent elements:
- The effect of the instruction may be defined either by an expression within the optional
selectattribute, or by the enclosed sequence constructor.
Notes on the Saxon implementation⚓︎
The rule that
xsl:on-completion executes with no context item was first implemented in Saxon 9.8.
In earlier working drafts of XSLT 3.0, the
xsl:on-completion element came last in the body of the
xsl:iterate instruction. This caused problems with the scope of local variables, so in the final Recommendation,
xsl:on-completion comes first. The new rule was implemented in Saxon 9.7. The spec has also changed to clarify that
xsl:on-completion is evaluated if the input sequence to
xsl:iterate is empty.
During execution of
xsl:on-completion there is no context item, position or size; the instruction has access to the iteration parameters with the values given on the last iteration (or the initial values of the
xsl:param elements if the input sequence was empty). For further details see