I'm migrating an application from xalan-java-1 to xalan-java 2.4.1 and I get the following exception while calling:
modTemplates = transFactory.newTemplates( stylesheetSource ); Here is the exception: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: Non-whitespace text is not allowed in this position in the stylesheet! There is no reference to where in the stylesheet the problem has occurred; so I really don't know where to look for the issue. Is there some way to get debug info while creating a template? I'll include the stylesheet here in hopes that someone out there can identify the problem: <?xml version="1.0"?> <!-- $Header: S:/MKS/RCSWORK/Rel9/Projects/Www/applications/DefaultWebApp_Ciws/public_xsl/rcs/oshsave_req.xsl 1.1 2003/01/08 22:12:57 A07b3zz Development $ Copyright 2000-2001, 3M IPC. All rights reserved. This work is protected by U.S. and international law. $Log: oshsave_req.xsl $ Revision 1.1 2003/01/08 22:12:57 A07b3zz Initial revision Revision 1.1 2002/09/26 16:02:46 barbarab Initial revision Revision 8.1 2002/02/27 23:39:36 steves PER# 39518 - xml encoding to ISO-8859-1 Revision 8.0 2001/06/05 16:28:26 steves Initial revision --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version ="1.0"> <xsl:import href="common_templates.xsl"/> <xsl:output method="xml" version="1.0" encoding="ISO-8859-1"/> <xsl:param name="BinName"/> <xsl:param name="BinItem"/> <xsl:param name="FileContents"/> <xsl:param name="BinClass" select="'cw_configuration'"/> <xsl:param name="Type" select="'72'"/> <xsl:template match="/"> <CiwsInfo> <CiwsHeader> <ServiceName>OSHASAVEITEM</ServiceName> <VersionInfo> <CiwsVersion>1.0</CiwsVersion> <ServletName><xsl:value-of select="//ServletName"/></ServletName> <ServletVersion><xsl:value-of select ="//ServletVersion"/></ServletVersion> </VersionInfo> </CiwsHeader> <ServiceMessage type="HemsInfo"> <HemsInfo type="HemsInfo"> <version>1</version> <messageInfo> <accessSecurityInfo> <securityTicket> <xsl:apply-templates select ="CiwsInfo/accessSecurityInfo/securityTicket"/> </securityTicket> <originationInfo><xsl:call-template name ="OriginationInfo"/></originationInfo> </accessSecurityInfo> </messageInfo> <trans type="OSHTrans"> <OSHTrans> <pOSHFunctions> <pSaveItem> <pSaveItemInput> <pTargetItem> <pItemName> <xsl:choose> xsl:when test="$BinItem"><xsl:value-of select ="$BinItem"/></xsl:when> <xsl:otherwise><xsl:value-of select ="//ServiceMessage/*/@binitem"/></xsl:otherwise> </xsl:choose> </pItemName> <pBinName><xsl:value-of select="$BinName"/></pBinName> <pBinClass><xsl:value-of select="$BinClass"/></pBinClass> <pType ncid="{$Type}"/> <pDeleteFlag>0</pDeleteFlag> <pUpdateFlag>1</pUpdateFlag> <pFileContents> <xsl:choose> <xsl:when test="$FileContents"><Hex> <xsl:text/><xsl:value-of select ="$FileContents"/><xsl:text/></Hex> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="//ServiceMessage"/> </xsl:otherwise> </xsl:choose> </pFileContents> </pTargetItem> </pSaveItemInput> </pSaveItem> </pOSHFunctions> </OSHTrans> </trans> </HemsInfo> </ServiceMessage> </CiwsInfo> </xsl:template> <xsl:template match="ServiceMessage"> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> <xsl:apply-templates select="./*/*/@*[name()='section']"/> <xsl:text disable-output-escaping="yes">]</xsl:text><xsl:text disable-output-escaping="yes">]></xsl:text> </xsl:template> --> <!-- The spacing here is critical. Don't re-indent this without testing the results. Each section name must be on a separate line with no preceding whitespace, each attribute name must be on a separate line with no preceding whitespace, each attribute value must follow an equal sign (=) and terminate with a DOS newline. There should be no blank lines. --> <xsl:template match="@section"> <xsl:text/>[<xsl:value-of select="normalize-space(.)"/>] <xsl:apply-templates select="../*/@*[name()='name']"/> </xsl:template> <xsl:template match="@name"> <xsl:value-of select="normalize-space(.)"/>=<xsl:text/> <xsl:apply-templates select="../field"/><xsl:text disable-output-escaping="yes"> </xsl:text> </xsl:template> <xsl:template match="field"> <xsl:if test="count(preceding-sibling::*)>0">;</xsl:if> <xsl:value-of select="normalize-space(.)"/> </xsl:template> </xsl:stylesheet>
