xsl-list
[Top] [All Lists]

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

2020-11-04 11:29:26
Two further tricks:

(a) when you load the top-level stylesheet using new StreamSource(stream, 
systemId), the systemId becomes the base URI of the top-level stylesheet 
module, and this doesn't need to reflect the actual location of the source code.

(b) don't forget that you can set xml:base="" on either the xsl:stylesheet 
element or the xsl:import element,

Michael Kay
Saxonica

On 4 Nov 2020, at 16:56, Liam R. E. Quin liam(_at_)fromoldbooks(_dot_)org 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

On Tue, 2020-11-03 at 22:37 +0000, Martynas Jusevičius
martynas(_at_)atomgraph(_dot_)com <mailto:martynas(_at_)atomgraph(_dot_)com> 
wrote:
Hi,

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/layout.xsl"/>

In the first instance i'd consider seeing ifi could make the
environments closer,  and, if not, consder an external symbolic link.

Other alternatives include
* using a parameter (as Martin suggested) with _href="{ ....}"
* using an environoment variable, also with _href
 xsl:import _href="{ get-environment-
variable('PATHTOBOOTSTRAP')}/2.3.2/layout.xsl" />
or whatever (if you precompile the stylesheet, though, and deploy the
compiled bytecode, this probably won't help)

* using an XML Catalog
* using a wrapper stylesheet that calls fn:transform() on the real one,
after finding it.

Liam


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

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>