Neuer Vorschlag:
<xsl:when test="number() and string-length() = 8">
<xsl:if test="number(substring(.,1,1))">
<xsl:if test="number(substring(.,2,1))">
<xsl:if test="number(substring(.,3,1))">
<xsl:if test="number(substring(.,4,1))">
<xsl:if test="number(substring(.,5,1))">
<xsl:if test="number(substring(.,6,1))">
<xsl:if test="number(substring(.,7,1))">
<xsl:if test="number(substring(.,8,1))">
alles klar
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
Passt soweit es keine 0 innerhalb des Wertes gibt. 0 ist wohl laut numer() keine Zahl...