Впал я что то в ступор. Необходимо сформировать таблицу через usel запрос.
Вызываем в необходимом месте сам запрос
<table>
<xsl:apply-templates select="document('usel://want-table')//udata" mode="table" />
</table>
Далее стоит вопрос динамического распределения таблицы
<xsl:template match="udata" mode="table">
<xsl:apply-templates select="page" mode="table" />
</xsl:template>
<xsl:template match="page" mode="table">
<td>Вывод необходимой информации</td>
<xsl:if test="not ( position() mod 3 = 1)">
<td class="razdelitel"></td>
</xsl:if>
</xsl:template>
А вопрос в следующем - как вставить необходимые <tr></tr> самих строк, для корректной работы скрипта?
как вариант, вот еще один вариант
<xsl:apply-templates select="document('usel://want-table')//udata" mode="table" /> <!--вызов usel-->
<xsl:template match="udata" mode="table" /> <!--для сутиации когда usel ничего не вернул-->
<xsl:template match="udata[total]" mode="table">
<table>
<tr>
<xsl:apply-templates select="page" mode="table" />
</tr>
</table>
</xsl:template>
<xsl:template match="page" mode="table"> <!-- основной шаблон для td-->
<td>Вывод необходимой информации</td>
<xsl:apply-templates select="." mode="table_in" />
</xsl:template>
<xsl:template match="page" mode="table_in"> <!-- основной шаблон для td-->
<td class="razdelitel"></td>
</xsl:template>
<xsl:template match="page[(position() mod 3 = 0) and not(position() = last())]" mode="table_in"> <!-- шаблон для каждой 3 td кроме последней-->
<xsl:text disable-output-escaping="yes"><![CDATA[</tr><tr>]]></xsl:text>
</xsl:template>
возможно, проще было бы делать через блоки <div>, тогда у нас получилось бы
<xsl:apply-templates select="document('usel://want-table')//udata" mode="table" /> <!--вызов usel-->
<xsl:template match="udata" mode="table" /> <!--для сутиации когда usel ничего не вернул-->
<xsl:template match="udata[total]" mode="table">
<div class="conteiner">
<xsl:apply-templates select="page" mode="table" />
</div>
</xsl:template>
<xsl:template match="page" mode="table"> <!-- основной шаблон для td-->
<div class="razdelitel">Вывод необходимой информации</div>
</xsl:template>
<xsl:template match="page[(position() mod 3 = 0) and not(position() = last())]" mode="table"> <!-- шаблон для каждой 3 td кроме последней-->
<div class="razdelitel third">Вывод необходимой информации</div>
<!-- а если целью является перенос строки после 3 элементов, то можно вместо стиля third сразу прописать clear:both -->
<!-- <div class="razdelitel">Вывод необходимой информации</div>
<div style="clear:both;"> -->
</xsl:template>
конечно у класса .razdelitel должны быть стили вроде такого:
.razdelitel{float:left; width:200px;}