RE: Solution space for Issue 4127: Proposed WSDL 1.1 element identifiers can not deal with operation name overloading

Actually, the problem *really* is:

Imagine a WSDL 1.1 portType, such as:
<portType name="TicketAgent">
<operation name="foo"><input message="x:y"/></operation>
<operation name="foo"><input message="x:z"/></operation>
</portType>

The options are

1. Illegal operation.  Add a normative
reference and constraint that the WSDL 1.1 element identifiers can only
be applied to WSDL documents that comply with the WS-I Basic Profile
1.1.
The BP
1.1 section 4.5.3 disallows operation name overloading.

2. Undefined.  Nothing said in WSDL EI (WEI) spec.  Add text
recommending WS-I BP 1.1 compliance.

3. First-only.  Change WEI spec to say that only the first element is
identified.  Add text recommending WS-I BP 1.1 compliance.

4. Fully supported by not disambiguating between the operations, that is
a policy that is attached to an operation that is overloaded applies to
all the overloaded operation.  The 2 operations in the table are starred
(*) and then a * star entry after the table that says, "These fragment
identifiers may identify elements that are not unique (sometimes called
operation name overloading)."  The ws-policy attachment specification
3.4.1 has an additional sentence that says "When a URI domain expression
does not uniquely identify resources (such as WSDL 1.1 operation name
overloading), the Policy applies to all the resources that are
identified." 

5. Fully supported disambiguating between operations using the message
value of the input.  Identifiers are then:
wsdl11.portTypeOperation(TicketAgent/foo(x:y))
wsdl11.portTypeOperation(TicketAgent/foo(x:z))
Note: This does not account for namespace prefix changes.

I believe that the WG has tentatively accepted the spirit of #4.

Cheers,
Dave


> -----Original Message-----
> From: public-ws-policy-request@w3.org 
> [mailto:public-ws-policy-request@w3.org] On Behalf Of David Orchard
> Sent: Friday, January 12, 2007 1:39 PM
> To: public-ws-policy@w3.org
> Subject: Solution space for Issue 4127: Proposed WSDL 1.1 
> element identifiers can not deal with operation name overloading
> 
> 
> Imagine an WSDL 1.1 operation that contains <input 
> name="foo"/> <input name="bar"/>
> 
> How are these elements identified?
> 
> Here's my cut at the solution space, ranging from least 
> expressive to most expressive.
> 
> 1. Illegal operation.  Add a normative
> reference and constraint that the WSDL 1.1 element 
> identifiers can only be applied to WSDL documents that comply 
> with the WS-I Basic Profile 1.1.
> The BP
> 1.1 section 4.5.3 disallows operation name overloading.
> 
> 2. Undefined.  Nothing said in WSDL EI (WEI) spec.  Add text 
> recommending WS-I BP 1.1 compliance.
> 
> 3. First-only.  Change WEI spec to say that only the first 
> element is identified.  Add text recommending WS-I BP 1.1 compliance.
> 
> 4. Fully supported, names required on all Message References. 
>  Modify the fragment identifiers for portType operation and 
> binding operation to deal with operation name overloading 
> requiring that each input is named.  Identifiers are then:
> wsdl11.portTypeMessageReference(portType/operation/input("foo"))
> wsdl11.portTypeMessageReference(portType/operation/input("bar"))
> 
> 5. Fully supported with shorthand.  Modify the fragment 
> identifiers for portType operation and binding operation to 
> deal with operation name overloading allowing but not 
> requiring specification of name attribute.  The absence of a 
> name parameter assumes the first, and the name can be a 
> parameter.  Identifiers are
> then:
> wsdl11.portTypeMessageReference(portType/operation/input) OR
> wsdl11.portTypeMessageReference(portType/operation/input("foo"))
> wsdl11.portTypeMessageReference(portType/operation/input("bar"))
> 
> 
> 

Received on Wednesday, 17 January 2007 18:26:15 UTC