RE: [xsl] resolving relative path without base

Subject: RE: [xsl] resolving relative path without base
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 29 May 2007 16:57:10 +0100
Use StreamSource.setSystemId() to define the base URI.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Kai Hackemesser [mailto:kaha@xxxxxx] 
> Sent: 29 May 2007 16:43
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] resolving relative path without base
> 
> Thanks, I tried that and it looks good.
> 
> But now I have a problem with relative links. My task is as 
> follows: I have to create a xsl depending on some xml input. 
> The resulting xsl file will import another xsl (depending on 
> input from first xml file).
> 
> This is my code so far:
> 
> // loading preprocess XSL
> StreamSource src = new
> StreamSource(getClass().getResourceAsStream("/lrPreTransformHt
> ml.xsl"));
> // loading xml
> StreamSource xml = new StreamSource(new 
> ByteArrayInputStream(out.toByteArray()));
> StreamResult result = new StreamResult(outRes); // create 
> Transformer from factory and transform.
> getTransformer(src).transform(xml,result);
> // transform again and display
> htmlPane.setText(transform(out.toByteArray(),outRes.toByteArray()));
> 
> The problem currently appearing is that the xsl file imported 
> into the preprocess-created xsl stream also imports a xsl 
> file - and since I now have only a ByteStream as Source, I 
> lost the relativeness to that imported file. Is there another 
> way than giving an absolute address in that import? Like 
> setting a base url in FOP?
> 
> Kind regards,
> Kai
> 
> M. David Peterson schrieb:
> > On Tue, 29 May 2007 06:35:47 -0600, Kai Hackemesser 
> <kaha@xxxxxx> wrote:
> >
> >> Has anybody seen an example how to create xsl output with xsl?
> >
> > <?xml version="1.0"?>
> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> > version="1.0">
> >   <xsl:template match="/">
> >     <xsl:element name="xsl:stylesheet">
> >       <xsl:attribute
> > 
> name="xmlns:xsl">http://www.w3.org/1999/XSL/Transform</xsl:attribute>
> >       <xsl:attribute name="version">1.0</xsl:attribute>
> >       <xsl:element name="xsl:template">
> >         <xsl:attribute name="match">/</xsl:attribute>
> >         <xsl:element name="xsl:apply-templates"/>
> >       </xsl:element>
> >     </xsl:element>
> >   </xsl:template>
> > </xsl:stylesheet>

Current Thread