<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:with-param name="indent" select="1"/>
		</xsl:apply-templates>
	</xsl:template>
	<xsl:template match="*">
		<xsl:param name="indent"/>
		<xsl:call-template name="spacing">
			<xsl:with-param name="indent" select="$indent"/>
		</xsl:call-template>
		<xsl:text>Element : </xsl:text>
		<xsl:value-of select="local-name()"/>
		<xsl:text>&#xa;</xsl:text>
		<xsl:apply-templates select="* | @*">
			<xsl:with-param name="indent" select="$indent + 2"/>
		</xsl:apply-templates>
	</xsl:template>
	<xsl:template match="@*">
		<xsl:param name="indent"/>
		<xsl:call-template name="spacing">
			<xsl:with-param name="indent" select="$indent"/>
		</xsl:call-template>
		<xsl:text>Attribute : </xsl:text>
		<xsl:value-of select="local-name()"/>
		<xsl:text>&#xa;</xsl:text>
	</xsl:template>
	<xsl:template name="spacing">
		<xsl:param name="indent"/>
		<xsl:text> </xsl:text>
		<xsl:if test="$indent > 0">
			<xsl:call-template name="spacing">
				<xsl:with-param name="indent" select="$indent - 1"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>
</xsl:stylesheet>

