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

RE: Clarification required on Interface Extension

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Tue, 24 Jan 2006 12:59:10 -0800
Message-ID: <37D0366A39A9044286B2783EB4C3C4E8015F1B8C@RED-MSG-10.redmond.corp.microsoft.com>
To: "Arthur Ryman" <ryman@ca.ibm.com>, "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>
I haven't yet added this topic as a CR issue, as it seems to be more of
a question.  Please let us know if you'd like us to consider a specific
change to one of the specs.



From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On
Behalf Of Arthur Ryman
Sent: Sunday, January 15, 2006 4:47 PM
To: John Kaputin (gmail)
Cc: John Kaputin; woden-dev@ws.apache.org; www-ws-desc@w3.org;
Subject: Re: Clarification required on Interface Extension



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 


Arthur Ryman/Toronto/IBM@IBMCA 


woden-dev@ws.apache.org, John Kaputin <KAPUTIN@uk.ibm.com>,


Re: Clarification required on Interface Extension




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
"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

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

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?

John Kaputin.

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


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]. 

[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 <mailto:jakaputin@gmail.com>

01/13/2006 09:17 AM 

Please respond to



www-ws-desc@w3.org <mailto:www-ws-desc@w3.org>  


John Kaputin <KAPUTIN@uk.ibm.com <mailto:KAPUTIN@uk.ibm.com> >,
woden-dev@ws.apache.org <mailto:woden-dev@ws.apache.org>  


Clarification required on Interface Extension




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
ion>  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?

John Kaputin. 
Received on Tuesday, 24 January 2006 20:59:27 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:54:58 UTC