xslt. Loop with recursion

xml на входе:

<root>
 <child>
  <name>Jon</name>
  <age>10</age>
 </child>
 <child>
  <name>Bob</name>
  <age>10</age>
 </child>
 <child>
  <name>Michael</name>
  <age>10</age>
 </child>
</root>

xslt-трансформация:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
  <html>
   <head></head>
   <body>
    <xsl:apply-templates select="//child">
   </xsl:apply-templates></body>
  </html>
 </xsl:template>

 <xsl:template match="child">
  <xsl:value-of select="./name">
  <xsl:call-template name="dots">
   <xsl:with-param name="count" select="80 - string-length(./name) - string-length(./age)">
  </xsl:with-param></xsl:call-template>
  <xsl:value-of select="./age">


 </xsl:value-of></xsl:value-of></xsl:template>

 <xsl:template name="dots">
  <xsl:param name="count" select="1">
  <xsl:if test="$count &gt; 0">
  <xsl:text>_</xsl:text>
  <xsl:call-template name="dots">
   <xsl:with-param name="count" select="$count - 1">
  </xsl:with-param></xsl:call-template>
  </xsl:if>    
 </xsl:param></xsl:template>
</xsl:stylesheet>