RE: Processing DocBook with Calabash: 'exslt' error "Cannot find a matching 1-argument function named {http://exslt.org/common}node-set()"

Registering functions in Saxon HE manually isn’t very difficult by the way.
A while ago I wrote a small wrapper around the main class of Saxon that
allowed supplying a file with all registering details, which allowed
on-the-fly registering at start of Saxon. Not sure I’d be able to find back
that code, but shouldn’t be difficult to reproduce. If XMLCalabash would
allow declaring saxon extensions in the config, it could take care of doing
that registration for you while it initializes Saxon..



Just a thought..

Geert



*Van:* Romain Deltour [mailto:rdeltour@gmail.com]
*Verzonden:* dinsdag 17 december 2013 9:54
*Aan:* RICAUD-DUSSARGET Matthieu
*CC:* XProc Dev
*Onderwerp:* Re: Processing DocBook with Calabash: 'exslt' error "Cannot
find a matching 1-argument function named {
http://exslt.org/common}node-set()"



No problem ;)



By the way, supporting user-defined functions is part of XProc v2
requirements [1]. If this goes through, it might be an incentive for
Michael Kay / Saxonica to open up the API and allow open source
implementations of this feature ? <dream-mode-off/>



Romain.



[1]
http://www.w3.org/XML/XProc/docs/xproc-v2-req.html#user-defined-functions



On 17 déc. 2013, at 09:43, RICAUD-DUSSARGET Matthieu <
matthieu.ricaud@igs-cp.fr> wrote:



My apologies, you're right Romain. Thanks for precising the difference
between these 2 kind of functions : processors-specific written in java and
xslt defines ones.



And thanks for confirming there seem's to be no workaround to use
xslt-defines function with xproc/calabash/saxonHE.

Althought one may define xslt functions when running an XSLT2 stylesheet
with SaxonHE.



Not with xproc, well "c'est la vie" :(



Cheers

Matthieu



2013/12/16 Romain Deltour <rdeltour@gmail.com>

I think Graeme’s original question and the topic discussed in Norm’s blog
are two different things.



1. Graeme wants to have processor-specific XPath extension functions
working in Saxon. The reason it doesn’t work out of the box in Saxon HE is
that the implementation of the EXSLT functions are no longer bundled by
default with Saxon HE. It is workable though if you write the glue code to
register these functions with Saxon’s configuration object.



2. Norm’s blog is about importing **xslt-defined** functions in XProc.
These are not really processor-specfiic extension functions (e.g. written
in Java). The reason why this new Calabash feature doesn’t work with Saxon
HE is because Saxon’s API is intentionally restricted. There is
unfortunately no workaround (that I know of).



Romain.





On 16 déc. 2013, at 18:45, RICAUD-DUSSARGET Matthieu <
matthieu.ricaud@igs-cp.fr> wrote:



Hi Graeme



I was wondering the quite same question a few days ago. After searching, it
seems one cannot use custom xslt functions (home made, not only exslt) with
xproc/calabash unless one get a saxon(PE?)/EE licence. See norm's
explanation here :

http://norman.walsh.name/2013/08/20/extensionFunctions



Cheers,



Matthieu



2013/12/10 Ari Nordström <Ari.Nordstrom@condesign.se>

Hi,



You should be able to specify a saxon configuration file when running
Calabash. See
http://www.saxonica.com/documentation/configuration/configuration-file/.
The <xslt> value "0.0" means that the XSLT version used is taken from the
stylesheet. Haven't tested this but it's what the documentation says.



As for Calabash, you can add a --saxon-configuration <file> option to its
command line.



Best,



Ari







Ari Nordström
Senior Consultant

Condesign Operations Support AB
Phone +46 31 744 17 91
Mobile +46 736 000 333
Email ari.nordstrom@condesign.se

>>> <graeme@heliocentrik.net> 2013-12-02 13:06 >>>


Hi all,
Apologies that this is a processor-specific question (relating to
Calabash), but I couldn't find a comparable mailing list which was
specific to Calabash.

I'm processing DocBook files with an XProc pipeline. My issue is that
when I invoke the DocBook 1.78.0 XSL stylesheets' 'assemble.xsl' file, I
get an 'exslt' error indicating that a required extension function could
not be found. The error is as follows:

Dec 02, 2013 11:53:58 AM
com.xmlcalabash.util.DefaultXProcMessageListener error
SEVERE:
file:/[...]/docbook/assembly/assemble.xsl:552:err:XTDE1425:Cannot find a
matching 1-argument function named {http://exslt.org/common}node-set().
There is no Saxon extension function with the local name node-set

I understand from Bob Stayton [1] that this is a by-product of trying to
invoke the DocBook stylesheets (which are XSLT 1.0) with Saxon 9 HE,
which is an XSLT 2.0 processor.

However, when I run the pipeline from within oXygen, which embeds Saxon
EE, the DocBook stylesheets run quiet happily. Modifying oXygen's config
to force it to use HE causes the error to appear there as well.

My XSLT step looks like this:

<p:xslt name="assemble-docbook">
                <p:input port="stylesheet">
                    <p:document

href="../target/generated-resources/docbook/assembly/assemble.xsl"/>
                </p:input>
                <p:input port="parameters">
                    <p:empty/>
                </p:input>
                <p:with-option name="version" select="1.0" />
            </p:xslt>

I wonder if anyone could clarify whether a stock installation of
Calabash, with Saxon HE, can be cajoled into running the DocBook
stylesheets correctly. I've tried adding the '-X use-xslt-10' flag to
the command without any success.

I need to be able to run the pipeline from the shell (or maybe even on
the web) on boxes where I won't have a licence for Saxon EE.

I'm running Calabash 1.0.15 and Saxon 9.5.1.1 HE.

Thanks in advance for any assistance.

Graeme

[1]
https://lists.oasis-open.org/archives/docbook-apps/201311/msg00043.html



This message is for the designated recipient only and may contain
privileged, proprietary, or otherwise private information.  If you have
received it in error, please notify the sender immediately and delete the
original.  Any other use of the email by you is prohibited.

Condesign AB, 556255-8313, säte Göteborg; Condesign Automation AB,
556271-3676, säte Göteborg; Condesign Engineering AB, 556469-2092 säte
Göteborg; Condesign Infocom AB, 556453-7172, säte Ljungby; Condesign
InfoProductions AB, 556385-4255, säte Linköping; Condesign Operations
Support AB, 556307-1231, säte Göteborg.





-- 

Matthieu Ricaud-Dussarget

IGS-CP - Développeur XML

05 45 37 09 49







-- 

Matthieu Ricaud-Dussarget

IGS-CP - Développeur XML

05 45 37 09 49

Received on Tuesday, 17 December 2013 14:55:34 UTC