Hi,
I'm having problems with a method using inheritance. I have the
following types in my WSDL:
<complexType name="BatchTestInfo">
<sequence>
<element name="estimatedRunningTime" type="xsd:long"/>
<element name="goldenVersion" type="xsd:int"/>
<element name="group" nillable="true" type="string"/>
<element name="groupPermissions" nillable="true"
type="tns1:BatchTestPermissions"/>
<element name="id" nillable="true" type="tns1:TestID"/>
<element name="name" nillable="true" type="string"/>
<element name="owner" nillable="true" type="string"/>
<element name="parentID" nillable="true" type="tns1:TestID"/>
<element name="worldPermissions" nillable="true"
type="tns1:BatchTestPermissions"/>
</sequence>
</complexType>
<complexType name="TestGroupInfo">
<complexContent>
<extension base="tns1:BatchTestInfo">
<sequence>
<element name="tests" nillable="true"
type="impl:ArrayOf_tns1_TestID"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="BatchTest">
<sequence>
<element name="id" nillable="true" type="tns1:TestID"/>
<element name="latest" nillable="true" type="tns1:Version"/>
<element name="modificationStamp" type="xsd:long"/>
<element name="versions" nillable="true"
type="impl:ArrayOf_tns1_Version"/>
<element name="info" nillable="true"
type="tns1:BatchTestInfo"/>
</sequence>
</complexType>
<complexType name="ArrayOf_tns1_BatchTest">
<sequence>
<element name="test" type="tns1:BatchTest" nillable="true"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<element name="retrieveModifiedBaseGroupsResult"
type="impl:ArrayOf_tns1_BatchTest"/>
With the retrieveModifiedBaseGroups returning the
retrieveModifiedBaseGroupsResult element. But for this particular call,
the BatchTest returned in the array contain TestGroupInfo as info
member, not simple BatchTestInfo. While I do see in the document that
the info does contain tests field which is from the TestGroupInfo type,
not the BatchTestInfo type, the returned class is still a
BatchTestInfoImpl (using xmlbeans to generate the databindings).
Here's part of the info I could gather by adding:
System.err.println("*** Doc: "+object);
System.err.println("*** BatchTest[] class:
"+((com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.messages.RetrieveModifiedBaseGroupsResultDocument)
object).getRetrieveModifiedBaseGroupsResult().getClass());
System.err.println("*** BatchTest class:
"+((com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.messages.RetrieveModifiedBaseGroupsResultDocument)
object).getRetrieveModifiedBaseGroupsResult().getTestArray(2).getClass());
System.err.println("*** BatchTest INfo class:
"+((com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.messages.RetrieveModifiedBaseGroupsResultDocument)
object).getRetrieveModifiedBaseGroupsResult().getTestArray(2).getInfo().getClass());
To the stub...
*** Doc: <retrieveModifiedBaseGroupsResult
xmlns="http://messages.data.ws.qa.taw.convera.com">
<test xmlns="">
<id xmlns="http://data.ws.qa.taw.convera.com">
<UID>0</UID>
<type>
<category xmlns="">Group</category>
<name xmlns="">State</name>
</type>
</id>
<latest nil="true" xmlns="http://data.ws.qa.taw.convera.com"/>
<modificationStamp
xmlns="http://data.ws.qa.taw.convera.com">1135352935419</modificationStamp>
<versions nil="true" xmlns="http://data.ws.qa.taw.convera.com"/>
<info xmlns="http://data.ws.qa.taw.convera.com">
<estimatedRunningTime>0</estimatedRunningTime>
<goldenVersion>0</goldenVersion>
<group>admin</group>
<groupPermissions>
<executable>false</executable>
<readable>true</readable>
<writable>false</writable>
</groupPermissions>
<id>
<UID>0</UID>
<type>
<category xmlns="">Group</category>
<name xmlns="">State</name>
</type>
</id>
<name>State</name>
<owner>QATool</owner>
<parentID nil="true"/>
<worldPermissions>
<executable>false</executable>
<readable>true</readable>
<writable>false</writable>
</worldPermissions>
<tests/>
</info>
</test>
...
<test xmlns="">
<id xmlns="http://data.ws.qa.taw.convera.com">
<UID>0</UID>
<type>
<category xmlns="">Group</category>
<name xmlns="">Ontology</name>
</type>
</id>
<latest nil="true" xmlns="http://data.ws.qa.taw.convera.com"/>
<modificationStamp
xmlns="http://data.ws.qa.taw.convera.com">1136406011202</modificationStamp>
<versions nil="true" xmlns="http://data.ws.qa.taw.convera.com"/>
<info xmlns="http://data.ws.qa.taw.convera.com">
<estimatedRunningTime>0</estimatedRunningTime>
<goldenVersion>0</goldenVersion>
<group>admin</group>
<groupPermissions>
<executable>false</executable>
<readable>true</readable>
<writable>false</writable>
</groupPermissions>
<id>
<UID>0</UID>
<type>
<category xmlns="">Group</category>
<name xmlns="">Ontology</name>
</type>
</id>
<name>Ontology</name>
<owner>QATool</owner>
<parentID nil="true"/>
<worldPermissions>
<executable>false</executable>
<readable>true</readable>
<writable>false</writable>
</worldPermissions>
<tests>
<id xmlns="">
<UID>1</UID>
<type>
<category>Group</category>
<name>Ontology</name>
</type>
</id>
...
<id xmlns="">
<UID>11</UID>
<type>
<category>Ontology</category>
<name>Facet</name>
</type>
</id>
</tests>
</info>
</test>
</retrieveModifiedBaseGroupsResult>
*** BatchTest[] class: class
com.convera.taw.qa.ws.databinding.steve.impl.ArrayOfTns1BatchTestImpl
*** BatchTest class: class
com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.impl.BatchTestImpl
*** BatchTest INfo class: class
com.convera.taw.qa.ws.databinding.com.convera.taw.qa.ws.data.impl.BatchTestInfoImpl
Any help would be appreciated.
Thanks,
Steve