Xslt - итерация узлов в чанках
У меня есть существующий скрипт xslt, который создает PDF с FOP, проблема в том, что ему не хватает памяти при применении apply-template для определенного типа узла, когда число узлов превышает определенный предел. Чтобы исправить проблему с памятью, мне нужно разбить результат, полученный из этого вызова шаблона, на несколько<fo:page-sequence>
, но я не хочу последовательность страниц для каждого узла, больше как для каждого 100 узла.
Моей первой мыслью было использовать position () и просто добавлять новые теги последовательности каждые сотые, но поскольку xslt должен быть правильно сформирован, я не могу иметь такие открытые теги.
Итак, мой вопрос: что будет лучшей альтернативой для итерации всех узлов определенного типа в кусках по 100?
Пример того, как выглядит источник XML
<var ID="V1"><subnodes/></var>
..
<var ID="V1000"><subnodes/></var>
В настоящее время обрабатывается с
<fo:page-sequence>
<xsl:apply-templates select="ns:var"/>
</fo:page-sequence>
Требуемый результат FOP XML будет чем-то, что создаст несколько последовательностей страниц с (например) 100 обработанными узлами var в каждом вместо того, чтобы иметь результат всех 1000 в одной последовательности страниц.
Текущий результат
<fo:page-sequence>
<formatted V1>
..
<formatted V1000>
</fo:page-sequence>
Требуемый результат
<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>