- From: Jacek Kopecky <jacek@systinet.com>
- Date: Tue, 16 Apr 2002 13:59:17 +0200 (CEST)
- To: xml-dist-app@w3.org
Hi all,
I'd like to say here why I think the proposal as stated in the
description of issue 195 [1] is not a good idea.
If we specify only the local name, there will be two levels of
possible conflicts. Let's say we mandate that the local name of
the return value edge is 'result'.
The first conflict: what if we want to have a parameter called
result?
Possible solution - the language binding can translate the name
to _result and add an underscore in front of any other parameter
name that starts with it. So "void foo(int result, int _other)"
would result in a message with parameters named _result and
__other.
The second conflict - if we have the contract specified in XML
Schema (or other XML schema language as opposed to specifying the
procedure signature), and we have two elements in the result
struct:
<m:fooResult xmlns:m="urn:foo">
<a:result xmlns:a="urn:a"/>
<b:result xmlns:b="urn:b"/>
</m:fooResult>
This can be achieved if a language binding uses namespaces
instead of underscores.
Possible solution - we can say that the struct can contain only
one edge whose local name is 'result'.
In effect, we'd be adding complexity in language bindins (in
most languages a parameter can be named 'result') and unnecessary
restrictions in the structs (going across all possible namespaces
which we shouldn't be able to affect) *only* because we want to
use an unsuitable language to describe SOAP RPC in the easy way.
I'd rather use the language in a slightly more complex way than
change SOAP here.
A sketch of a possible solution for WSDL if we stick with the
fully qualified name rpc:result (for those who wonder):
<message name="getStockQuoteResult">
<part name="anything" element="tns:returnTypeElement"/>
</message>
<binding>
<operation name="getStockQuote">
...
<output message="tns:getStockQuoteResult">
<soap12:returnValuePart name="anything"/>
</output>
</operation>
</binding>
And the returnValuePart would always be represented in the
resulting SOAP message as rpc:result, no matter it's original
name (tns:returnTypeElement).
Best regards,
Jacek Kopecky
Senior Architect, Systinet (formerly Idoox)
http://www.systinet.com/
[1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x195
Received on Tuesday, 16 April 2002 07:59:21 UTC