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.