Re: [xsl] How to make a xsl:function that returns the function()

Subject: Re: [xsl] How to make a xsl:function that returns the function()
From: Toshihiko Makita <tmakita@xxxxxxxxxxxxx>
Date: Mon, 21 Jan 2013 15:23:52 +0900
Dear Michael Kay,

Thank you for your reply.
The problem has been fixed according to your suggestion.



Date: Sat, 19 Jan 2013 15:51:25 +0000
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
From: Michael Kay <mike@xxxxxxxxxxxx>
Subject: Re: [xsl] How to make a xsl:function that returns the function()
Message-ID: <50FAC0FD.8030006@xxxxxxxxxxxx>

It's actually a NullPointerException within Saxon; oXygen is hiding the
gory detail of the internal error.

As a workaround, use "name(.)" rather than name(). Saxon has trouble
with context-sensitive functions within higher order functions. I'm not
sure of the exact cause and will investigate further. You can track it here:

Michael Kay

On 19/01/2013 15:16, Toshihiko Makita wrote:

> Hi List,
> I'm very interested in XSLT 3.0 and have a question about the function
> that returns the function as its return value.
> Is it possible to make a such xsl:function?
> I tested using the following code in oXygen 14.1 with Saxon
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="3.0"
> xmlns:xsl="";
> xmlns:xs="";
> xmlns:ahf="";>
> <xsl:template match="root">
> <xsl:variable name="slectFunc" as="function(*)"
> select="ahf:funcGetChildElementByName('d')"/>
> <xsl:copy>
> <xsl:sequence select="$slectFunc(.)"/>
> </xsl:copy>
> </xsl:template>
> <xsl:function name="ahf:funcGetChildElementByName" as="function(*)">
> <xsl:param name="prmElemName" as="xs:string"/>
> <xsl:sequence select="function($a as element()) as element()*
> {$a/child::*[starts-with(name(),$prmElemName)]}"/>
> </xsl:function>
> </xsl:stylesheet>
> However Saxon returns following error.
> System ID: D:\My Documents\Proj\XSLT-TEST\20130113-func\test.xsl
> Main validation file: D:\My Documents\Proj\XSLT-TEST\20130113-func\test.xsl
> Engine name: Saxon-EE
> Severity: error
> Description: 0
> Is there any workarounds?
> Regards,
> Toshihiko Makita

 Toshihiko Makita
 Development Group. Antenna House, Inc. Ina Branch
 E-Mail tmakita@xxxxxxxxxxxxx
 8077-1 Horikita Minamiminowa Vil. Kamiina Co.
 Nagano Pref. 399-4511 Japan 
 Tel +81-265-76-9300 Fax +81-265-78-1668
 Web site:

Current Thread