- From: Ray Whitmer <ray@jhax.net>
- Date: Wed, 15 May 2002 11:25:45 -0400 (EDT)
- To: xml-dist-app@w3.org
- Message-ID: <3CE27D22.5090708@jhax.net>
Sorry for the delay, I had a hard time reconciling recent drafts with decisions I remembered, and various lists archives were down. I list the most recent wording from an editors draft, but even Jacek's proposal is based upon previous work with several more bullet items. Forgetting about disorientation in the current drafts, and possibly missing some points because the list archives were down more than up, what follows is a before and after wording. Please note that in the new wording, I have included in [] extra sentences that contain clarifications that were only briefly mentioned but I think might be useful. I will leave it up to the editors whether the extra sentences should be included or not, but if anyone thinks the sentences are not true, we should probably discuss them, because it was not clear to me why we spent so much time making it possible to identify non-void returns in structs when other gaping holes were left up to the knowledge of the calling application of the call signature. Old wording in latest editor's draft: 4.1.2 RPC Response An RPC response is modeled as a struct where parameter access is by name or as an array where parameter access is by position. * The response is represented by a single struct or array containing an outbound edge for the return value and each [out] or [in/out] parameter. The return value outbound edge SHOULD be the first outbound edge. * Each outbound edge has a label corresponding to the name of the parameter (see A. Mapping Application Defined Names to XML Names <http://www.w3.org/2000/xp/Group/2/05/14/soap12-part2-1.93.html#namemap> ) or a position corresponding to the position of the parameter. The label of the return value outbound edge is "result" and it is namespace-qualified with the namespace name "http://www.w3.org/2001/12/soap-rpc". The return value outbound edge MUST be present if the return value of the procedure is non-void. The return value outbound edge MUST NOT be present if the return value of the procedure is void. * Invocation faults are handled according to the rules in 4.3 RPC Faults <http://www.w3.org/2000/xp/Group/2/05/14/soap12-part2-1.93.html#rpcfaults> . If a protocol binding adds additional rules for fault expression, those MUST also be followed. An RPC response MUST NOT contain both a result and a fault, because a result indicates success and a fault indicates failure. New wording: An RPC response is modeled as a struct where parameter access is by name or as an array where parameter access is by position. [The SOAP encoding specification defines no way to directly determine whether the response is modeled as a struct or as an array.] * The response is represented by a single struct or array containing an outbound edge for the return value and each [out] or [in/out] parameter. * If the response is represented by a struct, then each parameter is represented by an outbound edge with a label corresponding to the name of the parameter (see A. Mapping Application Defined Names to XML Names <http://www.w3.org/2000/xp/Group/2/05/14/soap12-part2-1.93.html#namemap> ). A non-void return value is represented in the struct by an outbound edge that may be given any unique label. The qname (qualified name) of the label of the edge representing the return value is given by a separate outbound edge with the label "result" and the namespace name "http://www.w3.org/2001/12/soap-rpc". This result outbound edge MUST be present and hold the qname of the edge containing the return value within any struct response if the return value of the procedure is non-void. This result outbound edge MUST NOT be present if the return value of the procedure is void. * If the response is represented by an array, each outbound edge has a label corresponding to the position of the parameter. A return value MUST be present if and only if the return value of the procedure is non-void. If present, the return value MUST be represented as the first edge of the array and parameters, if any, begin with the second outbound edge of the array. If no return value is present, then parameters, if any, begin with the first outbound edge of the array. [The SOAP encoding specification defines no way to directly determine whether the first edge of a non-empty response array is a return value or whether it is the first parameter of a procedure with a void return.] * Invocation faults are handled according to the rules in 4.3 RPC Faults <http://www.w3.org/2000/xp/Group/2/05/14/soap12-part2-1.93.html#rpcfaults> . If a protocol binding adds additional rules for fault expression, those MUST also be followed. An RPC response MUST NOT contain both a result and a fault, because a result indicates success and a fault indicates failure. Thanks, Ray Whitmer rayw@netscape.com
Received on Wednesday, 15 May 2002 15:27:02 UTC