Hi list,

I use a webservice method that needs a collection of a certain type.
This type is an abstract class of which 2 implementations exist. If I
call this method and pass in an arraycollection with 2 instances (one
for each implementation), it occurs that the SOAP request being
created ignores the fact that it concerns a subclass. In other words
the only thing included in the webservice request are the fields from
the abstract class, and none of the fields of the subclass.
There is nothing wrong with the wsdl because when I test the same
thing with a java client, everything works perfectly (!)

Here's an extract of the wsdl:

...
<xsd:element name="getSongsForContext">
 <xsd:complexType>
  <xsd:sequence>
   ...
   <xsd:element maxOccurs="unbounded" minOccurs="0"
name="changeableParameter" type="tun:ChangeableParameter"/>
   ...
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>
...
<xsd:complexType name="ChangeableIntervalParameter">
 <xsd:complexContent>
  <xsd:extension base="tun:ChangeableParameter">
   <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="minimum"
type="xsd:float"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="maximum"
type="xsd:float"/>
    <xsd:element maxOccurs="1" minOccurs="0" name="step"
type="xsd:float"/>
   </xsd:sequence>
  </xsd:extension>
 </xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ChangeableSelectionParameter">
 <xsd:complexContent>
  <xsd:extension base="tun:ChangeableParameter">
   <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" name="value"
type="tun:Value"/>
   </xsd:sequence>
  </xsd:extension>
 </xsd:complexContent>
</xsd:complexType>
...




Reply via email to