Hi,
Our WSDL has defined a base class and three corresponding subclass. The base
class is specified inside another complex type. After my client receives the
SOAP response, I try to extract the data from the subtypes by using
instanceof. However the type is always the base class and I could never get
the value from my subclass.
Here is an excerpt of the WSDL:
<s:complexType name="MailboxTypeInformation">
<s:complexContent mixed="false">
<s:extension base="s1:IMailboxTypeData">
<s:attribute name="InformationBehavior"
type="InformationBehavior" use="required" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:simpleType name="InformationBehavior">
<s:restriction base="s:string">
<s:enumeration value="Transfer" />
<s:enumeration value="Hangup" />
</s:restriction>
</s:simpleType>
<s:complexType name="MailboxTypeApplication">
<s:complexContent mixed="false">
<s:extension base="s1:IMailboxTypeData">
<s:attribute name="ApplicationType" type="ApplicationType"
use="required" />
</s:extension>
</s:complexContent>
</s:complexType>
<s:simpleType name="ApplicationType">
<s:restriction base="s:string">
<s:enumeration value="VXML" />
<s:enumeration value="xHMI" />
</s:restriction>
</s:simpleType>
<s:complexType name="MailboxTypeNormal">
<s:complexContent mixed="false">
<s:extension base="s1:IMailboxTypeData" />
</s:complexContent>
</s:complexType>
<s:complexType name="VoiceItemXml">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FULLNAME"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FIRSTNAME"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="LASTNAME"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="USERNAME"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="HOMEPHONE"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="WORKPHONE"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CELLPHONE"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ID" type="s:string"
/>
<s:element minOccurs="0" maxOccurs="1" name="EMAILADDRESS"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="DEPARTMENT"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Mailbox"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="PronounceableName"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="SiteID"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="WorkExtension"
type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="COS" type="s:long" />
<s:element minOccurs="1" maxOccurs="1" name="AutoAttendantEnabled"
type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="VuiEnabled"
type="s1:FeatureEnabledXml" />
<s:element minOccurs="1" maxOccurs="1" name="VoiceMailEnabled"
type="s1:FeatureEnabledXml" />
<s:element minOccurs="1" maxOccurs="1" name="MobileAccessEnabled"
type="s1:FeatureEnabledXml" />
<s:element minOccurs="1" maxOccurs="1" name="BadLogins"
type="s:long" />
<s:element minOccurs="1" maxOccurs="1" name="LockedOut"
type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="AttendantDestination"
type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="ForceChangeOfPINCode"
type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="MobileGatewayID"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AddlExt1"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AddlExt2"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AddlExt3"
type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MailboxType"
type="s1:IMailboxTypeData" />
</s:sequence>
</s:complexType>
<s:complexType name="IMailboxTypeData">
<s:attribute name="Type" type="s1:MailboxType" use="required" />
</s:complexType>
<s:simpleType name="MailboxType">
<s:restriction base="s:string">
<s:enumeration value="Normal" />
<s:enumeration value="Application" />
<s:enumeration value="Information" />
</s:restriction>
</s:simpleType>
The SOAP response contains the following data:
- <CONTACT>
<FULLNAME>Adomo Schedule</FULLNAME>
<LASTNAME>Adomo Schedule</LASTNAME>
<WORKPHONE>8972</WORKPHONE>
<ID>4588e7d018fe404bb2ea618ced760e92</ID>
<EMAILADDRESS>Adomo [EMAIL PROTECTED]</EMAILADDRESS>
<Mailbox>8972</Mailbox>
<SiteID>2</SiteID>
<WorkExtension>8972</WorkExtension>
<COS>0</COS>
<AutoAttendantEnabled>true</AutoAttendantEnabled>
<VuiEnabled>no</VuiEnabled>
<VoiceMailEnabled>yes</VoiceMailEnabled>
<MobileAccessEnabled>no</MobileAccessEnabled>
<BadLogins>0</BadLogins>
<LockedOut>false</LockedOut>
<ForceChangeOfPINCode>false</ForceChangeOfPINCode>
<MailboxType xsi:type="MailboxTypeApplication" Type="Application"
ApplicationType="VXML" />
</CONTACT>
The WSDL2Java generates classes:
IMailboxTypeData
MailboxTypeApplication
MailboxTypeInformation
MailboxTypeNormal
MailboxType
In my debug session, I put breakpoints in all the functions in
MailboxTypeApplication but it never stops there. Instead it stops at one of
function in IMailboxTypeData.
Any help would be greatly appreciated!
Thanks,
Lisa
--
View this message in context:
http://www.nabble.com/Axis-1.4-Inheritence-Polymorphism-Support-tp20159270p20159270.html
Sent from the Axis - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]