<xsl:template name="processMyBooks">
<xsl:param name="generateIndex"/>
<xsl:param name="groupByTechnology"/>
<xsl:if test="$generateIndex">
<xsl:copy-of select="func:generateIndex(book)"/>
</xsl:if>
<xsl:choose>
<xsl:when test="$groupByTechnology">
<!-- Generates a table for each group of books that have the same technology.-->
<xsl:for-each-group select="book" group-by="@technology">
<xsl:call-template name="generateCategoryTitle">
<xsl:with-param name="category" select="@technology"/>
</xsl:call-template>
<xsl:variable name="books" select="current-group()"/>
<!-- A table is create for each group. -->
<xsl:call-template name="generateTable">
<xsl:with-param name="books" select="$books"/>
</xsl:call-template>
</xsl:for-each-group>
</xsl:when>
<xsl:otherwise>
<!-- Generates a table with books, in the order they are in the input XML document. -->
<xsl:call-template name="generateTable">
<xsl:with-param name="books" select="book"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |