On Sat, 2006-04-29 at 00:06 -0700, Simon Fell wrote: > the few verbs lots of nouns approach is a very successful design > model, to do it in web services with a static schema requires the > schema/runtime stack to support choice or extension, and IMO extension > is much better supported than choice, YMMV.
Fair enough .. my statement was too strong :). However, I wanted to comment on the impact of this for Axis2- Axis2 is carefully designed with data binding intentionally kept *out* of the core Axis2 platform. ADB is just one of many data bindings we support, as you know. ADB was designed to cover the "80%" schema case .. we didn't start it to cover all of schema. Of course, as usual, its a slippery slope and we've added lots of stuff .. which is fine. But it is definitely not 100%. I think the problem is that we have WSDL2Java configured to go to ADB by default. IMO we should have it with no default data binding: just generate OM elements! If someone wants a data binding, they can pick between ADB, XMLBeans and JibX. I'm presuming the latter two will handle enterprise.wsdl fine as they're both much older and stable data binding technologies compared to ADB which is still a toddler in that space. Anyway, I'm not making excuses: We *DO* want Axis2/ADB to be able to handle widely used, public, big, WSDL files. As such, enterprise.wsdl is a key one to support. At the same time, we need to draw a line somewhere for 1.0. I would like to draw it at where we have ADB now and say that schema extensions and deserialization of instances which carry xsi:type to indicate the subtype is not yet supported with ADB. Its not that hard to support it (we just need a table of schema type -> class mappings hanging around in the generated code and to pay attention to xsi:type), but its a significant change and not one to embark on at this time IMO. Sanjiva.
