Subject: RE: [xsl] resolving relative path without base From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 30 May 2007 10:47:54 +0100 |
I would expect that when you call setSystemID() on the StreamSource, the URIResolver would see that value in the "base" argument. What product are you using? Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Kai Hackemesser [mailto:kaha@xxxxxx] > Sent: 30 May 2007 09:53 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] resolving relative path without base > > 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@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 > >> > 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>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] resolving relative path w, Kai Hackemesser | Thread | Re: [xsl] resolving relative path w, Kai Hackemesser |
Re: [xsl] transform xml using xsl i, Kai Hackemesser | Date | RE: [xsl] transform xml using xsl i, Michael Kay |
Month |