Re: [xsl] Kosher XSLT 3.0 numbering solution?

Subject: Re: [xsl] Kosher XSLT 3.0 numbering solution?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 1 Sep 2016 15:55:32 -0000
> Actually it's quite tricky if you want to have a function/template that both
returns a modified version of the source tree with new numbers inserted, and
also returns the latest number used. Returning two results using maps is
possible, but not easy.
>
> Computing the numbers is ideally done by a fold operation that processes all
the nodes in the tree in document order, and XSLT 3.0 accumulators are
essentially syntactic sugar for such a fold operation.
>

Having said that it can also be done using memo functions: write a function
that computes the number for a significant node by getting the number for the
first preceding significant node and adding 1 (or whatever), and make this a
memo function. XSLT 3.0 supports memo functions using

<xsl:function .... cache="yes">

Michael Kay
Saxonica

Current Thread