Hi guys,

I use axis2 v1.4

I claim a complex type as abstract in xsd and derived some subclass from
it. Then I use soapUi for testing.
In soapUI when I set the subtype and request, everything works fine.
However I found I can set the field as the 'abstract' type and do the
request.
I suppose to received some warning in soapUI. However it reaches my
axis2 server directly.
I use wsdl2java to generate code. I checked the generated code and found
this:

       public static FieldBase parse(javax.xml.stream.XMLStreamReader
reader) throws java.lang.Exception{
            FieldBase object =
                null;
                        ...
                        ...
                    // handle attribute "id"
                    java.lang.String tempAttribId =
                        
                                reader.getAttributeValue(null,"id");
                            
                   if (tempAttribId!=null){
                         java.lang.String content = tempAttribId;
                        
                                                 object.setId(
 
org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(tempAttri
bId));

Seems the auto generated code declare a null object and set value for it
directly. No matter how soapUI works. I think it is a bug in axis2
code-gen part.
Please correct me if I am wrong about some parts.

soap with normal subtype:   <field xsi:type="v101: fieldText" id="1" ...
soap with abstract subtype:  <field id="1" ...

xsd sample:
  <complexType name="fieldBase" abstract="true">
        <complexContent>
            <extension base="comm10:tExtensibleElement">
                <sequence>
                    ...
    <complexType name="fieldText">
        <complexContent>
            <extension base="tns: fieldBase ">
                                ...

Best wishes!

Peter Y.L.Kang
msn: [email protected] 
Software Engineer, Sever Dept.

Reply via email to