Re: [basex-talk] Higher order functions in XSLT

2019-03-28 Thread Liam R. E. Quin
On Thu, 2019-03-28 at 11:48 +0100, nikos dimitrakas wrote:
> 
[...]
> XPST0003: Inline functions require support for higher-order-
> functions, which needs Saxon-PE or higher. I am using Saxon EE
> 9.9.1.2 (also tried PE 9.9.1.2)

This suggests BaseX is picking up the wrong version of Saxon, or maybe
not finding the license file?

it should work.

On Linux, i sometimes use
strace -f $MAIN/bin/basex myquery.xq |& grep saxon
and see where the open system call succeeds.
(you can get more sophisticated with strace but i don’t know which
operating system you use).

Liam


-- 
Liam Quin, https://www.delightfulcomputing.com/
Available for XML/Document/Information Architecture/XSLT/
XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
Web slave for vintage clipart http://www.fromoldbooks.org/



Re: [basex-talk] Higher order functions in XSLT

2019-03-28 Thread nikos dimitrakas


On 2019-03-28 11:54, Martin Honnen wrote:

Am 28.03.2019 um 11:48 schrieb nikos dimitrakas:
> Hi!
>
> Is there something in BaseX that prohibits using higher order
> functions in XSLT (called with xslt:transform)?
>
> for-each($somenodes, function($q) { string($q) })
>
> and
>
> for-each($somenodes, string#1)
>
> both work in XQuery in BaseX, but when I use the same call in an XSLT
> that I call with xslt:transform, I get the following message
>
> XPST0003: Inline functions require support for higher-order-functions,
> which needs Saxon-PE or higher. I am using Saxon EE 9.9.1.2 (also
> tried PE 9.9.1.2)
>
> The XSLT works fine if I run it with Saxon directly without using
> BaseX and the function xslt:transform. Is there something I can do to
> get this to work, or is this out of my control?
>
>

Do you get other Saxon EE or PE only features to work when using it from
BaseX? It might be that your Saxon EE license is not found and in that
case I think Saxon EE or PE fall back to only offer HE features.

So make sure the Saxon license file is on the class path.



Yes, I get other XSLT 3 features to work, like for-each-group with 
composite="true" and xsl:evaluate


I also have checked that the right version is the one used by printing 
the available-system-properties() with their values and I get the following:


   
   
   http://www.saxonica.com/"/>
   
   
   
   
   
   
   
   
   
   
   

It says "no" for "xsl:supports-higher-order-functions" so maybe it is a 
license issue. Both the PE and EE editions are supposed to have support 
for higher order functions, but the functionality is apparently 
deactivated when the license is not found. I fixed the license and now 
it works. Thank you for the suggestion.


/nikos



Re: [basex-talk] Higher order functions in XSLT

2019-03-28 Thread Martin Honnen

Am 28.03.2019 um 11:48 schrieb nikos dimitrakas:

Hi!

Is there something in BaseX that prohibits using higher order
functions in XSLT (called with xslt:transform)?

for-each($somenodes, function($q) { string($q) })

and

for-each($somenodes, string#1)

both work in XQuery in BaseX, but when I use the same call in an XSLT
that I call with xslt:transform, I get the following message

XPST0003: Inline functions require support for higher-order-functions,
which needs Saxon-PE or higher. I am using Saxon EE 9.9.1.2 (also
tried PE 9.9.1.2)

The XSLT works fine if I run it with Saxon directly without using
BaseX and the function xslt:transform. Is there something I can do to
get this to work, or is this out of my control?




Do you get other Saxon EE or PE only features to work when using it from
BaseX? It might be that your Saxon EE license is not found and in that
case I think Saxon EE or PE fall back to only offer HE features.

So make sure the Saxon license file is on the class path.




[basex-talk] Higher order functions in XSLT

2019-03-28 Thread nikos dimitrakas

Hi!

Is there something in BaseX that prohibits using higher order functions 
in XSLT (called with xslt:transform)?


for-each($somenodes, function($q) { string($q) })

and

for-each($somenodes, string#1)

both work in XQuery in BaseX, but when I use the same call in an XSLT 
that I call with xslt:transform, I get the following message


XPST0003: Inline functions require support for higher-order-functions, 
which needs Saxon-PE or higher. I am using Saxon EE 9.9.1.2 (also tried 
PE 9.9.1.2)


The XSLT works fine if I run it with Saxon directly without using BaseX 
and the function xslt:transform. Is there something I can do to get this 
to work, or is this out of my control?


Regards

/nikos