Hi,

This is part of the changes that we move toward using the JAXWS mapping rules to map remotable java interface to WSDL. The element names are derived from the java method signature. For example, if we have the following interface:

public interface MyService {
   AddressSDO getAddress(CustomerSDO customer);
}

We'll have "arg0" for customer and "return" for the return value.

With this, we may end up with a SDO as:

<arg0 xsi:type="ns:Customer" ...>...</arg0>

Assuming ns:Customer is a global type and SDO should be able to deserialize it. But it seems that SDO can only handle:

<sdo:dataObject xmlns:sdo="commonj.sdo" xsi:type="ns:Customer" ...></sdo:dataObject>

So I think it is either a SDO bug or feature request. We can create a simple testcase in SDO without any SCA code.

Thanks,
Raymond
--------------------------------------------------
From: "Scott Kurz" <[EMAIL PROTECTED]>
Sent: Tuesday, February 26, 2008 8:28 PM
To: <[email protected]>
Subject: why does SDODatabinding set up a default element ?

Question:

Way back in October in r589154 SDODataBinding.introspect was changed to
propagate the Java dflt elem QName into the XMLType logical with code that
looks like:

       Object logical = dataType.getLogical();
       if (logical instanceof XMLType) {
           elementName = ((XMLType)logical).getElementName();
       }
       dataType.setLogical(new XMLType(elementName, xmlType));

I'm noticing this breaks some code I had which was relying on the default
behavior in which DataObject2XMLStreamReader would call
SDOContextHelper.getElement() and get back the default elem QName of {
commonj.sdo}dataObject.

(I also noticed when I was going from SDO->AXIOM I didn't have this issue
since the unwrapped->wrapped path in Output2OutputTransformer grabbed the
elem name from the AXIOM/WSDL)

Anyway.. it seems that when I later do XMLStreamReader2DataObject now with
the new dflt elem, the SDO I get is not recognized as matching the
particular SDO type which it should, and so I end up with an instance of
type AnyTypeDataObjectImpl instead of, say, a PersonImpl type.

Maybe it would help me adjust if I could learn what was gained from this
switch.

Could anyone (Raymond) kindly explain please?

Thanks, Scott


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to