4 Tabular

<..tabular script..>
 <script element="table::tabular" >
    <set name="tabular" >
       <.open xslt script.>
       <.tabular templates.>
       <.close xslt script.>
    </set>
    <xslt name="." xml="." xsl="tabular" />
 </script>
-_-_-

<..tabular templates..>
 <xsl:template match=" table[ @class=’tabular’ ]
                     / tr[ (normalize-space(.)=’’) ] " >
 
 <xsl:message terminate="no">
 OK 1
 </xsl:message>
 
    <xsl:if test=" normalize-space(following-sibling::*) != ’’ ">
       <xsl:copy>
          <xsl:apply-templates select="*|@*|text()|comment()" />
 <xsl:message terminate="no">
 OK 2
 </xsl:message>
       </xsl:copy>
    </xsl:if>
 </xsl:template>
-_-_-

<..tabular templates..>+
 <xsl:template match=" tr[ (normalize-space(.)=’’)
                           and
                           (parent::table[ @class=’tabular’ ])
                         ] " >
 
 <xsl:message terminate="no">
 OK 1
 </xsl:message>
 
    <xsl:if test=" normalize-space(following-sibling::*) != ’’ ">
       <xsl:copy>
          <xsl:apply-templates select="*|@*|text()|comment()" />
 <xsl:message terminate="no">
 OK 2
 </xsl:message>
       </xsl:copy>
    </xsl:if>
 </xsl:template>
-_-_-