Hello.

I used to use the Xalan-Java 2.6.2 that came with JDK 6.

I just upgraded to 2.7.1, and now when I add xml:space="preserve" to my
<xsl:stylesheet> element, it makes all params passed to named templates be
empty.

I've put together a minimal test case that exhibits the problem.  Here's the
stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xml:space="preserve"
>
 <xsl:template match="/">
  <xsl:call-template name="t">
   <xsl:with-param name="p" select="123" />
  </xsl:call-template>
 </xsl:template>
 <xsl:template name="t">
  <xsl:param name="p" />
  <xsl:choose>
   <xsl:when test="string-length($p) > 0">
    NOT EMPTY: <xsl:value-of select="$p" />
   </xsl:when>
   <xsl:otherwise>
    EMPTY
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>
</xsl:stylesheet>

You can run this stylesheet on any XML, and the problem should exhibit
itself.

Basically, if the xml:space="preserve" attribute is left as-is on the
<xsl:stylesheet> element, the result of the transformation is "EMPTY".

If the xml:space="preserve" attribute is removed from the <xsl:stylesheet>
element, the result of the transformation is "NOT EMPTY".

So anyone know if this is a bug or not?

Thanks,
-Dan

Reply via email to