XSLT e XSL-FO: Criando uma tabela com várias linhas?

Sou bastante novo no XSLT e estou com um problema em que tenho um elemento com uma quantidade desconhecida de filhos, e preciso exibi-los em uma tabela para que haja de 5 a 6 colunas disponíveis para exibir as informações.

Se eu receber um arquivo XML parecido com este:

<books>
    <book>
        <author>Ralls, Kim</author>
        <title>Midnight Rain</title>
    </book>
    <book>
        <author>Corets, Eva</author>
        <title>Maeve Ascendant</title>
    </book>
    <book>
        <author>Corets, Eva</author>
        <title>Oberon's Legacy</title>
    </book>
    <book>
        <author>Randall, Cynthia</author>
        <title>Lover Birds</title>
    </book>
    <book>
        <author>Thurman, Paula</author>
        <title>Splish Splash</title>
    </book>
    <book>
        <author>Knorr, Stefan</author>
        <title>Creepy Crawlies</title>
    </book>
    <book>
        <author>Kress, Peter</author>
        <title>Paradox Lost</title>
    </book>
    <book>
        <author>Crichton, Michael</author>
        <title>Jurassic Park</title>
    </book>
    <book>
        <author>Orwell, George</author>
        <title>1984</title>
    </book>
    <book>
        <author>Martin, George</author>
        <title>A Song of Ice And Fire</title>
    </book>
</books>

Gostaria de exibir esses 10 livros em uma tabela composta por duas linhas e cinco colunas.

Cheguei até aqui:

<xsl:template match="books" mode="table">
    <fo:table margin-left="auto" margin-right="auto">
        <fo:table-body>
            <fo:table-row table-layout="fixed">
                <xsl:for-each select="skill">
                    <fo:table-cell border="1">
                        <fo:block font-weight="bold">
                            <xsl:value-of select="name"/>
                        </fo:block>
                    </fo:table-cell>    
                </xsl:for-each>
            </fo:table-row>
        </fo:table-body>
    </fo:table>
</xsl:template>

Mas tudo o que isso fará é colocar todas as células na mesma linha. Estou procurando uma maneira de verificar se o loop foi executado uma certa quantidade de vezes (5 ou 6) e inserindo uma nova linha quando isso acontecer, mas não sei se é algo que posso fazer no XSL.

Alguém pode me apontar na direção certa?

questionAnswers(2)

yourAnswerToTheQuestion