Re: [xsl] Resolving xsl:import href on different base URIs

Subject: Re: [xsl] Resolving xsl:import href on different base URIs
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 3 Nov 2020 22:42:56 -0000
On 03.11.2020 23:36, Martynas JuseviD
ius martynas@xxxxxxxxxxxxx wrote:

I have a stylesheet that I want to deploy on different setups that
have different base URIs. That impacts the relative URI of the imports
of that stylesheet. For example, in one case

<xsl:import href="../../../xsl/bootstrap/2.3.2/layout.xsl"/>

and in the other case

<xsl:import

href="../../../../static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layo
ut.xsl"/>

The rest is identical. I'd like to avoid having to duplicate stylesheets just because of this URI difference.

Is there some clever URI resolution trick I'm not seeing, or some XSLT
3.0 static features that can help here?

You could try to declare a static parameter defining the setup and use either a shadow attribute with

  _href="{if ($setup = 'layout1') then
'../../../xsl/bootstrap/2.3.2/layout.xsl' else
'../../../../static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xs
l'"

I think or use xsl:use-when checking the param on the xsl:imports.

Current Thread