[ 
https://issues.apache.org/jira/browse/AXIS2-3353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12553929
 ] 

Mauro Molinari commented on AXIS2-3353:
---------------------------------------

Hi Amila,
at a first sight, generated code for the wrapper type issue seems ok now, thank 
you!

Regarding the unwrapping issue: if you take the WSDL I attached here and change 
EmptyType so that it is:

<xsd:complexType name="EmptyType">
    <sequence>
      <element name="out" type="string"/>
    </sequence>
</xsd:complexType>

Axis2 can correctly unwrap the string parameter, so that "b" method returns a 
String, not EmptyType. Why doesn't this work anymore when there are no elements 
at all in EmptyType definition? Shouldn't this case be much like the empty 
anonymous empty type case of "a" method?

In practice, it is convenient to define an empty type in a shared schema file 
and use that type instead of declaring a new anonymous empty type every time 
you need to define an operation with an empty request or response...

Mauro.

> Use wrapper types when elements are optional (i.e.: nillable="true" or 
> minOccurs="0"/maxOccurs="1")
> ---------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-3353
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3353
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Improvement
>          Components: codegen
>    Affects Versions: 1.3
>            Reporter: Mauro Molinari
>            Assignee: Amila Chinthaka Suriarachchi
>            Priority: Critical
>
> As of now, Axis2 WSDL2Java uses some weird convetion about "null".
> I mean, when an element in a WSDL is marked as nillable="true" or 
> minOccurs="0"/maxOccurs="1", the generated Java code still uses primitives 
> types such as int, double, short, long, float, boolean.
> Because of this, I personally experienced (and also read about here in JIRA), 
> Axis2 uses the following questionable convention to handle null values:
> int, short, long => Integer.MIN_VALUE, Short.MIN_VALUE, Long. MIN_VALUE
> float, double => Float.NaN, Double.NaN
> boolean => false
> Actually, these values are NOT null.
> I think Axis2 should map optional elements of type xsd:int, xsd:double, 
> xsd:float, xsd:short, xsd:long, xsd:boolean to, respectively: Integer, 
> Double, Float, Short, Long, Boolean and assign null to them when they are 
> specified as nil or when they are not specified in the SOAP message.
> If I understood it well, Axis1 did this, didn't it?
> At least, I think Axis2 should give an option to enable this and, IMHO, I 
> also think it should be on by default...

-- 
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