<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet 
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text" />

  <xsl:template match="/">
    <xsl:apply-templates select="//*" />
  </xsl:template>

  <xsl:template match="*">
    <xsl:value-of select="name()" />
    <xsl:text> Attributes : </xsl:text>
    <xsl:value-of select="count(@*)" />
    <xsl:text> Descendants : </xsl:text>
    <xsl:value-of select="count(descendant::*)" />
    <xsl:text> Number : </xsl:text>
    <xsl:value-of select="position()" />
    <xsl:text>&#xa;</xsl:text>
  </xsl:template>

</xsl:stylesheet>

