Hi Fabio and Thomas,

Thanks a lot.

I took some time to look at how to produce XML output in Xwiki REST API.

The job of marshaling Java object to XML is done by 
restlet.ext.JAXBProvider via Restlet 1.1.10.
|@Provider
@Consumes("application/xml")
@Produces("application/xml")
class JAXBProvider extends AbstractProvider|

Similarly, our HTMLProvider can also be devised if we want to provide a 
HTML output.
|@Provider
@Produces("text/html")
class HTMLProvider extends AbstractProvider|

As discussed earlier, another issue is about html page's format and content.
An easy way would be to transform XML to html page via XSLT.
I also checked the current version of Restlet (2.0.7 stable). They added 
Representation class in v2.0 and plan to add Representation 
transformation (i.e., XML -> HTML) in version v2.2 via XSLT. see 
http://wiki.restlet.org/developers/175-restlet.html
Therefore, I think XSLT approach might work for plain html.

Take a simple page as an example,

|<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<page xmlns="http://www.xwiki.org";>
   <title>New title</title>
   <content>New content</content>
</page>|

What would be the output of html page?

|<html>
<H1>Page<H1>
<p>namespace: http://www.xwiki.org</p>
<p>title: New title</p>
<p>content: New content</p>
</html>
|
Best regards
Jun Han

On 5/17/2011 5:29 AM, Fabio Mancinelli wrote:
> Hi Jun
>
> On Tue, May 17, 2011 at 9:16 AM, Jun Han<[email protected]>  wrote:
>> Dear all,
>>
>> Regarding REST API for XWiki,
>> Source codes are in
>> xwiki-trunk/xwiki-platform/xwiki-platform-core/xwiki-platform-rest.
>> Test codes are in
>> xwiki-trunk/xwiki-enterprise/xwiki-enterprise-test/xwiki-enterprise-test-rest.
>> I hope I am looking at the correct places.
>>
> Correct.
>
>> XWiki-5820 is related to adding an endpoint for providing a rendered
>> version of the page.
>> Does REST API need to invoke xwiki-rendering library in order to render
>> the html content?
>>
> There are several getRenderedContent() methods in the Document
> class... It should be enough to call them.
>
>> The current implementation will return various resources, (e.g., pages,
>> tags, attachments), and produce XML responses in most cases.
>> In XWiki-5820, only page resources will be rendered, right?
>>
>> A straight-forward way may be to add additional end point (getPage and
>> getPageInHTML), and they will be invoked according to different Accept
>> http headers.
>>
>> It would be great that an example can be given to show the expected
>> input and output.
>>
> Actually this is a good question...
>
> The original purpose of this resource was to provide a rendered
> version of a page (typically in HTML).
> Now, provided that we render in HTML, how this HTML should be returned?
>
> If we render with the complete skin we would end up with the same
> content already available from http://.../xwiki/bin/view/Space/Page
> So the idea was to return the "bare HTML" that could be emdedded in
> other contexts.
>
> For the input we can consider Accept headers and media parameters
> (already handled by the backend)
>
> Thanks,
> Fabio
>
>> Best regards
>> Jun Han
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to