Mauro Molinari ha scritto:
Please note that all my trials and researches were carried out on .NET
1.1 and .NET 2.0 interoperability. I don't have details on the
behaviours of 3.x .NET client generation tools. Maybe in the later
versions all the issues have been solved (so that minOccurs=0 could
actually be used with no harm), but there are many .NET 1.1/2.0 users
still out there.
Well, I should be more clear here. As I wrote in the issue:
https://issues.apache.org/jira/browse/AXIS2-3300
using nillable=true is actually the safest way to go if we talk about
.NET >= 2.0.
In .NET 1.x, the client generation tools simply ignore nillable=true
attribute, so minOccurs=0 would be in some way better (if we talk about
operation input parameters, although the doubled-parameters issue) or
worse (if we talk about output parameters, i.e.: the void return type
problem).
In the JIRA issue I explained what would be the best solution in my
opinion, but Amila does not like the idea to have a "compatibility" flag
just for .NET 1.x, so as a compromise he proposed the use of
nillable=true at least to avoid the void return type bug and the
doubled-parameter aesthetic issue.
In this sense, the nillable=true seems to be the least problematic
solution, given that .NET 1.x support would still be excluded.
--
Mauro Molinari
Software Designer & Developer
E-mail: mauro.molin...@cardinis.com