xsl-list
[Top] [All Lists]

Re: [xsl] Kosher XSLT 3.0 numbering solution?

2016-09-01 10:55:36

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
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>