<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>4127</bug_id>
          
          <creation_ts>2007-01-02 13:32:24 +0000</creation_ts>
          <short_desc>Proposed WSDL 1.1 element identifiers can not deal with operation name overloading</short_desc>
          <delta_ts>2007-01-17 22:52:27 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WS-Policy</product>
          <component>WSDL1.1-Element-Identifiers</component>
          <version>LC</version>
          <rep_platform>Macintosh</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fabian Ritzmann">fabian.ritzmann</reporter>
          <assigned_to name="Fabian Ritzmann">fabian.ritzmann</assigned_to>
          <cc>monica.martin</cc>
          
          <qa_contact name="Web Services Policy WG QA List">public-ws-policy-qa</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>13313</commentid>
    <comment_count>0</comment_count>
    <who name="Fabian Ritzmann">fabian.ritzmann</who>
    <bug_when>2007-01-02 13:32:24 +0000</bug_when>
    <thetext>Title

Proposed WSDL 1.1 element identifiers can not deal with operation name overloading

Description

Endpoints described with WSDL 1.1 may have several operations with the same name. Operations that have the same name are distinguished through differing input or output elements.

Justification

The current WS-Policy proposal for WSDL 1.1 element identifiers is not able to deal with operation name overloading. With the proposed syntax you could only identify one operation of the endpoint randomly and any other operation of the endpoint with the same name would be ignored.

Target

WSDL 1.1 Element Identifiers

Proposal

We have at least two options to solve this issue:

1. Leave the fragment identifiers in section 2 as proposed and 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. Modify the fragment identifiers for portType operation and binding operation to deal with operation name overloading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13506</commentid>
    <comment_count>1</comment_count>
    <who name="David Orchard">orchard</who>
    <bug_when>2007-01-12 21:37:22 +0000</bug_when>
    <thetext>Imagine an WSDL 1.1 operation that contains
&lt;input name=&quot;foo&quot;/&gt;
&lt;input name=&quot;bar&quot;/&gt;

How are these elements identified?

Here&apos;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(&quot;foo&quot;))
wsdl11.portTypeMessageReference(portType/operation/input(&quot;bar&quot;))

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(&quot;foo&quot;))
wsdl11.portTypeMessageReference(portType/operation/input(&quot;bar&quot;))

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13663</commentid>
    <comment_count>2</comment_count>
    <who name="David Orchard">orchard</who>
    <bug_when>2007-01-17 18:11:48 +0000</bug_when>
    <thetext>Actually, the problem *really* is:

Imagine a WSDL 1.1 portType, such as:
&lt;portType name=&quot;TicketAgent&quot;&gt;
&lt;operation name=&quot;foo&quot;&gt;&lt;input message=&quot;x:y&quot;/&gt;&lt;/operation&gt;
&lt;operation name=&quot;foo&quot;&gt;&lt;input message=&quot;x:z&quot;/&gt;&lt;/operation&gt;
&lt;/portType&gt;

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, &quot;These fragment identifiers may identify elements that are not unique (sometimes called operation name overloading).&quot;  The ws-policy attachment specification 3.4.1 has an additional sentence that says &quot;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.&quot; 

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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13679</commentid>
    <comment_count>3</comment_count>
    <who name="Christopher Ferris">chrisfer</who>
    <bug_when>2007-01-17 22:52:27 +0000</bug_when>
    <thetext>See http://www.w3.org/2007/01/17-ws-policy-irc#T22-50-02
RESOLUTION: Close 4045 and 4127 closed with text as provided in http://www.w3.org/Bugs/Public/show_bug.cgi?id=4045#c2  and http://www.w3.org/Bugs/Public/show_bug.cgi?id=4045#c3 respectively</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>