In your example, x is always going to be an in parameter... (because it's in the input message).
So when looking at the output message, the first part is "return", so it becomes a corba:return parameter & z an out parameter. - Balaji -----Original Message----- From: Nolan, Edell Sent: Wednesday, July 12, 2006 9:18 AM To: [email protected] Subject: RE: Question on yoko-66 (<corba:param mode="out">) Hi, Here is an example <message name="Test.MultiPart.test_short"> <part name="x" element="xsd1:Test.MultiPart.test_short.x"/> <part name="y" element="xsd1:Test.MultiPart.test_short.y"/> </message> <message name="Test.MultiPart.test_shortResponse"> <part name="return" element="xsd1:Test.MultiPart.test_short.return"/> <part name="y" element="xsd1:Test.MultiPart.test_short.y"/> <part name="z" element="xsd1:Test.MultiPart.test_short.z"/> </message> <operation name="test_short"> <input message="tns:Test.MultiPart.test_short" name="test_short"/> <output message="tns:Test.MultiPart.test_shortResponse" name="test_shortResponse"/> </operation> In this case Mode Type =========== X = in Y = inout Return = out Z = out So are you saying which ever comes first in the list of out parameters becomes the return value of the idl operation ? Edell. -----Original Message----- From: Mosur Ravi, Balaji Sent: 12 July 2006 14:10 To: [email protected] Subject: RE: Question on yoko-66 (<corba:param mode="out">) Hi edell, There are 2 cases here... 1)WSDL to Corba Binding : In this case, we don't know what the parameter mode is... Is it out or a return parameter? I would say, in this case, we can take the first part as the return parameter & if other parts are present, they become the out parameter... Eg: <message name="Test.MultiPart.test_shortResponse"> <part name="x" element="xsd1:Test.MultiPart.test_short.x"/> <part name="y" element="xsd1:Test.MultiPart.test_short.y"/> </message> So in the corba binding, this could be mapped to a <corba:return name="x" idltype="xsd1:Test.MultiPart.test_short.x"/> <corba:param name="y" mode="out" idltype="xsd1:Test.MultiPart.test_short.y"/> And in idl, x <opname>(out y); 2)IDL To WSDL: In this case, the idl gives us the necessary parameter modes & we should use those for the corba binding... And when mapping to a wsdl message we can put the return parameter first & then the out parameters... Does this sound reasonable? - Balaji -----Original Message----- From: Nolan, Edell Sent: Wednesday, July 12, 2006 7:02 AM To: [email protected] Subject: Question on yoko-66 (<corba:param mode="out">) Hi, I am working on jira issue Yoko-66 The out parameter is not properly mapped to a <corba:param mode="out"> but instead it is mapped to a <corba:return ...>. This should happen only when the method has a return and not a out parameter. So my question is in this case when we are trying to generate the CORBABinding we have two out parameters. can we assume that if the part name is "return" that we convert this to a corba:return type in the corba binding and then then represents the return value of the idl operation. As there is no real way of distinguishing the two parameters. <message name="Test.MultiPart.test_shortResponse"> <part name="return" element="xsd1:Test.MultiPart.test_short.return"/> <part name="y" element="xsd1:Test.MultiPart.test_short.y"/> <part name="z" element="xsd1:Test.MultiPart.test_short.z"/> </message> I have looked at the idltowsdl tool and for an operation that has a return value and an out parameter you will still end up with two parts in your output message that from looking at it from a wsdl perspective represents two output parameters. Does anybody have any objections to this assumption to "part name="return" => <corba:return> type in the binding. or have a better solution. thanks, Edell. Bug Description : The out parameter is not properly mapped to a <corba:param mode="out"> but instead it is mapped to a <corba:return ...>. This should happen only when the method has a return and not a out parameter. i.e. The following IDL operation void getShort (out short outShort); get bound to the following WSDL: <corba:binding ...> <wsdl:operation name="getShort"> <corba:operation name="getShort"> <corba:return name="outparameter" idltype="corba:short" /> </corba:operation> <wsdl:output name="getShortResponse"> </wsdl:output> </wsdl:operation> It should instead be ... <corba:param name="outShort" mode="out" idltype="corba:short"/>
