2008/7/21 Amila Suriarachchi <[EMAIL PROTECTED]>: > > > On Mon, Jul 21, 2008 at 8:26 AM, Matt Wlazlo <[EMAIL PROTECTED]> wrote: >> >> Hi, >> >> I'm having trouble with passing inheritance types. I've followed this >> url: >> http://www.ibm.com/developerworks/websphere/techjournal/0401_brown/brown.html >> as a guide to WSDL inheritance, and everything seems to be working >> except that when it comes time to do a typecast, there doesn't appear >> to be any relationship of the objects... >> >> I think it will be easier to explain the situation in code: >> >> In my WSDL I have the following: >> >> <simpleType name="idType"> >> <restriction base="xsd:string"> >> <enumeration value="INFNUM" /> >> <enumeration value="SESSNUM" /> >> <enumeration value="CLIENTCD" /> >> </restriction> >> </simpleType> >> <complexType name="idSet"> >> <sequence> >> <element maxOccurs="1" minOccurs="1" name="idtype" >> type="xsd1:idType" /> >> <element maxOccurs="1" minOccurs="1" name="idvalue" >> type="xsd:string" /> >> </sequence> >> </complexType> >> <complexType name="idSetSess"> >> <complexContent> >> <extension base="xsd1:idSet"> >> <sequence> >> <element name="seqNum" type="xsd:string" /> >> </sequence> >> </extension> >> </complexContent> >> </complexType> >> ............. >> ............. >> <element name="get"> >> <complexType> >> <sequence> >> <element minOccurs="1" maxOccurs="unbounded" >> name="id" >> nillable="true" type="xsd1:idSet" >> /> >> </sequence> >> </complexType> >> </element> >> >> >> Then in my server code (the error is here): >> public get(IdSet[] ids) { >> ... >> for(int i = 0; i < id.length; i++) { >> IdSet id = ids[i]; >> if(id.getIdtype() == IdType.SESSNUM) { >> if(!(id instanceof IdSetSess)) >> throw new Exception("IdSetSess not used when IdType set to >> SESSNUM!"); // XXX id should be an instance of IdSetSess >> ..... >> ..... >> } >> } >> } >> >> On the wire, an example request is: >> <soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> >> <soapenv:Body> >> <xsd:get xmlns:xsd="http://osr.nsw.gov.au/pillar/gen/xsd"> >> <xsd:id xsi:type="xsd:idSetSess" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> <xsd:idtype>SESSNUM</xsd:idtype> >> <xsd:idvalue>20004465</xsd:idvalue> >> <xsd:seqNum>141</xsd:seqNum> >> </xsd:id> >> <xsd:id> >> <xsd:idtype>INFNUM</xsd:idtype> >> <xsd:idvalue>7151999517</xsd:idvalue> >> </xsd:id> >> </xsd:get> >> </soapenv:Body> >> </soapenv:Envelope> >> >> >> >> The request on the wire looks to be to be OK. The expression "id >> instanceof IdSetSess" is always false, whereas I would expect it to be >> true. >> >> Do I need to do something special to be able to cast an IdSet to an >> IdSetSess? Is this even possible? >> >> >> Cheers, >> Matt. >> >> >> -- >> Reclaim your digital rights, eliminate DRM, learn more at >> http://www.defectivebydesign.org/what_is_drm >> >> -----BEGIN GEEK CODE BLOCK----- >> Version: 3.12 >> GCS d--- s: a C++++ UL+++ P+++ L+++++ E--- W++ N o-- K- w-- >> O M+ V PS+++ PE Y PGP t+ 5 X++ R !tv b+++ DI+ D++ >> G-- e++ h+ r+ y+++++ >> ------END GEEK CODE BLOCK------ >> >> >> Today's lucky number is: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > What is the Axis version you use? Axis1.x or Axis2.x
Axis2 1.4 Cheers, Matt. -- Reclaim your digital rights, eliminate DRM, learn more at http://www.defectivebydesign.org/what_is_drm -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS d--- s: a C++++ UL+++ P+++ L+++++ E--- W++ N o-- K- w-- O M+ V PS+++ PE Y PGP t+ 5 X++ R !tv b+++ DI+ D++ G-- e++ h+ r+ y+++++ ------END GEEK CODE BLOCK------ Today's lucky number is: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
