Re: [xsl] resolving relative path without base

Subject: Re: [xsl] resolving relative path without base
From: Kai Hackemesser <kaha@xxxxxx>
Date: Tue, 29 May 2007 17:42:50 +0200
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("/lrPreTransformHtml.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