У меня есть существующий скрипт xslt, который создает PDF с FOP, проблема в том, что ему не хватает памяти при применении apply-template для определенного типа узла, когда число узлов превышает определенный предел.Чтобы исправить проблему с памятью, мне нужно разбить результат, полученный из этого вызова шаблона, на несколько <fo:page-sequence>
, но я не хочу, чтобы последовательность страниц для каждого узла, больше как для каждого 100 узла.
Моей первой мыслью было использовать position () и просто добавлять новые теги последовательностей каждые 100, но поскольку 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>
Требуемый XML-результат FOP будет чем-то, что создаст несколько последовательностей страниц с (например) 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>