Hi all,
As most of you know already XML Beans is used as one of the databinding frameworks for Axis2. Although it was planned to add multiple framework support, most of the work has been done only for XMLBeans and I guess it is the practically usable one at the moment. However when integrating MTOM with databinding we have slight problems.

1. Use of the Xmime schema extension. have a look at the following piece of schema. (this is from http://www.w3.org/TR/xml-media-types/)
<?xml version="1.0" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns=" http://example.com/know-type"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
targetNamespace=" http://example.com/know-type">
<xs:import namespace="http://www.w3.org/2005/05/xmlmime"
schemaLocation=" http://www.w3.org/2005/05/xmlmime"/>
<xs:element name="JPEGPicture" type="xmime:base64Binary"
xmime:expectedContentTypes="image/jpeg" />
</xs:schema>
The xmime:expectedContentTypes attribute is the key here. As you can see this attribute says what is the expected type of the binary content. The right thing to do in the above case would be to generate the databind object and have it return an image object as the result of data binding depending on the expected content type. I'm not sure how much work has been done with XMLBeans (or any of the other databinding frameworks for that matter) regarding this but if the databinding framework is unaware of this, it seriously limits our ability to handle MTOM with databinding!

2. Optimizing given text elements.Currently the code generated stubs can work with byte arrays but sending content in optimized form is the problem. XMLBeans is the one who sees that particular objects are base64 binary (which can be optimized) but this information is burnt into the XMLBeans generated classes and there's no way to propogate it to the OM tree (at least I don't see a way yet). Hence when writing to the wire, we have no way of saying which character items to optimize. We can do a global optimization (all text nodes are optimized!) but i' m not sure whether that'll work at all since optimization assumes the content to be bas64 encoded (in which case it tries to decode!)

Any thoughts on how to deal with these problems ?

BTW I've cc'ed this to the XMLBeans list as well, perhaps the XBeans gurus can shed some light on this issue :)

--
Ajith Ranabahu


Reply via email to