Hi, 

I'm using flex 3.2 and trying to create a WebService in order to
communicate between a backend (which in java) and my flex application.

The WebService defines a sequence and one complex type in it.
The actual returned class by the WebService isn't the defined complex
type but an extension of that complex type.

for example:
   let say the web service has two methods getItem() and setItem(Item).

   The defined type is a copmlex type 'Item' and the actual used class
is a Table which is an extension of Item.


expected result should be that the decoded class will be from the
derived class and not from the defined type. (which isn't abstract).

actual result is that the decode class is from the defined complex
type Item and not the Table type.


(note, that the XMLEncoder did manage to encode a Table type and add
the appropriate xsi:type value.)

I've used the generation wizard in the flex builder and changed that
the Table class will implement the IXMLScehmaInstance interface and
that the returned xsiType will be the correct one.

The returned message does contains the correct xsi:type value and the
recordXSIType attribute of the XMLDecoder is set to true.


debuging the executions i've found that the problem seems to be not in
the SOAPDecoder but in the XMLDecoder.
when decoding the sequence the decoder decode each element as a
groupElement and then creates the context as defined in the schema and
not as received in the decoded message.

in the past week i've been digging through bugs of SOAPDecoder and
XMLDecoder and also trying to find any other references to this problem.


can you help me figure out if this logic should work in flex and how ?

thanx,
eyal.

Reply via email to