Просто для удовольствия, эта таблица стилей:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:inc="include">
<xsl:output method="text"/>
<xsl:template match="text()"/>
<xsl:template match="Step">
<xsl:variable name="level" select="count(ancestor::Step)"/>
<xsl:value-of select="substring('				',1,$level)"/>
<xsl:number format="{concat(
substring('[',
1,
$level and $level mod 2 = 0),
substring('1a',
$level mod 2 + 1,
1),
substring(']',
1,
$level and $level mod 2 = 0))}. "/>
<xsl:value-of select="concat(Text,'
')"/>
<xsl:apply-templates select="Step"/>
</xsl:template>
</xsl:stylesheet>
Вывод:
1. First Level
2. First Level
a. Second Level
[1]. Third Level
a. Fourth Level