Цей тип умови можна застосовувати ЛИШЕ до таблиці всередині документа. Умова повинна повертати "true" або "false" для кожного рядка таблиці у наступному форматі:
<result>
<rows>
<row index='0'>true<row>
<row index='1'>false<row>
<row index='2'>false<row>
<row index='3'>true<row>
</rows>
</result>
Атрибут index повинен співпадати з атрибутом index у ноді "fieldset". Приклад XSLT з умовою:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<result>
<rows>
<xsl:for-each select="envelope/documents/document[@id='document_id']/fieldgroup[@name='table_name']/fieldset">
<row index="{@index}">
<xsl:choose>
<xsl:when test="field[@name='field_name']='Yes'">
true
</xsl:when>
<xsl:otherwise>
false
</xsl:otherwise>
</xsl:choose>
</row>
</xsl:for-each>
</rows>
</result>
</xsl:template>
</xsl:stylesheet>
Для кожного рядка, де result = "true", буде створено новий конверт. Для того, щоб надати "xslt" карті правильний індекс рядка, цю карту потрібно відповідним чином модифікувати. Необхідно додати наступний параметр:
<xsl:param name="row_index"/>
А використовувати його можна наступним чином:
<field name="field_name">
<xsl:value-of select="envelope/documents/document[@id='document_id']/fieldgroup[@name='table_name']/
fieldset[@index=$row_index]/field[@name='field_name']/@value"/>
</field>