It may be better to consider a two stage process, first normalize, then
transform.
<xsl:variable name="lc">
<xsl:apply-templates mode="lc"/>
</xsl:variable>
<xsl:template match="*" mode="lc">
<xsl:element name="{lower-case(local-name())}
namespace="{namespace-uri(.)}">
<xsl:apply-templates select="@*,node()"/>
(missing the mode there: <xsl:apply-templates select="@*,node()" mode="lc"/>)
The other way of lowercasing everything (if you are using Java) is to
use an XMLFilter which sits between the XMLReader and the
TransformerHandler.
Using a two-passes in the XSLT is much easier, while the XMLFilter
approach would be preferable where performance is an issue.
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
--~------------------------------------------------------------------
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>
--~--