On Sep 7, 2006, at 9:32 AM, Raymond Feng wrote:
2) Identify parameters that are required to be transformed?

From the wiring fabrics, the databinding interceptor receives an Object[] as the input and produce an Object as the output. We need to figure out which parameter needs to be transformed.

The message payload is actually Object as input and Object as output. In a invoke from Java the input Object starts out as an Object[] but that may change as the message flows through the wire; conversely a binding may start off with the input Object as an Object (e.g. the OMElement at the root of the message) that needs to be converted to a Object[] for invoking a Java component.


Who owns the knowledge about what data structure (Object[] or something else) is for the payload? Should the ServiceContract provide this metadata? I don't think databindings give us the clue.

I think so - this will be part of the datatype definition (physically its a Object[], logically it is an array of Classes.


There are two issues here:

a) The logical type should be the XSD type QName which is not the same as the element QName. Should we capture the element QName(s) in the DataType metadata or define a new model such as Parameter?

b) For doc-lit wrapped WSDL operations, we only have the top-level wrapper element name by introspecting the WSDL portType/operation. Without loading the XML schema, we cannot figure out all the first- level child elements which are mapped into java parameters.

AIUI this is converting between a single object (the wrapper element) and a collection of objects (the parameters) and vice versa. I think previously we did this purely based on child ordering - can we do the same now?


3) Assemble the transformed Object[] into a protocol-specific message

I assume it's the responsiblity of the binding builders to assemble the Object[] into a protocol-specific message and vice versa. For example, the Axis2 web service binding builder will take the Object [] with complex types represented as OMElement(s) and create the OM- based SOAPEnvelope. It will also has to take care of wrapping/ unwrapping for dcument-literal wrapped WSDL operations.

I think the conversion between Object[] (from Java) to single OMElement (for doc-lit wsdl) would be handled by a transform rather than the binding.


So are we looking for two types of transformations here?

a) ServiceContract-based payload structure transformation (for example, Object[] --> OMElement) b) Data type transformation (for example, SDOCustomer --> JAXBCustomer)

Yes although I would not expect them to be treated differently in the pipeline.
--
Jeremy

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

Reply via email to