Xslt: iterar nodos en fragmentos

Tengo un script xslt existente que crea un PDF con FOP, el problema es que se está quedando sin memoria cuando se aplica la plantilla en un tipo de nodo específico cuando el recuento de nodos supera un cierto límite. Para solucionar el problema de memoria, necesito dividir el resultado derivado de esa llamada de plantilla en varios<fo:page-sequence>, pero no quiero una secuencia de páginas para cada nodo, más bien para cada 100 nodos.

Lo primero que pensé fue usar position () y simplemente agregar nuevas etiquetas de secuencia cada 100, pero como xslt necesita estar bien formado, no puedo tener etiquetas abiertas como esa.

Entonces, mi pregunta es ¿cuál sería la mejor alternativa para iterar todos los nodos de un tipo específico en trozos de 100?

Ejemplo de cómo se ve la fuente XML

 <var ID="V1"><subnodes/></var>  
 ..
 <var ID="V1000"><subnodes/></var>

Actualmente procesado con

<fo:page-sequence>
  <xsl:apply-templates select="ns:var"/>
</fo:page-sequence>

El resultado deseado de FOP XML sería algo que creara varias secuencias de páginas con (por ejemplo) 100 de nodos var procesados en cada uno en lugar de tener el resultado de los 1000 en una secuencia de páginas única.

Resultado actual

<fo:page-sequence>
  <formatted V1>
  ..
  <formatted V1000>
</fo:page-sequence>

Resultado deseado

<fo:page-sequence>
   <formatted V1>
    ..
   <formatted V100>
</fo:page-sequence>

<fo:page-sequence>
  <formatted V101>
   ..
  <formatted V200>
 </fo:page-sequence>

..

<fo:page-sequence>
  <formatted V901>
   ..
  <formatted V1000>
</fo:page-sequence>   

Respuestas a la pregunta(1)

Su respuesta a la pregunta