cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Irv Salisbury <>
Subject XMLBeans and request attributes
Date Fri, 11 Feb 2005 19:56:48 GMT
This is really a follow up to some questions I asked earlier about XML
in request attributes.  I wanted to show how I went about solving what
I needed, and to get feedback if there is a better way.

To recap, my basic problem was that I wanted to call internal
pipelines and pass them XML.  The cocoon: protocol does not support
POST, so the easiest way I was told to use request attributes.  I
decided to incorporate XMLBeans into the mix to make my life easier.

So, all of my business objects in the system are XMLBeans that have
been generated from a set of XMLSchema files.  I have a series of
internal pipelines that can generate XML of these schemas.  To "pass"
the objects around, I use a combination of flowscript and a generator
I wrote that generates XML from a request attribute that happens to be
an XMLObject.  (Borrowing from the RequestAttributeGenerator)

So, here is a simple flow snippet:

        var sessionInfo = getSessionInfo();
	cocoon.request.setAttribute( "sessionInfo", sessionInfo );
 	cocoon.sendPage( "internal/style/catalog" );

So, the goal of the getSessionInfo call is to create a SessionInfo
object, which happens to be an XMLBeans object.  Here is the
getSessionInfo method:

  function getSessionInfo() {
	var pipelineUtil = cocoon.createObject( PipelineUtil );
        var xmlSaxHandler = 
SessionInfoDocument.type, null );
                  xmlSaxHandler.getContentHandler() );
         var sessionInfo = xmlSaxHandler.getObject();
	return sessionInfo;

Then, my generator for internal/style/catalog is such:

         <map:generate type="xmlbeansAttribute">
           <map:parameter name="attributeName" value="sessionInfo"/>

This really seems to work great.  Has anyone had experience with doing
this before?  Does this seem like a good idea?  Anything I am missing

The main reason for choosing XMLBeans was the ability to go back and
forth from Java - XML easily.  Boy, if this was merged with Hibernate,
that would be something!

I realize I could do this with straight Java objects and the
JXTemplateGenerator, but I really need everything in the Java object
to be turned into XML.  XMLBeans seemed the easiest way to do this.

Thanks for any advice.


View raw message