John,

There's a difference between missing and null. If the element had a
null value, then the element would be there, and it would say
<requestCategoryCode nil="true"/>.

If the schema says minOccurs="0", then this message is valid. 
It appears that Axis is not properly handling minOccurs="0".

Anne

On 8/5/05, John Baker <[EMAIL PROTECTED]> wrote:
> Hi,
> 
> I am using a WSDL file supplied to be by a third party and I suspect it
> doesn't quite reflect what their .NET server is returning in the SOAP
> messages. I am getting this exception:
> 
> java.io.IOException: Non nillable element 'requestCategoryCode' is null.
>         at
> org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.
> java:215)
>         at
> org.apache.axis.encoding.SerializationContext.serializeActual(Seriali
> zationContext.java:1426)
>         at
> org.apache.axis.encoding.SerializationContext.serialize(Serialization
> Context.java:914)
>         at
> org.apache.axis.encoding.SerializationContext.serialize(Serialization
> Context.java:702)
>         at
> org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.
> java:230)
>         at
> org.apache.axis.encoding.SerializationContext.serializeActual(Seriali
> zationContext.java:1426)
>         at
> org.apache.axis.encoding.SerializationContext.serialize(Serialization
> Context.java:914)
> 
> So looking at (an extract of) the XML received by Axis:
> 
> <AdministrationDetails><ComplaintTypeCode>PESTM</ComplaintTypeCode><Com
> plaintTypeText>Mice</ComplaintTypeText><AllocatedToCode>CRMTES</AllocatedToCode>
> <AllocatedToText>CRM Test
> Officer</AllocatedToText><HowReceivedCode>CC</HowRecei
> vedCode><HowReceivedText>Call
> Centre</HowReceivedText><TimeReceived>2005-08-04T0
> 6:52:03.0000000+01:00</TimeReceived><StatusCode>REC</StatusCode><StatusText>Rece
> ived</StatusText><AreaTeamCode>E</AreaTeamCode><AreaTeamText>Eastern Area
> Team</
> AreaTeamText></AdministrationDetails>
> 
> And here's the relevant part of the WSDL:
> 
>       <xs:complexType name="AdministrationDetailsType">
>               <xs:annotation>
>                         <xs:documentation>Contains details of status,
> allocated officer
> codes etc</xs:documentation>
>         </xs:annotation>
>                 <xs:sequence>
>                           <xs:element name="ComplaintTypeCode"
>                           type="uni:CNCODE_CodeValue">
>                                       <xs:annotation>
>                                                     <xs:documentation>Code
> value for complaint
> type</xs:documentation>
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="ComplaintTypeText"
>                                 type="uni:CNCODE_TextValue">
>                                             <xs:annotation>
> 
> <xs:documentation>Full text of complaint type - read
> only</xs:documentation>
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="RequestCategoryCode"
>                                 type="uni:CNCODE_CodeValue">
>                                             <xs:annotation>
> 
> <xs:documentation>complaint type category code if set
> </xs:documentation>
>             </xs:annotation>
>                       </xs:element>
>          <xs:element name="AllocatedToCode" type="uni:CNCODE_CodeValue">
>                      <xs:annotation>
>                                    <xs:documentation>Officer code for
> allocated officer</xs:documenta
> tion>
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="AllocatedToText"
> type="uni:CNCODE_TextValue">
>             <xs:annotation>
>                           <xs:documentation>Full name of allocated
> officer</xs:documentation
> >
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="TimeAllocated"
> type="xs:dateTime" minOccurs="0">
>             <xs:annotation>
>                           <xs:documentation>The date and time the request
> was allocated to a
> n officer to investigate</xs:documentation>
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="HowReceivedCode"
> type="uni:CNCODE_CodeValue">
>             <xs:annotation>
>                           <xs:documentation>Code value indicating how the
> complaint was rece
> ived</xs:documentation>
>             </xs:annotation>
>                       </xs:element>
>                                 <xs:element name="HowReceivedText"
> type="uni:CNCODE_TextValue">
>             <xs:annotation>
>                           <xs:documentation>Full description of how received
> code</xs:docume
> ntation>
>             </xs:annotation>
>                       </xs:element>
> 
> (etc.)
> 
> It would seem to me that this change needs to be made:
> 
>           <xs:element name="RequestCategoryCode" type="uni:CNCODE_CodeValue"
> minOccurs="0" nillable="true">
> 
> As the .NET server has not sent back a RequestCategoryCode element.
> 
> Does this sound correct?
> 
> Thanks,
> 
> 
> John
>

Reply via email to