[xsl] For-each sequence

After replacing a simple recurisive named template in favour of an XPath
2.0 sequence constructor, I've hit the following problem. This code:
<div>
<xsl:for-each select="1 to 10">
<span id="{@id}">.</span>
</xsl:for-each>
</div>
...now fails because the AVT is attempting to walk the attribute axis of
the atomic values.
Any ideas how I can access the source XML from within the for-each -
without modifying the AVT itself? (The AVT is added to the HTML
elements by a stylesheet and I don't really want to add a very specific
rule for this case)
A potential solution is:
<div>
<xsl:variable name="sourceEl" select="."/>
<xsl:for-each select="1 to 10">
<xsl:for-each select="$sourceEl">
<span id="{@id}">.</span>
</xsl:for-each>
</xsl:for-each>
</div>
Is there another way?
thanks
andrew