RE: [xsl] Using output URI resolver within a servlet

Subject: RE: [xsl] Using output URI resolver within a servlet
From: "Anita Lund" <anita.lund@xxxxxxx>
Date: Mon, 12 Apr 2004 16:27:59 +0200
Thanks very much for your reply.

I agree that running XSLT/frame is the most straight-forward way to go, but
that depends on submitting one HTTP request/frame, as you point out in your
message.

However, my problem is that my HTTP request returns an XML stream which
contains 1-N different components that the XSLT needs to splitt into as many
iframes.  I have this working using MSXML + JavaScript in the browser, but
was hoping that I could move the transformation to the server side by using
Saxon and xsl:result-document.

Had also some wild dreams about being able to forward the secondary
documents to the corresponding iframes (i.e. using an Emitter class) in
order to bypass the need to store the files on disk, which I guess is a bit
far-fetched in the context of servlets and HTTP requests...

So am I trying to do the impossible, or just the unwise?
Many thanks again,

Anita Lund


-----Original Message-----
From: Michael Kay [mailto:mhk@xxxxxxxxx]
Sent: Monday, April 12, 2004 2:55 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Using output URI resolver within a servlet


I'm not sure if this is the right way to go about this problem. The browser
will submit one HTTP request for each frame. I would normally be inclined to
run one XSLT transformation in response to each request from the browser,
generating the contents of that frame. The alternative, of generating all
the frames during one transformation, and then presumably keeping the
generated document somewhere (memory? disk?) until the browser requests it,
seems intrinsically more difficult to manage. Apart from anything else, it's
hard to know when to delete the documents to free up resources.

Michael Kay

> -----Original Message-----
> From: Anita Lund [mailto:anita.lund@xxxxxxx]
> Sent: 12 April 2004 11:40
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Using output URI resolver within a servlet
>
> Hi,
>
> I am trying to change the SaxonServlet so that it can handle
> a stylesheet
> creating multiple output documents using xsl:result-document.
>  I am using
> Saxon7-9-1 running on Windows2000, using tomcat 4.1 as
> servlet container.
>
> My goal is to return the main output directly to the browser via
> ServletOutputStream.
> The main output includes several iframes, which refer to HTML
> files written
> as secondary output documents during the XSL transformation.
>
> Currently, all output from the transformation (including
> xsl:result-document) is returned to the browser and no files
> are generated
> on the server.
>
> As far as I understand the problem has something to do with the URI
> resolver/systemId of the output stream.
>
> I have tried to set the systemId on the result object, and am
> currently
> trying to get the servlet to work using the
> UserOutputResolver from the Trax
> examples, without much luck ;)
>
> The href in xsl:result-document contains an absolute URI on the form:
> file:///localhost:8080/{$path}/{$filename}.html
>
> Has anyone tried this before with success?
>
> Many thanks for your help in advance!
> Anita Lund

Current Thread