Hi,

For the XML data transformation, sometimes we don't care about the element. For 
example, if we pass a Customer from JAXB to SDO, we only care about the type 
(content) of the data. To be tolerating the case that both target and source 
sides expect the same type but different elements, we use "adjustElementName". 

Ideally for JAXB2OMElement, we should do the same trick. But we have an issue 
with JAXB as follows:

Some JAXB classes are generated for global elements with @XmlRootElement 
annotation and the element QName is built into the JAXB metadata. The 
JAXB2OMElement uses the OMDataSource to lazily serialize JAXB data into XML 
stream. It would be difficult to adjust the element name at the stream level 
especially considering the performance penalty. Do you have any good ideas?

Thanks,
Raymond


From: Scott Kurz 
Sent: Sunday, July 06, 2008 5:32 PM
To: [email protected] 
Subject: databinding-jaxb-axiom doesn't do an adjustElementName


I'm noticing a difference in the JAXB->Axiom serialization produced by the new 
databinding-jaxb-axiom transform compared to the old transform (JAXB2Node, 
Node2XMLStreamReader,XMLStreamReader2OMElement).

The difference is caused by the fact that the older transform (before 
databinding-jaxb-axiom) had a call out to DOMHelper.adjustElementName() to, 
like the method name suggests, adjust the element name to the one calculated by 
tuscany-interfacedef processing, rather than relying only on JAXB APIs to 
calculate the interface name.

Before I go into detail with my test app, (which I think I want to change 
anyway), let me just ask this:  did we intend to make the same "adjustment" 
with databinding-jaxb-axiom?  

I'm not 100% sure of the reason for doing the adjustment in the older code, so 
I just wanted to start with that question before bothering with my test details.

Thanks,
Scott

Reply via email to