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.3, 1.4
         Environment: Windows XP SP2, Java 6
            Reporter: Aaron Gourley
            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]

Reply via email to