func:function and func:result

Tamer Demirel <[email protected]> Sat, 21 Nov 2009 17:31:11 +0100
Newsgroups gmane.text.xml.xslt.extensions
Message-ID <[email protected]>
Hallo,

i am using Xalan 2.7.1 and exslt.
I habe Problems with func:result.

I want to have as result a part of xslt code.

My Example:

Function:
    <func:function name="my:getElement">
        <xsl:param name="variableName"/>
        <xsl:param name="variableName_final"/>
        <xsl:param name="elementName"/>
        <xsl:element name="{$elementName}">
            <xsl:element name="xsl:if">
                <xsl:attribute 
name="test"><xsl:text>string-length($</xsl:text><xsl:value-of 
select="$variableName"/><xsl:text>)>0</xsl:text></xsl:attribute>
                <xsl:element name="xsl:value-of">
                    <xsl:attribute 
name="select"><xsl:text>$</xsl:text><xsl:value-of 
select="$variableName_final"/></xsl:attribute>
                </xsl:element>
            </xsl:element>
        </xsl:element>
        <func:result/>
    </func:function>

Call of the Function:
<xsl:value-of 
select="my:getElement('invoic_type','invoic_type_final','INVOIC_TYPE')"/>

I get the failure:
misplaced literal result in a func:function container.

But it works for me.

This doesnt work:

    <func:function name="my:getElement">
        <xsl:param name="variableName"/>
        <xsl:param name="variableName_final"/>
        <xsl:param name="elementName"/>
        <func:result>
        <xsl:element name="{$elementName}">
            <xsl:element name="xsl:if">
                <xsl:attribute 
name="test"><xsl:text>string-length($</xsl:text><xsl:value-of 
select="$variableName"/><xsl:text>)>0</xsl:text></xsl:attribute>
                <xsl:element name="xsl:value-of">
                    <xsl:attribute 
name="select"><xsl:text>$</xsl:text><xsl:value-of 
select="$variableName_final"/></xsl:attribute>
                </xsl:element>
            </xsl:element>
        </xsl:element>
        </func:result>
    </func:function>

Do somebody know, what i can do to fix the problem? Maybe older version 
helps?
Thx,
Tamer