axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mauro Molinari (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-3353) Use wrapper types when elements are optional (i.e.: nillable="true" or minOccurs="0"/maxOccurs="1")
Date Fri, 21 Dec 2007 11:38:43 GMT

    [ 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message