W3C home > Mailing lists > Public > www-ws-desc@w3.org > March 2003

Re: Small language clarification in portType extension

From: Arthur Ryman <ryman@ca.ibm.com>
Date: Fri, 21 Mar 2003 12:49:56 -0500
To: Steve Tuecke <tuecke@mcs.anl.gov>
Cc: www-ws-desc@w3.org, www-ws-desc-request@w3.org
Message-ID: <OF8490BF73.337BD7DA-ON85256CF0.0061AEE2@torolab.ibm.com>

Steve,

I agree with you. If an expert like you reads a description and finds it
unclear, then by definition it is unclear.

I think the first paragraph is actually wrong since it is too restrictive.
It should be corrected as per the Hello12 example below.

Arthur Ryman


|---------+---------------------------->
|         |           Steve Tuecke     |
|         |           <tuecke@mcs.anl.g|
|         |           ov>              |
|         |           Sent by:         |
|         |           www-ws-desc-reque|
|         |           st@w3.org        |
|         |                            |
|         |                            |
|         |           03/21/2003 11:24 |
|         |           AM               |
|         |                            |
|---------+---------------------------->
  >---------------------------------------------------------------------------------------------------------------------------------------------|
  |                                                                                                                                             |
  |       To:       Arthur Ryman/Toronto/IBM@IBMCA                                                                                              |
  |       cc:       Steve Tuecke <tuecke@mcs.anl.gov>, www-ws-desc@w3.org, www-ws-desc-request@w3.org                                           |
  |       Subject:  Re: Small language clarification in portType extension                                                                      |
  |                                                                                                                                             |
  |                                                                                                                                             |
  >---------------------------------------------------------------------------------------------------------------------------------------------|




Arthur,

Right.  So you are not disagreeing with my comment that the language of
this note is unclear in the diamond case.  But you are adding that there is

another case that is not correctly explained by this note as well?  I
agree.  My understanding is the same as yours on the interpretation of your

example.

The "diamond inheritance case" I was bringing up is:

     <message name="stringMessage">
         <part name="name" type="xsd:string"/>
     </message>

     <interface name="A">
         <operation name="hello">
             <input message="tns:stringMessage" name="request"/>
             <output message="tns:stringMessage" name="response"/>
         </operation>
     </interface >

     <interface name="B" extends="tns:A">
         ...
     </interface >

     <interface name="C" extends="tns:A">
         ...
     </interface >

     <interface name="D" extends="tns:B tns:C">
         ...
     </interface >

-Steve

At 09:19 AM 3/21/2003, Arthur Ryman wrote:
>Steve,
>
>I don't think the first paragraph is correct. My understanding is that it
>is OK to derive from two different portTypes in the the same namespace
that
>have the same named operations as long as the properties of the operations
>are the same. This could occur even without diamond inheritance. For
>example,
>
>     <message name="stringMessage">
>         <part name="name" type="xsd:string"/>
>     </message>
>
>     <interface name="Hello1">
>         <operation name="hello">
>             <input message="tns:stringMessage" name="request"/>
>             <output message="tns:stringMessage" name="response"/>
>         </operation>
>     </interface >
>
>     <interface name="Hello2">
>         <operation name="hello">
>             <input message="tns:stringMessage" name="request"/>
>             <output message="tns:stringMessage" name="response"/>
>         </operation>
>     </interface >
>
>     <interface name="Hello12" implements="tns:Hello1 tns:Hello2">
>     </interface >
>
>
>Hello12 is OK and has a single operation hello, which it inherits from
both
>Hello1 and Hello2. This is OK because the definitions of hello in Hello1
>and Hello2 don't conflict.
>
>Arthur Ryman
>
>
>|---------+---------------------------->
>|         |           Steve Tuecke     |
>|         |           <tuecke@mcs.anl.g|
>|         |           ov>              |
>|         |           Sent by:         |
>|         |           www-ws-desc-reque|
>|         |           st@w3.org        |
>|         |                            |
>|         |                            |
>|         |           03/20/2003 08:53 |
>|         |           PM               |
>|         |                            |
>|---------+---------------------------->
>
>  >
---------------------------------------------------------------------------------------------------------------------------------------------|

>   |
>                                                                        |
>   |       To:       www-ws-desc@w3.org
>                                                                        |
>   |       cc:
>                                                                        |
>   |       Subject:  Small language clarification in portType
> extension
> |
>   |
>                                                                        |
>   |
>                                                                        |
>
>  >
---------------------------------------------------------------------------------------------------------------------------------------------|

>
>
>
>
>Section 2.5.1 (The Port Type Operation Component) reads:
>
>"Note:
>Due to the above rules, if two port types that have the same value for
>their {target namespace} property also have one or more operations that
>have the same value for their {name} property then those two port types
>cannot both form part of the derivation chain of a derived port type.
>Therefore it is considered good practice to ensure that operation names
>within a namespace are unique, thus allowing such derivation to occur
>without error."
>
>I suggest adding the word, "... if two DIFFERENT port types have the same
>value ...".  A reviewer questioned whether the current language meant that
>the diamond inheritance case is illegal (B extends A, C extends A, D
>extends B and C).  But, of course, we specifically decided the diamond
>inheritance case is legal, as reflected in the main normative text right
>above this, which reads:
>
>"In cases where, due to a port type extending one or more other port
types,
>
>two or more port type operation components have the same value for their
>{name} and {target namespace} properties, then the component models of
>those port type operation components MUST be equivalent (see 2.12
>
>Equivalence of components). If the port type operation components are
>equivalent then they are considered to collapse into a component. It is an
>error if two port type operation components have the same value for their
>{name} and {target namespace} properties but are not equivalent."
>
>I think the addition of the word "different" would make the intent of this
>note more clear.
>
>-Steve
Received on Friday, 21 March 2003 12:57:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:23 GMT