Re: WSDL2Java - Inheritance problem
if you use Axis2 1.4 XMLBeans should also supports them. thanks, Amila. On Wed, Jul 23, 2008 at 8:08 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: Ah, I'm using XMLBeans and not ADB, would that have anything to do with my problem? 2008/7/22 Amila Suriarachchi [EMAIL PROTECTED]: I generated with the following options and have this test -uri Pillar.wsdl -ss -sd -g -uw private void testTestClass(){ String xmlString = xsd:get xmlns:xsd=\http://osr.nsw.gov.au/pillar/gen/xsd\http://osr.nsw.gov.au/pillar/gen/xsd%5C\n + xsd:id xsi:type=\xsd:idSetSess\\n + xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\http://www.w3.org/2001/XMLSchema-instance%5C \n + xsd:idtypeSESSNUM/xsd:idtype\n + xsd:idvalue20004465/xsd:idvalue\n + xsd:seqNum141/xsd:seqNum\n + /xsd:id\n + xsd:id\n + xsd:idtypeINFNUM/xsd:idtype\n + xsd:idvalue7151999517/xsd:idvalue\n + /xsd:id\n + /xsd:get; try { XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes())); Get result = Get.Factory.parse(xmlReader); IdSet[] ids = result.getId(); for (int i = 0; i ids.length; i++) { IdSet id = ids[i]; if (id.getIdtype() == IdType.SESSNUM) { if (!(id instanceof IdSetSess)){ } } } System.out.println(OK); } catch (XMLStreamException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } and it worked fine. thanks, Amila. On Tue, Jul 22, 2008 at 5:38 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: Sure, it's attached. 2008/7/21 Amila Suriarachchi [EMAIL PROTECTED]: Can you send your wsdl? I think you use only Axis2 at the server side. thanks, Amila. On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: 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
Re: WSDL2Java - Inheritance problem
I generated with the following options and have this test -uri Pillar.wsdl -ss -sd -g -uw private void testTestClass(){ String xmlString = xsd:get xmlns:xsd=\ http://osr.nsw.gov.au/pillar/gen/xsd\;\n + xsd:id xsi:type=\xsd:idSetSess\\n + xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\;\n + xsd:idtypeSESSNUM/xsd:idtype\n + xsd:idvalue20004465/xsd:idvalue\n + xsd:seqNum141/xsd:seqNum\n + /xsd:id\n + xsd:id\n + xsd:idtypeINFNUM/xsd:idtype\n + xsd:idvalue7151999517/xsd:idvalue\n + /xsd:id\n + /xsd:get; try { XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes())); Get result = Get.Factory.parse(xmlReader); IdSet[] ids = result.getId(); for (int i = 0; i ids.length; i++) { IdSet id = ids[i]; if (id.getIdtype() == IdType.SESSNUM) { if (!(id instanceof IdSetSess)){ } } } System.out.println(OK); } catch (XMLStreamException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } and it worked fine. thanks, Amila. On Tue, Jul 22, 2008 at 5:38 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: Sure, it's attached. 2008/7/21 Amila Suriarachchi [EMAIL PROTECTED]: Can you send your wsdl? I think you use only Axis2 at the server side. thanks, Amila. On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: 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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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
Re: WSDL2Java - Inheritance problem
Ah, I'm using XMLBeans and not ADB, would that have anything to do with my problem? 2008/7/22 Amila Suriarachchi [EMAIL PROTECTED]: I generated with the following options and have this test -uri Pillar.wsdl -ss -sd -g -uw private void testTestClass(){ String xmlString = xsd:get xmlns:xsd=\http://osr.nsw.gov.au/pillar/gen/xsd\;\n + xsd:id xsi:type=\xsd:idSetSess\\n + xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\;\n + xsd:idtypeSESSNUM/xsd:idtype\n + xsd:idvalue20004465/xsd:idvalue\n + xsd:seqNum141/xsd:seqNum\n + /xsd:id\n + xsd:id\n + xsd:idtypeINFNUM/xsd:idtype\n + xsd:idvalue7151999517/xsd:idvalue\n + /xsd:id\n + /xsd:get; try { XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes())); Get result = Get.Factory.parse(xmlReader); IdSet[] ids = result.getId(); for (int i = 0; i ids.length; i++) { IdSet id = ids[i]; if (id.getIdtype() == IdType.SESSNUM) { if (!(id instanceof IdSetSess)){ } } } System.out.println(OK); } catch (XMLStreamException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } and it worked fine. thanks, Amila. On Tue, Jul 22, 2008 at 5:38 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: Sure, it's attached. 2008/7/21 Amila Suriarachchi [EMAIL PROTECTED]: Can you send your wsdl? I think you use only Axis2 at the server side. thanks, Amila. On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: 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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/xsd:idvalue /xsd:id /xsd:get /soapenv:Body /soapenv:Envelope The
Re: WSDL2Java - Inheritance problem
Sure, it's attached. 2008/7/21 Amila Suriarachchi [EMAIL PROTECTED]: Can you send your wsdl? I think you use only Axis2 at the server side. thanks, Amila. On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: 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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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] -- Amila Suriarachchi, WSO2 Inc. -- 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 ?xml version=1.0 encoding=UTF-8? definitions
WSDL2Java - Inheritance problem
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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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]
Re: WSDL2Java - Inheritance problem
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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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 thanks, Amila. -- Amila Suriarachchi, WSO2 Inc.
Re: WSDL2Java - Inheritance problem
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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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]
Re: WSDL2Java - Inheritance problem
Can you send your wsdl? I think you use only Axis2 at the server side. thanks, Amila. On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo [EMAIL PROTECTED] wrote: 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:idtypeSESSNUM/xsd:idtype xsd:idvalue20004465/xsd:idvalue xsd:seqNum141/xsd:seqNum /xsd:id xsd:id xsd:idtypeINFNUM/xsd:idtype xsd:idvalue7151999517/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] -- Amila Suriarachchi, WSO2 Inc.