xsl-list
[Top] [All Lists]

Re: [xsl] resolving relative path without base

2007-05-30 01:53:38
Hi, Michael,

I tried that but wasn't successful. I have added an URI resolver to the transformer factory, because I want to lookup the xsl sources from different jar files. As you told I'v set systemID from the xsl source to an appropriate value, but the uri resolver get called with base=null and so I can't find it because href is an relative URI ("../../project.xsl"). How do I get my resolve method called with base != null, or href not relative?

Ciao!
Kai

Michael Kay schrieb:
Use StreamSource.setSystemId() to define the base URI.

Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Kai Hackemesser [mailto:kaha(_at_)gmx(_dot_)de] Sent: 29 May 2007 16:43
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)gmx(_dot_)de> 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
ame="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>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--