RE: [xsl] media-type setting in Java HttpServletResponse

Subject: RE: [xsl] media-type setting in Java HttpServletResponse
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 6 Jan 2006 09:21:02 -0000
You can try using the getOutputProperties() method on the Templates object
to read the media-type property set in xsl:output. It's not very
satisfactory (for example it doesn't handle XSLT 2.0 things like named
output declarations) and my own instinct would be to maintain this
information somewhere else - it doesn't really belong in the stylesheet, in
my view, because it doesn't affect the result tree or even the serialized
output. But it might work for you.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Ai / Hiro [mailto:i@xxxxxx] 
> Sent: 06 January 2006 05:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] media-type setting in Java HttpServletResponse
> 
> Hi list,
> 
> I'm using java servlet and XSLT 2.0 with Saxon-B 8.6.1 and 
> want to output the result of a transformation with a proper 
> content type/media type, using the @media-type attribute of 
> an <xsl:output/> element or <xsl:result-document/> element 
> that has the attribute or the @format attribute that refers 
> to a named <xsl:output/> element. However, the specified 
> media-type is not recognized this way, so, I have to use 
> HttpServletResponse.setContentType(), which needs to be used 
> before the transformation. Other attributes of xsl:output, 
> such as @encoding, work well, but @media-type does not, at 
> least with the following codes:
> 
>    public void doGet(HttpServletRequest req, 
> HttpServletResponse res) throws IOException {
>      ...
>      //PrintWriter out = res.getWriter(); // does not work
>      OutputStream out = res.getOutputStream(); // neither
>      try {
>        trans.transform(xmlSource, new StreamResult(out));
>      }
>      ...
>    }
> 
> Does anyone have a clue how to make this work?
> 
> Regards,
> --
> Ai
> 
> http://orz.cc/ (ja-JP, en-US;q=0.9)

Current Thread