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">&lt;![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">&#13;&#10;</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>

Reply via email to