RE: [xsl] Problem with passing argument to external registered function

Subject: RE: [xsl] Problem with passing argument to external registered function
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 17 Apr 2006 21:28:50 +0100
The calling conventions for external functions are implementation-defined,
so things that work with one processor will not necessarily work with
another.

Some processors don't do any type conversions on the supplied arguments: if
the external function in this case is expecting a string, then it might be
better to do the conversion "by hand" by writing
select="foo:bar(string(element/.))".

(Actually, the XPath expression "element/." means exactly the same as
"element" or "./element".)

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
> Sent: 17 April 2006 18:18
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Problem with passing argument to external registered
> function
>
> On 4/17/06, Jesper Noehr <jesper@xxxxxxxxx> wrote:
> > This works:
> > <xsl:value-of select="foo:bar('test')"/>
> >
> > This doesn't:
> > <xsl:value-of select="foo:bar(element/.)"/>
> >
> > Is it not possible to give XPath expressions as argument?
>
> Saxon 8.7.1 is working fine with XPath expressions as argument. I
> think this is a proprietary feature of XSLT processors, and is not
> specified in XSLT/XPath specs.
>
> > What am I doing wrong? Am I trying to go beyond the capabilities of
> > XSLT?
>
> You are not doing anything wrong. Its just that libxslt seems to not
> support passing parameters like this.
>
> Regards,
> Mukul
>
> > --
> > Jesper Nxhr, Information Systems Developer, Opera Software
> > tel: +47-24164348 / cell: +47-93460263 / jespern@xxxxxxxxx

Current Thread