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>