Re: Does {parent} affect equivalence of components for Interface Extension?

John,

I replied to the question of whether you need to consider {parent} - YES.

You also ask if Section 2.4 is necessary. Also YES, but I agree it is a 
little redundant. You could certainly have two Intertace components that 
contained Interface Operations that had the same {name} property. However, 
2.4 implies that an Interface can't extend both of them.

Arthur Ryman,
IBM Software Group, Rational Division

blog: http://ryman.eclipsedevelopersjournal.com/
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca



"John Kaputin (gmail)" <jakaputin@gmail.com> 
04/25/2006 06:14 AM
Please respond to
woden-dev@ws.apache.org


To
www-ws-desc@w3.org
cc
woden-dev@ws.apache.org, "John Kaputin" <KAPUTIN@uk.ibm.com>
Subject
Does {parent} affect equivalence of components for Interface Extension?






I'm implementing interface extension in Apache Woden but I'm a bit 
confused on equivalence of components nested within interfaces when 
interface extension is involved.  I'd like clarification on how the 
{parent} property is used when testing equivalence of components and when 
collapsing equivalent components to a single component.

InterfaceOperation in Part 1 Section 2.4 says:
In cases where, due to an interface extending one or more other 
interfaces, two or more Interface Operation components have the same value 
for their {name} property, then the component models of those Interface 
Operation components MUST be equivalent (see 2.17 Equivalence of 
Components).? If the Interface Operation components are equivalent then 
they are considered to collapse into a single component.

Consider the case where two operations are defined in different 
interfaces, with one interface extending the other, and the operations are 
equivalent, except their {parent} property because they are declared in 
different interfaces. 

Here's some example XML:

<description ...tns=.... >
    <interface name="betty">
        <operation name="foo" pattern="urn:bar"/>
     </interface>
    <interface name="boop" extends="tns:betty">
        <operation name="foo" pattern="urn:bar"/>
     </interface>
</description>


Does the difference in {parent} mean that the two "foo" operations are not 
equivalent, or should {parent} be ignored when testing for equivalence 
here?

If {parent} should be ignored, perhaps Section 2.17 Equivalence of 
Components does not strictly apply (i.e. it says all properties should be 
equal).  But if {parent} should be ignored for equivalence testing in this 
case, then when collapsing the two equivalent operations into one 
InterfaceOperation component what will be the value of {parent} ("betty" 
or "boop")?

On the other hand, if {parent} should be part of the equivalence test then 
these two operations can never be equivalent and the paragraph in Section 
2.4 is perhaps unnecessary.

thanks,
John Kaputin.

Received on Tuesday, 25 April 2006 14:01:12 UTC