[ 
https://issues.apache.org/jira/browse/AXIS2C-1071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dimuthu Gamage updated AXIS2C-1071:
-----------------------------------

    Attachment: polymorphic.zip

Commited the patch provided by Sergio(from revision 801306).

It is a really great patch. I wrote a simple test case (attached) and 
polymorphic types are working as expected  :) 

I had to do few changes though like,
1. adding "xsi:type" attribute at the serialization
2. there were variables declared in the middle of the blocks. That is not 
compiled in Visual Studio compilers.



> WSDL2C, ADB & xsi:type based deserialization
> --------------------------------------------
>
>                 Key: AXIS2C-1071
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1071
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/addressing
>            Reporter: Sam Meder
>            Assignee: Dimuthu Gamage
>         Attachments: polymorphic.zip, polymorphism.patch
>
>
> I have the problem of having to work with a wsdl interface the makes use of 
> type extensions and xsi:type. For example:
>          <complexType name="VirtualHardware">
>             <complexContent>
>                <extension base="vim25:DynamicData">
>                   <sequence>
>                      <element name="numCPU" type="xsd:int" />
>                      <element name="memoryMB" type="xsd:int" />
>                      <element name="device" type="vim25:VirtualDevice" 
> minOccurs="0" maxOccurs="unbounded" />
>                   </sequence>
>                </extension>
>             </complexContent>
>          </complexType>
> where the VirtualDevice type is extended in various ways to reflect different 
> kind of device types:
>          <complexType name="VirtualController">
>             <complexContent>
>                <extension base="vim25:VirtualDevice">
>                   <sequence>
>                      <element name="busNumber" type="xsd:int" />
>                      <element name="device" type="xsd:int" minOccurs="0" 
> maxOccurs="unbounded" />
>                   </sequence>
>                </extension>
>             </complexContent>
>          </complexType>
> The issue I am running into is that WSDL2C does not seem to support this kind 
> of xsi:type based type serialization/deserialization (which admittedly fits 
> really poorly with a non-object oriented language like C). You could probably 
> make it work by storing type information in the generated structs, combined 
> with a type registry.
> Any suggestions on workarounds other than using the XML model?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to