[ https://issues.apache.org/jira/browse/AXIS2-4439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734285#action_12734285 ]
Andreas Veithen commented on AXIS2-4439: ---------------------------------------- There are actually two answers to this issue: 1. The intention of the "OriginalMessage" element is to wrap the original message, i.e. a single element. This could be better expressed using the following schema construct: <xsd:element name="OriginalMessage" form="unqualified" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:any processContents="skip"/> </xsd:sequence> </xsd:complexType> </xsd:element> Indeed, this would constraint the content to be a single element. So if you have control over the WSDL, one option is to change that. ADB will then generate code that represents the content of OriginalMessage as an OMElement. 2. Up to version 1.3, Axis2 also used OMElement in the case of xsd:anyType. Obviously this is not the right solution, at least when the document specifies the type explicitly using xsi:type. Therefore this behavior was changed in version 1.4, so that ADB maps to the appropriate Java type. The problem is that now ADB considers xsi:type as mandatory. There is a comment [1] in AXIS2-3797 that explains the rationale behind this. Apparently the assumption that has been made is that xsd:anyType necessarily refers to any type defined in the schema (or any standard schema type). I believe that this is wrong and contradicts the XML schema specs [1], specifically section 2.5.4: "Example <xsd:element name="anything" type="xsd:anyType"/> The content of the element declared in this way is unconstrained, so the element value may be 423.46, but it may be any other sequence of characters as well, or indeed a mixture of characters and elements." My interpretation is that anyType really means any content you want. Assuming that this is the correct interpretation, it means that neither Axis2 1.3 nor 1.4 handle anyType in the right/appropriate way and that we need to support mapping to a Java type as well as mapping to an OMElement (if no xsi:type argument is given). [1] https://issues.apache.org/jira/browse/AXIS2-3797?focusedCommentId=12627287&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12627287 [2] http://www.w3.org/TR/xmlschema-0/ > ADBException: Any type element type has not been given > ------------------------------------------------------ > > Key: AXIS2-4439 > URL: https://issues.apache.org/jira/browse/AXIS2-4439 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Components: client-api > Affects Versions: 1.5 > Environment: Windows XP Desktop computer > Reporter: Anthony Seniunas > Priority: Blocker > Original Estimate: 0.33h > Remaining Estimate: 0.33h > > I've developed a web client using wsdl2java and I'm getting the following > exception when obtaining a response from a web service. > org.apache.axis2.databinding.ADBException: Any type element type has not been > given > The .wsdl fragment relating to this is:- > <xsd:complexType name="DocumentData"> > <xsd:sequence> > <xsd:element name="Doc" type="schema:DocType" > form="unqualified" minOccurs="0" > maxOccurs="unbounded"/> > <xsd:element name="Result" type="xsd:string" > form="unqualified" minOccurs="0"/> > <xsd:element name="SessionId" type="xsd:string" > form="unqualified" minOccurs="0"/> > <xsd:element name="OriginalMessage" type="xsd:anyType" > form="unqualified" minOccurs="0"/> > </xsd:sequence> > </xsd:complexType> > Note the originalMessage element type - anyType. > The following is a typical response SOAP message causing the exception:- > <?xml version = '1.0' encoding = 'UTF-8'?> > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <call:LoginResponse > xmlns:call="http://www.testplc.com/ws/services/dms/interface/kirona/envhealth/"> > <call:DocumentData> > <Result>SUCCESS</Result> > <SessionId>D83D8A42672F08AA6EC9377CB32F6317</SessionId> > <OriginalMessage> > <ns1:Login > xmlns:ns1="http://www.testplc.com/ws/services/dms/interface/kirona/envhealth/"> > > <ns1:Authorisation>Y29yb25hdXNlcjpjMHIwbjR1czNy</ns1:Authorisation> > </ns1:Login> > </OriginalMessage> > </call:DocumentData> > </call:LoginResponse> > </soapenv:Body> > </soapenv:Envelope> > Its unusual but the web service returns the original message hence the usage > of anyType. > I've come across many articles on problems with anyType and its possible this > problem has already been fixed so please can you advise?. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.