Thanks for your response Stefan. I didn't explain myself clearly. I can handle paging using custom scripts. The predefined scripts gave me a great jumping-off point for building my own. I have a pretty good understanding of XSL and Muenchiang grouping.
I'll try to expand on the example you linked to in the documentation. Imagine that instead of having seven cities, we have 25, and we wanted to display 10 cities on each page.
I could use something like this:
<xsl:apply-templates select="udt:Data[position()>10 and position()<21]">
<xsl:sort select="udt:Country"/>
<xsl:sort select="udt:City"/>
<xsl:apply-templates/>
Then I could have a matching template that would do grouping. The problem is, if the first France node in the data-by-country key has position 8 it will be excluded from my select. That would cause any other France nodes that have position() between 10-21 not to show up in the page.
If I do my grouping befire I do the paging, the position() function will tell me the city's position within the country. I need to know it's position within the whole list to make paging work.
If I had a node-set function, I think I could come up with a multi-pass solution. Is there any other way to reach my goal?