Xslt - itera nós em partes

Eu tenho um script xslt existente que cria um PDF com FOP, o problema é que a falta de memória ao aplicar o modelo em um tipo de nó específico quando a contagem de nós excede um determinado limite. Para corrigir o problema de memória, preciso dividir o resultado derivado dessa chamada de modelo em vários<fo:page-sequence>, mas não quero uma sequência de páginas para cada nó, mais como para cada 100 nós.

Meu primeiro pensamento foi usar position () e simplesmente adicionar novas tags de sequência a cada 100, mas como o xslt precisa ser bem formado, não posso ter tags abertas como essa.

Então, minha pergunta é qual seria a melhor alternativa para iterar todos os nós de um tipo específico em pedaços de 100?

Exemplo de como a fonte XML se parece

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

Atualmente processado com

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

O resultado XML desejado da FOP seria algo que criou várias seqüências de páginas com (por exemplo) 100 dos nós de var processados em cada um, em vez de ter o resultado de todos os 1000 em uma sequência de páginas.

Resultado atual

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

Resultado desejado

<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>   

questionAnswers(1)

yourAnswerToTheQuestion