I went back to the spec, and as far as I can see now you're right - the JAX-RPC spec does *not* force use of SAX. The reference implementation is built around SAX (as is Axis), but that's not the same thing at all. I apologize for the misinformation on this - it may have been because it's been promised that JAX-RPC will support JAXB, and JAXB requires SAX support (it allows other alternatives as implementation-dependent optional features, but requires that all implementations include SAX support).

Thanks for pointing this out, Brian. The spec is a lot more general than I remembered. And I'm wearing egg on my face for not double checking before pointing the finger... is egg good for the complexion? ;-)

On the continuing discussion of push vs pull parsing and which is faster, I'm going to refrain from any more emails on this topic any time soon. For those who are interested in actual performance results for SAX-based deserialization of objects (data binding unmarshalling) vs an experimental pull parser approach see my article at http://www-106.ibm.com/developerworks/library/x-databdopt2/

- Dennis

Brian Ewins wrote:

Going back (way back) into this thread -

Anne Thomas Manes wrote:
"We had another discussion on this list [1] recently about performance. The JAX-RPC spec forces the use of SAX, which isn't the most efficient way to parse structured messages. http://marc.theaimsgroup.com/?l=axis-user&m=104429792424850&w=2";


In the email referred to, Dennis Sosnoski says:
"For instance, JAX-RPC is based on SAX parsing which is
pretty horrible for structured data - you have to maintain state in your
handlers,..."

But the JAX-RPC spec says:
"Note that the type mapping framework does not require an implementation of a JAXRPC runtime system to use a specific XML processing mechanism. For example, a JAXRPC implementation may use a streaming pull parser for performance efficient XML processing. DOM or SAX based deserializers may still be developed and plugged into the extensible type mapping framework provided by this JAX-RPC implementation." (jaxrpc-1.0-fr, Section 15.2)


So my question is - is the spec right here? Or are Dennis and Anne referring to some intrinsic difficulty with the JAX-RPC apis that prevent them being used on top of XMLPULL?

Cheers,
    Baz




Reply via email to