[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Resolving xsl:import href on different base URIs
Thanks for all the suggestions! A static parameter and a shadow attribute did the trick for me: <xsl:param name="apl:baseUri" as="xs:anyURI" static="yes"/> <xsl:import _href="{resolve-uri('static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/l ayout.xsl', $apl:baseUri)}"/> I didn't even know they existed, learned something new about XSLT 3.0 today :) The example in that section is pretty much what I needed: https://www.w3.org/TR/xslt-30/#shadow-attributes On Wed, Nov 4, 2020 at 6:29 PM Michael Kay mike@xxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > 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@xxxxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, 2020-11-03 at 22:37 +0000, Martynas JuseviD ius > martynas@xxxxxxxxxxxxx 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/ > 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 > > > XSL-List info and archive > EasyUnsubscribe (by email)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|