Deserializing in generated C code does not work for minOccurs=1,nillable=true element -------------------------------------------------------------------------------------
Key: AXIS2-4293 URL: https://issues.apache.org/jira/browse/AXIS2-4293 Project: Axis 2.0 (Axis2) Issue Type: Bug Components: codegen, databinding Affects Versions: 1.4.1 Environment: Axis2 1.4.1 wsdl2c Axis2/C from svn Reporter: Rutger van Eerd Deserializing in generated C code does not work for minOccurs=1,nillable=true element. Here is the relevant WSDL. <complexType name="ResultAddress"> <complexContent> <extension base="tns:Address"> <sequence> <element name="wrappedAdditionalFields" type="tns:ArrayOfAdditionalField" minOccurs="1" maxOccurs="1" nillable="true"/> <element name="coordinates" type="ns1:Point" minOccurs="0" maxOccurs="1" nillable="true"/> </sequence> <attribute name="adminRegion" type="xsd:string" use="optional"/> <attribute name="appendix" type="xsd:string" use="optional"/> <attribute name="classificationDescription" type="tns:ClassificationDescription" use="required"/> <attribute name="countryCapital" type="xsd:string" use="optional"/> <attribute name="detailLevelDescription" type="tns:DetailLevelDescription" use="required"/> <attribute name="totalScore" type="xsd:int" use="required"/> </extension> </complexContent> </complexType> Here is the XML to be deserialized (SOAP reply). <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://exception.core.jabba.ptvag.com" xmlns:ns1="http://common.xserver.ptvag.com" xmlns:ns2="http://xlocate.xserver.ptvag.com" xmlns:ns3="http://types.xlocate.xserver.ptvag.com"> <env:Body> <ns3:findAddressResponse> <ns3:result errorCode="0" errorDescription=""> <ns2:wrappedResultList> <ns2:ResultAddress xsi:type="ns2:ResultAddress" city="Boekel" city2="" country="NL" houseNumber="" postCode="542*" state="" street="" adminRegion="Boekel" appendix="" classificationDescription="LOW" countryCapital="Amsterdam" detailLevelDescription="CITY" totalScore="50"> <ns2:wrappedAdditionalFields/> <ns2:coordinates xsi:type="ns1:Point"> <ns1:point xsi:type="ns1:PlainPoint" x="630837.7295355089" y="6721095.391931657"/> </ns2:coordinates> </ns2:ResultAddress> <ns2:ResultAddress xsi:type="ns2:ResultAddress" city="Castricum" city2="Boekel" country="NL" houseNumber="" postCode="1921" state="" street="" adminRegion="Castricum" appendix="" classificationDescription="LOW" countryCapital="Amsterdam" detailLevelDescription="CITY2" totalScore="50"> <ns2:wrappedAdditionalFields/> <ns2:coordinates xsi:type="ns1:Point"> <ns1:point xsi:type="ns1:PlainPoint" x="528525.0536313169" y="6899572.692981508"/> </ns2:coordinates> </ns2:ResultAddress> </ns2:wrappedResultList> </ns3:result> </ns3:findAddressResponse> </env:Body> </env:Envelope> Here is the Axis2/C log. [Tue Mar 31 11:24:51 2009] [debug] phase.c(210) Invoke the handler context_handler within the phase PostDispatch [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_ResultAddress.c(698) non nillable or minOuccrs != 0 element wrappedAdditionalFields missing [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_ArrayOfResultAddress.c(186) failed in building element ResultAddress [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_ArrayOfResultAddress.c(195) failed in setting the value for ResultAddress [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_AddressResponse.c(207) failed in building adb object for element wrappedResultList [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_AddressResponse.c(217) failed in setting the value for wrappedResultList [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_findAddressResponse.c(174) failed in building adb object for element result [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_findAddressResponse.c(184) failed in setting the value for result [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_findAddressResponse15.c(209) failed in building adb object for element findAddressResponse [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/adb_findAddressResponse15.c(219) failed in setting the value for findAddressResponse [Tue Mar 31 11:24:51 2009] [error] ../autogen/src/axis2_stub_XLocateWSService.c(417) NULL returnted from the findAddressResponse15_deserialize: This should be due to an invalid XML As I see it, the wrappedAdditionalFields element is present but empty. This is allowed by the WSDL. However deserializing causes an error for this element. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.