The specification for xsl:expose says
The names attribute selects a subset of these components by name (and in the
case of functions, arity); its value is a whitespace-separated sequence of
tokens each of which is either a NameTest
<https://www.w3.org/TR/xpath-30/#prod-xpath30-NameTest>XP30 or a
NamedFunctionRef
<https://www.w3.org/TR/xpath-30/#prod-xpath30-NamedFunctionRef>XP30. (Examples
are *, p:*, *:local, p:local, and p:local#2.)
I don't think it's 100% clear that when referring to a function, including the
arity is mandatory, but that's Saxon's interpretation. Erratum XT30.E36
clarifies this.
XT30.E36 <file:///Users/mike/Downloads/xslt-30-errata.html#E36> It should
be made more clear that in xsl:accept and xsl:expose, a NameTest with no arity
cannot be used to identify functions.
The XSL WG worked on errata for the XSLT 3.0 specification before it disbanded
in 2019. Unfortunately the "errata" link in the published specification leads
nowhere, but the draft errata are present in the GitHub repository, and I have
extracted a copy for convenience at
https://github.com/user-attachments/files/25205612/xslt-30-errata.html
Michael Kay
Saxonica
> On 10 Feb 2026, at 09:33, Mukul Gandhi mukulg@xxxxxxxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi Martin,
>
> On Tue, Feb 10, 2026 at 2:28b/PM Martin Honnen martin.honnen@xxxxxx
<mailto:martin.honnen@xxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
>
>> Mukul, do you know about (for Saxon 10 EE) -lib:filenames command line
>> option? See
>>
https://www.saxonica.com/html/documentation10/using-xsl/commandline/index.htm
l
>>
>> -lib:filenames
>>
>> A list of filenames containing library packages. The filenames are
>> separated by ";" on Windows systems, or ":" on Linux and Mac. Each
>> filename must identify either (a) a top-level module in a source XSLT
>> package, or (b) a SEF file containing an exported library package. There
>> is no constraint on the order of the packages.
>>
>>
>> Thus if you run Saxon 10 EE from the command line then with e.g.
>>
>> -xsl:test1.xsl -s:test1.xml -lib:test2.xsl
>
> Thanks for these details. I'm now running XSLT 3.0 transform with Saxon 10
EE using -lib: option, but I get following error,
>
> Error in xsl:expose/@names on line 10 column 72 of test2.xsl:
> XTSE3020 When the name identifies a function, the arity must be given
(XSLT 3.0 erratum E36)
> Error
> Errors found in package http://package2 <http://package2/>
> Errors found in package http://package2 <http://package2/>
>
> How we may resolve these XSLT 3.0 transformation issues?
>
>
> --
> Regards,
> Mukul Gandhi
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/3500899> (by
email <>)
|