Raymond,

I finally found some time to take another look at this (though I haven't
updated my code in a couple weeks if you've done something new).

The problem I'm seeing is that the the newer DataObject2OMElement does not
write the xsi:type into XML whereas the older DataObject2XMLStreamReader
did.

This is a problem if I try when deserializing (i.e. converting from AXIOM to
SDO).    Interestingly, I'm experiencing a problem when I try to pass my SDO
as an input parm but not when I pass it as output.

The reason is, that, with input like the following in doc-lit-wrapped-style:

          <element name="myOperationName">
               <complexType>
                   <sequence>
                       <element name="id" type="xsd:string"/>
                       <element name="person" type="tns:Person"/>
                   </sequence>
               </complexType>
           </element>

the child input parms will be deserialized one-at-a-time with the <person>
element here being set as a document root element by the SDO/EMF
deserialization logic.     Apparently this logic throws up a
FeatureNotFoundException as it does not recognize the local element,
'person'.

On the other hand an output elem like this is no problem:

      <element name="getGreetingsResponse">
               <complexType>
                   <sequence>
                       <element name="getGreetingsReturn"
type="tns:Person"/>
                   </sequence>
               </complexType>
           </element>

since the root element on output deserialization is getGreetingsResponse,
not "getGreetingsReturn" of type 'tns:Person".

So, maybe I'll stop there in case someone knows what to do next (or has
fixed this in a newer code level).     However, I could provide more info if
that would help.

What is the rule defining when the xsi:type attr needs to appear in the SOAP
anyway?     Is there a spec one could point to or is it more complex than
that?

Thanks,
Scott

Reply via email to