Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1071

WSDL2C, ADB & xsi:type based deserialization

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.7.0
    • core/addressing
    • None

    Description

      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?

      Attachments

        1. polymorphism.patch
          40 kB
          Sérgio Gomes
        2. polymorphic.zip
          74 kB
          Dimuthu Gamage

        Activity

          People

            dimuthu Dimuthu Gamage
            smeder Sam Meder
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: