Hi, I am working with axis 1.2_rc1 and I am in the process of testing my web client with an off-site third party web service which I have no access to. My service client stubs were generated using wsdl2java from a WSDL file that includes a number of xsd files. I am consistently getting an error when the Axis libraries attempt to deseralize the return ErrorList contained with the Acknowledgement where the latter is a complex type. I have listed the AxisFault, the XSD definition and the return SOAP message (which looks correct to me) below. I have done a number of searches to try and find out what the problem is but I have not found anything that can help me fix this. This is urgent, so any help at all is greatly appreciated. Regards Aoife The return SOAP BODY is: <soapenv:Body> <ns1:Form11Acknowledgement success="false" xmlns:ns1="http://www.ros.ie/schemas/form11/v4/"> <ErrorList target="Form11"> <ErrorList target="Personal"> <Error code="117" target="Marital/dateofdeath"> Spouse Date of Death cannot be more then five years previous </Error> </ErrorList> </ErrorList> </ns1:Form11Acknowledgement> </soapenv:Body> The error being obtained is AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: Invalid element in ie.ros.www.schemas.form11.v4._Acknowledgement - ErrorList faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Invalid element in ie.ros.www.schemas.form11.v4._Acknowledgement - ErrorList at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:223) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1025) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1138) The ErrorList and Acknowledgement are defined in the XSD as follows: <xsd:element name="Error"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="target" type="xsd:string" use="required"/> <xsd:attribute name="code" type="xsd:integer" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="ErrorList"> <xsd:complexType> <xsd:sequence> <xsd:element ref="Error" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="ErrorList" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="target" type="xsd:string" use="optional"/> </xsd:complexType> </xsd:element> <xsd:complexType name="AcknowledgementType"> <xsd:choice minOccurs="0"> <xsd:element ref="ErrorList"/> <xsd:element name="NoticeNumber"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"/> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:choice> <xsd:attribute name="success" type="boolean" use="required"/> </xsd:complexType> |