[ 
https://issues.apache.org/jira/browse/XALANJ-2430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13203327#comment-13203327
 ] 

David Ehrmann commented on XALANJ-2430:
---------------------------------------

I have a possibly related problem.  I'm getting this circular reference error 
with the following code:

ERROR:  'line 2: Circular variable/parameter reference in '[variable(foo)]'.'

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:variable name="foo">
                <xsl:variable name="bar" select="/foo/bar/text()" />
                <xsl:if test="$bar">baz</xsl:if>
        </xsl:variable>

        <xsl:template match="/" />
</xsl:stylesheet>

Once I remove the <xsl:if>, the code compiles fine.

This is with the Xalan version that shipped with Java 1.6.0_23, but I think 
I've seen it with actual Xalan.
                
> Circular variable/parameter reference if recursive template is used in global 
> variable
> --------------------------------------------------------------------------------------
>
>                 Key: XALANJ-2430
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2430
>             Project: XalanJ2
>          Issue Type: Bug
>          Components: XSLTC
>    Affects Versions: 2.7.1
>         Environment: Ubuntu 7.10, java-1.5.0-sun-1.5.0.13, Xalan 2.7.1, 
> Xerces 2.9.0 (from Xalan package)
>            Reporter: Auke Schrijnen
>
> Xalan 2.7.1 won't compile an xslt when a recursive template is used in a 
> global variable. This works in Xalan 2.7.0!
> 2.7.1 throws a TransformerException: Circular variable/parameter reference in 
> '[variable(countInfo)]'.
> Example:
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> version='1.0'>
> <xsl:template name='countRecursive'>
>     <xsl:param name='info'/>
>     <xsl:param name='count' select='"1"'/>
>     <xsl:choose>
>         <xsl:when test='$info != "" and number($count) &lt; 4'>
>             <xsl:call-template name='countRecursive'>
>                 <xsl:with-param name='info' select='substring-after($info, " 
> ")'/>
>                 <xsl:with-param name='count' select='$count + 1'/>
>             </xsl:call-template>
>         </xsl:when>
>         <xsl:otherwise>
>             <xsl:value-of select='$count'/>
>         </xsl:otherwise>
>     </xsl:choose>
> </xsl:template>
> <xsl:variable name='countInfo'>
>         <xsl:variable name='someElement'>
>                 <xsl:value-of select='/root/vars'/>
>         </xsl:variable>
>         <xsl:call-template name='countRecursive'>
>             <xsl:with-param name='info' select='$someElement'/>
>         </xsl:call-template>
> </xsl:variable>
> <xsl:template match='/'>
>     <xsl:element name='count'>
>         <xsl:value-of select='$countInfo'/>
>     </xsl:element>
> </xsl:template>
> </xsl:stylesheet>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscr...@xml.apache.org
For additional commands, e-mail: xalan-dev-h...@xml.apache.org

Reply via email to