Re: library package – load stylesheet s into XQuery?

Julian Jarosch <[email protected]> Mon, 24 Jun 2024 12:00:18 +0200
Newsgroups gmane.text.xml.exist
Message-ID <[email protected]>
Dear Jean-Paul,

Thanks! Yes and no – yes, a library module, but within a package that is 
exclusively declared as a library. See the table with types of packages 
in this section: https://exist-db.org/exist/apps/doc/repo#sect-repoxml

“Library package” with type = library and /no target specified/ was what 
I was going for, so far.

This means that the package is not deployed into the /db/apps 
collection. Instead it lives in /db/system/repo. Its collection name 
includes the version number. Currently the full path would be 
/db/system/repo/cmiferator-0.0.3/content/CMIF-base.xsl, but this will 
obviously change with the version number.

Perhaps there is a programmatic way to obtain the current package base 
path (/db/system/repo/cmiferator-0.0.3) and use that for loading the 
stylesheet.

Otherwise, I take your point and will consider setting a target where to 
deploy the package within the database (/db/apps/cmiferator) and use a 
fixed, complete resource path for loading the stylesheets. (It’s just 
that initially the library package concept seemed a good fit for what I 
try to achieve – make a few XQuery functions available database-wide.)

Best,
Julian

Am 24.06.24 um 11:43 schrieb Jean-Paul Rehr:
> Dear Julian,
>
> >Is it even possible to include XSLTs in a library package in a manner 
> that they can be loaded into XQuery?
>
> I assume by "library package" you mean library module? I do this all 
> the time without an issue. It's just another XML document.
>
> However I have a doubt about this path:
>
> >doc('./CMIF-base.xsl')
>
> Have you tested this with the full explicit path to the document? e.g. 
> "/db/apps/myapp/CMIF-base.xsl"
>
> Cheers,
> JPR
>
>
> On Mon, Jun 24, 2024 at 11:35 AM Julian Jarosch 
> <[email protected]> wrote:
>
>     Hello everyone,
>
>     I’m trying to use XSLT stylesheets in an XQuery module in a
>     library package, along the lines of (simplified example):
>
>     declare variable $template := doc('./CMIF-base.xsl');
>
>     The current actual code is here:
>
>     https://github.com/digicademy/cmiferator/blob/78b2725bf9fcc163fc48df0a96c436fadeefcef6/library-package/content/cmiferator.xqm#L25
>
>     I had successfully tested this as an XQuery module written
>     directly in eXist/eXide. It stopped working when I installed it as
>     a library package, as far as I can tell.
>
>     By “stopped working” I mean that the variable which is supposed to
>     contain the stylesheet document ($template in the example) remains
>     empty and the transform:transform() function fails because of a
>     missing stylesheet argument.
>
>     Currently, it seems to me that the cause is with the library
>     package? Is it even possible to include XSLTs in a library package
>     in a manner that they can be loaded into XQuery?
>
>     Thanks for any guidance – presumably for pointing out an egregious
>     oversight on my end :-)
>
>     Kind regards,
>     Julian
>
>     _______________________________________________
>     Exist-open mailing list
>     [email protected]
>     https://lists.sourceforge.net/lists/listinfo/exist-open
>

_______________________________________________
Exist-open mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/exist-open