Subject: RE: RE: Saxon servlet and xsl:result-document (multiple documents) problem
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 9 Apr 2004 19:56:32 +0100
|
In my own tests, I haven't managed to persuade Java to create a writeable
file connection for any kind of URI other than a file:/ URI. I would expect
to get an error message if you use an http:// URI, and I'm a little
surprised that you don't get an error, but I wouldn't expect it to succeed.
You can always write your own OutputURIResolver that intercepts any kind of
URI, of course.
Michael Kay
> -----Original Message-----
> From: xml4pharma@xxxxxxxxxxxxxxxx
> [mailto:xml4pharma@xxxxxxxxxxxxxxxx]
> Sent: 09 April 2004 16:42
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: RE: Saxon servlet and xsl:result-document
> (multiple documents) problem
>
>
> Many thanks, it already helped me somewhat further.
>
> So I did the following in my stylesheet:
>
> <xsl:variable name="pos_as_string" select="string(position())" />
> <xsl:variable name="file"
> select="concat('http://localhost:8080/servlets-examples/file',
> $pos_as_string,'.html')"
> />
> <xsl:result-document href="{$file}">
> <!-- do everything needed -->
> </xsl:result-document>
>
> I also use <xsl:message> to check the value of $file
> and see in the Tomcat logs:
> "Creating file http://localhost:8080/servlets-examples/file1.html"
> (generated by the xsl:message), and
> "Writing to http://localhost:8080/servlets-examples/file1.html"
> (generated by the SaxonServlet after adding FeatureKeys.TIMING
> according to your suggestion).
>
> However, nothing seems to be written.
>
> I also deployed everything to my public Linux webserver (of course
> adapting the localhost to the real URL) and did 'chmod 777
> servlets-examples' to ensure that everything has write access to the
> directory.
>
> In the Tomcat loggings I see the same things ("writing to ...
> messages"), but also there I see nothing created.
>
> Any idea what I am doing wrong ?
>
> Jozef
>
> P.S. I did not change anything in the "new StreamResult(out)" of the
> SaxonServlet as I did not entirely understand your suggestion.
>
> --------------------------------
>
>
>
> Michael Kay <mhk@xxxxxxxxx> schrieb am 08.04.2004, 22:54:41:
> > Firstly, I think you will need to use absolute URIs in the
> href attribute.
> > If you use relative URIs, there's nothing really for them
> to be resolved
> > against.
> >
> > Secondly, the sample servlet uses "new StreamResult(out)"
> as the transform
> > destination. I think you may have to change this so the
> systemId on the
> > result object is set.
> >
> > Finally, for diagnostics, try setting the
> FeatureKeys.TIMING feature on the
> > TransformerFactory. This causes Saxon to trace the names of
> secondary output
> > files to System.err, which will probably end up in the
> servlet container's
> > log file.
> >
> > Michael Kay
> >
> > > -----Original Message-----
> > > From: xml4pharma@xxxxxxxxxxxxxxxx
> > > [mailto:xml4pharma@xxxxxxxxxxxxxxxx]
> > > Sent: 08 April 2004 19:16
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: Saxon servlet and xsl:result-document
> > > (multiple documents) problem
> > >
> > >
> > > I have a stylesheet that creates several output documents (using
> > > multiple xsl:result-document). It works fine with Saxon from line
> > > command.
> > >
> > > Now I want to use the SaxonServlet to have it generated on
> > > the server.
> > > I tried several things for defining the URI, but I can't see any
> > > documents being written on the server (at the moment I am
> still using
> > > http://localhost:8080/test on my Windows 2000 computer).
> > > Can anyone tell me how I have to define the output path
> so that the
> > > files are really created on the server ?
> > > Or do I have to change anything in the SaxonServlet ?
> > >
> > > Many thanks in advance
> > >
> > > Jozef Aerts
> > > xml4pharma@xxxxxxxxxxxxxxxx
|