W3C home > Mailing lists > Public > www-ws-desc@w3.org > January 2006

Re: Clarification required on Interface Extension

From: Arthur Ryman <ryman@ca.ibm.com>
Date: Sun, 15 Jan 2006 19:46:45 -0500
To: "John Kaputin (gmail)" <jakaputin@gmail.com>
Cc: John Kaputin <KAPUTIN@uk.ibm.com>, woden-dev@ws.apache.org, www-ws-desc@w3.org, www-ws-desc-request@w3.org
Message-ID: <OF2AC78919.07B1ED6A-ON852570F8.00032158-852570F8.00043DE2@ca.ibm.com>
John,

The {interface operations} property only contains the declared operations, 
i.e. those that are children of the <interface> element. The Primer is an 
informal document. You shouldn't infer that is is talking about the 
{interface operations} property. The Primer is stating that the extended 
interface supports two operations, not that it's {interface operations} 
property contains two operations.

You understand {extended interfaces} correctly - it just contains those 
listed by QName in the extends attribute. 

Yes, an interface can extend other interfaces as long as you import their 
namespaces. They do not have to be defined in the same <description>. Of 
course, extension must be acyclic though.

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> 
Sent by: www-ws-desc-request@w3.org
01/15/2006 05:56 PM

To
Arthur Ryman/Toronto/IBM@IBMCA
cc
woden-dev@ws.apache.org, John Kaputin <KAPUTIN@uk.ibm.com>, 
www-ws-desc@w3.org
Subject
Re: Clarification required on Interface Extension






Arthur,
I think I understand you correctly on "declared" Interface operations, 
faults, features and properties. That is, the values in the associated 
Interface properties (e.g. {interface operations}) are just those defined 
directly within the Interface, but do not include values from the 
interfaces it extends.

However,  the example in Primer 2.4.2 Interface Inheritance contains the 
text:
"As a result of the inheritance, the reservationInterface now contains two 
operations: opCheckAvailability and opLogMessage"

Is this suggesting that the {interface operations} property of 
reservationInterface contains opCheckAvailability and opLogMessage and if 
so, does this contradict the statement about declared operations (i.e. the 
only declared operation in reservationInterface is opCheckAvailability)?

My understanding for {extended interfaces} as a "set of declared 
Interfaces..." is that this property will only contain the Interfaces 
referred to directly by QName within the 'extends' attribute, but not any 
Interfaces that those interfaces extend (i.e. no indirectly extended 
interfaces).

Can the "extends" attribute refer to Interfaces defined in an imported 
WSDL or can it only refer to Interfaces defined directly within the 
<description> containing the extending interface?

thanks,
John Kaputin.

On 1/13/06, Arthur Ryman <ryman@ca.ibm.com> wrote:

John, 

The WG decided to take a uniform approach on all properties that could 
possibly be "flattened".  The decision was that the component model would 
contain only the declared values. This rule applies to the following 
properties: 

1. The extended interfaces of an interface {extended interfaces} 
2. The operations of an interface. {interface operations} 
3. The faults of an interface. {interface faults} 
4. Features of a component. {features} 
5. Properties of a component. {properties} 

I believe we are fairly consistent in referring to these unflattened 
properties as the "declared" properties. The flattened properties don't 
have names in the component model, but do in the Z Notation. [1] The group 
felt that including the flattened properities in the component model might 
be misinterpretted as overly prescriptive to implementers, i.e. that 
implementers might feel they had to explicitly compute the flattened 
values, which would be expensive. An implementation is of course free to 
use any technique, e.g. lazy evaluation, caching, etc. to improve 
performance. 

FYI, the Z Notation names for the flattened properties are: 

1. allExtendedInterfaces 
2. allInterfaceOperations 
3. allInterfaceFaults 
4. inScopeFeatures 
5. inScopeProperties 

If you think it would be better to include these flattened properities in 
the component model, let us know. That would be valuable implementation 
experience feedback, which is one of the purposes of the CR phase. There 
is actually a precedent for including flattened properties in a component 
model, i.e. the [in-scope namespaces]  property in XML Infoset [2]. 

[1] http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20-z.html 
[2] http://www.w3.org/TR/xml-infoset/ 


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> 
01/13/2006 09:17 AM 

Please respond to
woden-dev



To
www-ws-desc@w3.org 
cc
John Kaputin <KAPUTIN@uk.ibm.com>, woden-dev@ws.apache.org 
Subject
Clarification required on Interface Extension








Hi,
I am trying to implement extended interfaces in the Apache Woden WSDL 2.0 
processor and I would like clarification on the scope of the Interface 
properties with respect to interface extensions. See Part 1 section 2.2.1 
The Interface Component.

This section  contains the text: "The set of operations available in an 
interface includes all the operations defined by the interfaces it 
extends, along with any operations it directly defines."  So I would 
expect the  {interface operations} property of  the Interface component to 
contain its own directly defined operations and the operations from any 
Interfaces it extends. That is, a flattened, abstract view of all the 
Interface Operations accessible by the Interface.

However, this section also contains the text:
"The operations directly defined on an interface are referred to as the 
declared operations of the interface."
"{interface operations} OPTIONAL. A set of declared Interface Operation 
components. "

The use of 'declared' in this latter text suggests that {interface 
operations} contains only the operations directly defined by the 
interface, but NOT those defined by interfaces that it extends. In which 
case to get the complete set of operations available to the Interface, I 
would need to access it's {extended interfaces} property and retrieve the 
operations from those interfaces too. Can someone please carify this for 
me?

Likewise, this section contains the text:
"{extended interfaces} OPTIONAL. A set of declared Interface components 
which this interface extends."

What does 'declared' mean here .... just the <interface> elements directly 
defined within the containing <description>? Or as section 2.19 QName 
Resolution suggests, does {extended interfaces} contain the Interfaces 
directly defined within the containing Description AND any Interfaces 
included or imported by that Description?

Thanks,
John Kaputin. 
Received on Monday, 16 January 2006 00:47:06 GMT

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