Hi,

could you try with another kind of representations (not 
DomRepresentation) such as FileRepresentation or StringRepresentation 
for both XML and XSLT files?

Representation xmlRepresentation = new 
FileRepresentation("/path/to/file.xml", MediaType.TEXT_XML));
Representation xsltRepresentation = new 
FileRepresentation("/path/to/file.xsl", MediaType.TEXT_XML));
Representation  htmlRepresentation = new 
TransformRepresentation(xmlRepresentation, xsltRepresentation);

htmlRepresentation.write(System.out);

best regards,
Thierry Boileau

> Hi --
>
> I have a router in my createRoot method which looks like:
>       router.attach("/{device}/{format}/filelist",                            
>             FilelistResource.class);
>
> The goal is to either return a file listing in one of many formats depending 
> on how {format} is set (html,xml) for right now.  In my Resource constructor 
> I set the MediaType to either TEXT_XML or TEXT_HTML.  
>
> In my represent method I branch based on the type of representation I need to 
> return.  I select the filelist in an xml format, immediately returning it in 
> a DomRepresentation if xml.  My trouble is using the transformer to generate 
> output using my xslt and xml.  
>               
> my represent logic looks like this for the html generation:
>       
> // get xml doc containing file list to show
> DomRepresentation xmlRepresentation = getFileListXML();
>                       
>                       // need to transform to html
>                       DomRepresentation xsltRepresentation = 
>                               new DomRepresentation(MediaType.TEXT_XML);
>                       
>                       // get a factory to build a document
>                       DocumentBuilderFactory factory = 
>                               DocumentBuilderFactory.newInstance();
>                       factory.setNamespaceAware(true);
>                       
>                       // create a new document builder
>                       DocumentBuilder docBldr = 
>                               factory.newDocumentBuilder();
>                       Document xsltDoc = xsltRepresentation.getDocument();
>                       
>                       //xsltRepresentation.setDocument(xsltDoc);
>                       // read in the xsl document
>                       xsltDoc = docBldr.parse("index.xsl");
>                       
>                               
> // create a transformer                       Transformer transformer = 
>                               new Transformer(Transformer.MODE_RESPONSE,
>                                                        xsltRepresentation);
>                       transformer.setResultMediaType(MediaType.TEXT_HTML);
>                       //DomRepresentation htmlRepresentation = 
>                       return  transformer.transform(xmlRepresentation);
>
> ....
> The output error is as follows
> ---------------
> [Fatal Error] :1:55: Premature end of file.
> ERROR:  'Premature end of file.'
> FATAL ERROR:  'Could not compile stylesheet'
>
>
> Thanks for any help.. I've been stuck on this for quite sometime and dug just 
> about everywhere to find a way to use the transformer class.
>
> Thanks
>
> ------------------------------------------------------
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1249166
>
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=1262008

Reply via email to