ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Nodet <guillaume.no...@worldonline.fr>
Subject Re: BPEL Object Model and Parser
Date Mon, 01 May 2006 23:28:40 GMT
I have checked in a simple m2 project so that one can take a look at the 
classes generated by jaxb2 from the bpel xsd schema.
This is available at: 
http://svn.apache.org/repos/asf/incubator/ode/scratch/ode/bpel-jaxb/
Just run 'mvn install' and find the generated code in 'target/jaxb-source'.

This is indeed close to api and has several benefits:
  * nothing to maintain -- and thus bug free, unless jaxb2 is bugged ;)
  * automatically handle extensions (by jaxb2 framework)
  * handle several xml input types: StaX, DOM, SAX or any JAXP Source
  * able to marshal the data objects back to xml
However, there are also drawbacks:
  * no tight control over the api (though we should be able to really 
override the jaxb generation through xml configuration files)
  * do not use interfaces (jaxb2 should be able to generate interfaces 
for complex types, but i haven't succeeded)

We could easily plug in a semantic validator in addition to the schema 
validation provided by the xml parser used.

Cheers,
Guillaume Nodet

Paul R Brown wrote:

>
> Hi, Guillaume --
>
>> I'd like this api to capture the full xml infoset if possible.
>> What I mean is that there are places in the bpel schema where  
>> extensions are permitted (attributes and/or elements), and I think  
>> it could be usefull to keep then (instead of just ignoring them).
>> So I think both modules could be enhanced ...
>
>
> I completely agree about the extensions, and that was on the list of  
> to-do's at the time.  It should be possible to do at runtime by  
> enhancing the abstract syntax structure that the bpel-parser uses to  
> do its work.
>
> Ideally, the way that this would be done would be to add to the BOM  
> to allow it to capture extension attributes and elements.  There  
> would also be some requirements around navigation of the tree so that  
> extension processors can move around in the tree.
>
> I'm willing to sketch out and/or implement the changes that would be  
> needed.
>
>> Alternatively, this could be easily handled by an xml / object  
>> mapping tool like jaxb2 (or xmlbeans) ...
>> Jaxb2 is very simple, generates nice pojos (this is not the case  
>> with xmlbeans) and afaik, both handles unspecified extensions to  
>> schemas...
>> Or even a stax based parsing would  be great (sax is such a  
>> nightmare compared to pull parsing..).
>
>
> JAXB v2 wasn't available (with a suitable license) when we were  
> originally working on PXE, so that was ruled out.
>
> StAX parsing won't permit schema validation, so that's a no-go  
> there.  And schema validation isn't truly enough, as there are valid  
> but illegal BPEL processes.
>
> I wrote a blog entry about the thought process that went into it:
>
> http://mult.ifario.us/articles/2006/02/05/populating-a-java-object- 
> model-from-xml
>
> -- 
> Paul R Brown
> paulrbrown@gmail.com
> http://mult.ifario.us/
>
>
>
>

Mime
View raw message