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

Subject: RE: [xsl] Using output URI resolver within a servlet
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 12 Apr 2004 22:55:22 +0100
Using IFRAME implies you have multiple HTML documents with different URIs.
You can't (as far as I know) deliver multiple HTML documents with different
URIs in response to a single HTTP request. I may have misunderstood what you
are attempting, but it sounds as if this is what you are trying to do.

Michael Kay 

> -----Original Message-----
> From: Anita Lund [mailto:anita.lund@xxxxxxx] 
> Sent: 12 April 2004 14:28
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Using output URI resolver within a servlet
> 
> 
> 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