Re: [xsl] xsl:function "complex" return type

Subject: Re: [xsl] xsl:function "complex" return type
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 12 May 2009 09:46:10 -0400
At 2009-05-12 15:37 +0200, Fridiric Choubelle wrote:
I want an XSL function to return one string and two integers. I know I
can write :

<xsl:function name="doc:myfunc" as="xs:string*">

and use the number() function for the 2d and 3d strings returned.
That's what I'll do if I can't do anything else, but i'm just curious
to know if something like
<xsl:function name="doc:myfunc" as="(xs:string,xs:integer,xs:integer)">
works (I tried both with and without brackets, always gets "XPST0003:
SequenceType syntax error" from Saxon)

You can't mix data types in a sequence type, so use a more generic data type that encompasses the ones you have.

The most generic would be item() as it holds both nodes and atomic types:

<xsl:function name="doc:myfunc" as="item()*">

You can refine that to a closer encompassing data type.

I hope this helps.

. . . . . . . . . . . . Ken

XSLT/XSL-FO/XQuery hands-on training - Los Angeles, USA 2009-06-08
Crane Softwrights Ltd.
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:
Video overview:
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Male Cancer Awareness Nov'07
Legal business disclaimers:

Current Thread