| Newsgroups |
gmane.text.xml.xsl.general.mulberrytech |
| Message-ID |
<[email protected]> |
On 04.02.2021 09:25, Martin Honnen [email protected] wrote:
>
>
> On 04.02.2021 09:07, Christophe Marchand [email protected] wrote:
>>
>> Hello !
>>
>> Reading the recommandation, I was not able to imagine a use-case for
>> Function Call Invocation
>> <https://www.w3.org/TR/xslt-30/#invoking-initial-function>[1].
>>
>> Recommandation only speeks of raw result, and 2.3.5 section does not
>> mention a "starting environment".
>>
>> Saxon implementation does not provide a command-line way to start a
>> XSL with a function call invocation ; there is only an API method to
>> do so. And in this case, a XDM value is return.
>>
>> Could W3C Xslt group members explain the motivation of such a
>> starting way ?
>>
>> Does someone has a real use-case of this invocation ?
>>
>> Best regards,
>> Christophe
>>
>> [1] : https://www.w3.org/TR/xslt-30/#invoking-initial-function
>>
>
> If you have a module/a function library you can use a function of it
> with e.g.
>
> let $xslt := <xsl:package
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
> <xsl:import
> href="http://www.xsltfunctions.com/xsl/functx-1.0.1-nodoc.xsl"/>
> <xsl:expose component="function" names="*" visibility="public"/>
> </xsl:package>
> return
> transform(
> map {
> 'stylesheet-node' : $xslt,
> 'initial-function' : QName('http://www.functx.com',
> 'repeat-string'),
> 'function-params' : ['x', 5]
> }
> )?output
>
>
> The XQuery part to first construct an XSLT 3 package importing the
> XSLT 2 functx library is only necessary as the XSLT 2 functions are
> otherwise not public. If you had an XSLT 3 version of functx with
> public functions you would just use the module with e.g. the transform
> function.
>
So the general use case is being able to call public functions from XSLT
3 modules or packages directly from environments like XPath 3.1, XQuery
3.1 or XSLT 3, another shorter example would be to call the csv:parse
function in the package example of the XSLT 3 spec from pure XPath 3.1
transform(
map {
'stylesheet-location' :
'https://github.com/w3c/xslt30-test/raw/master/tests/decl/package/package-100.xsl',
'initial-function' : QName('http://example.com/csv', 'parse'),
'function-params' : [data]
}
)?output
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--