You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Terry Brick <te...@yahoo.com> on 2004/06/02 18:10:15 UTC

Newbie: How to capture XML from custom class?

Hello,
I've just started using Cocoon (2.1) and so far I'm loving it.  The problem is that probably less
than 50% of my XML will be static.  The rest will be dynamic generated from SQL interaction, etc. 
I want to do all (or most) of my business logic in regular ol' Java classes and just spit out the
XML in the right places.  Ideally, I would like something like this...
<doc>
  <title>My Title</title>
  <content>
    <mynamespace:generate class="com.mycompany.businessobject1"/>
  </content>
</doc>

Where the businessobject1.toString() representation is used to fill in that section with XML and
where businessobject1 has access to the servlet context, request parameters, etc.
Anyway, I don't require it to be exactly as shown above, I'm just trying to illustrate my basic
requirements and am wondering what's the right approach in Cocoon.
It's probably obvious to existing users in the doc, but I'm just starting out and am having a hard
time getting some aspects of Cocoon.  Do I simply need to write a custom generator?  I don't want
to script things, but do I just need to use XSP to instantiate my class (but I need the servlet
request object)?
Could somebody please point me in the right direction?

Thanks!


	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Newbie: How to capture XML from custom class?

Posted by Bertrand Delacretaz <bd...@apache.org>.
Le 2 juin 04, à 18:10, Terry Brick a écrit :
> ...XML in the right places.  Ideally, I would like something like 
> this...
> <doc>
>   <title>My Title</title>
>   <content>
>     <mynamespace:generate class="com.mycompany.businessobject1"/>
>   </content>
> </doc>...

This is very similar to what the JXTemplateGenerator does, see 
http://cocoon.apache.org/2.1/userdocs/flow/jxtemplate.html

For examples, search for type="jx" in sitemap.xmap files. The tour 
block, for example, uses JX to generate XML out of java objects for the 
bean editor example.

-Bertrand






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Newbie: How to capture XML from custom class?

Posted by Adam Walsh <aw...@contal.net.au>.
Hi Terry,

I had a similar problem and used XSP with a couple of Java classes to 
generate the XML. Try sticking something like this in your XSP:

<xsp:logic>
    BusinessObject1 busOb = new BusinessObject1();
    busOb.setSomething(request.getParameter("something"));
    // do whatever else you need with the request object
   
    Document doc = null;
    try
    {
        DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        DocumentBuilder builder = factory.newDocumentBuilder();
        ByteArrayInputStream in = new 
ByteArrayInputStream(busOb.toString().getBytes("UTF8"));
        doc = builder.parse(new InputSource(in));
    }
    catch (Throwable t)
      {
              // do something with the error
          }
</xsp:logic>
<xsp:expr>doc.getDocumentElement()</xsp:expr>


Hope that helps.

Adam

Terry Brick wrote:

>Hello,
>I've just started using Cocoon (2.1) and so far I'm loving it.  The problem is that probably less
>than 50% of my XML will be static.  The rest will be dynamic generated from SQL interaction, etc. 
>I want to do all (or most) of my business logic in regular ol' Java classes and just spit out the
>XML in the right places.  Ideally, I would like something like this...
><doc>
>  <title>My Title</title>
>  <content>
>    <mynamespace:generate class="com.mycompany.businessobject1"/>
>  </content>
></doc>
>
>Where the businessobject1.toString() representation is used to fill in that section with XML and
>where businessobject1 has access to the servlet context, request parameters, etc.
>Anyway, I don't require it to be exactly as shown above, I'm just trying to illustrate my basic
>requirements and am wondering what's the right approach in Cocoon.
>It's probably obvious to existing users in the doc, but I'm just starting out and am having a hard
>time getting some aspects of Cocoon.  Do I simply need to write a custom generator?  I don't want
>to script things, but do I just need to use XSP to instantiate my class (but I need the servlet
>request object)?
>Could somebody please point me in the right direction?
>
>Thanks!
>
>
>	
>		
>__________________________________
>Do you Yahoo!?
>Friends.  Fun.  Try the all-new Yahoo! Messenger.
>http://messenger.yahoo.com/ 
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>For additional commands, e-mail: users-help@cocoon.apache.org
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org