[ https://issues.apache.org/jira/browse/AXIS2-3651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593347#action_12593347 ]
Aaron Gourley commented on AXIS2-3651: -------------------------------------- It is my feeling that if Datelin is right about this, then it is a problem with the deserialization which in turn needs to be fixed. It seems clear to me that from a SOAP perspective the xsi:type attribute should be meaningful with regards to the WSDL (i.e. identify the schema type as defined in the WSDL). In general, the class name doesn't tell a generic SOAP client anything about the elements type, since the class name doesn't appear in the WSDL. > BeanUtil class should try and fill the xsi:type attribute with value from > type table before defaulting to class name > -------------------------------------------------------------------------------------------------------------------- > > Key: AXIS2-3651 > URL: https://issues.apache.org/jira/browse/AXIS2-3651 > Project: Axis 2.0 (Axis2) > Issue Type: Improvement > Components: databinding > Affects Versions: 1.4, 1.3 > Environment: Windows XP SP2, Java 6 > Reporter: Aaron Gourley > Assignee: nadir amra > Priority: Minor > > Using the type table to fill the xsi:type attribute would help make it > possible to successfully validate SOAP response messages against the WSDL. > Although the class name approach may be sufficient for POJO services, it > provides meaningless information when other approaches are used. > I suggest replacing the following lines of BeanUtil.java > // Added objectAttributes as a fix for issues AXIS2-2055 and > AXIS2-1899 to > // support polymorphism in POJO approach. > // For some reason, using QName(Constants.XSI_NAMESPACE, "type", > "xsi") does not generate > // an xsi:type attribtue properly for inner objects. So just > using a simple QName("type"). > ArrayList objectAttributes = new ArrayList(); > objectAttributes.add(new QName("type")); > objectAttributes.add(beanObject.getClass().getName()); > With this (or similar ... not sure if qualified check should be there): > ArrayList objectAttributes = new ArrayList(); > objectAttributes.add(new QName(Constants.XSI_NAMESPACE, "type", > "xsi")); > if( typeTable != null && qualified ) > { > QName qNamefortheType = > > typeTable.getQNamefortheType(beanObject.getClass().getName()); > if (qNamefortheType == null) { > // Added objectAttributes as a fix for issues AXIS2-2055 > and AXIS2-1899 to > // support polymorphism in POJO approach. > objectAttributes.add(beanObject.getClass().getName()); > } > else > { > objectAttributes.add(qNamefortheType); > } > } > else > { > objectAttributes.add(beanObject.getClass().getName()); > } > Note that I had no issues with generating the xsi:type attribute for inner > elements in my testing (as was mentioned by the existing comment). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]