I think you can just do something like
<xsl:variable name="h"
select="//xhtml:*[matches(local-name(),'^h[1-6])]/number(substring(local-name(),2))"/>
<xsl:if test="not($h[1]=1 and count($h[.=1])=1)">h1 not right</xsl:if>
<xsl:for-each select="1 to count($h)-1">
<xsl:if test="$h[.+1]-$h[.] gt 1">
section head jumped by more than one level
</xsl:if>
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--