RE: Contradictions regarding transitivity of wsdl:import

Your missing the fact that wsdl:import carries a namespace attribute.
Yes, the wsdl components for B include components from C. But the
components from C are NOT in the same namespace as B. And the import
statement in A *only* imports components in the namespace for B.

Gudge

-----Original Message-----
From: David Booth [mailto:dbooth@w3.org] 
Sent: Wednesday, April 13, 2005 9:17 PM
To: Martin Gudgin
Cc: www-ws-desc@w3.org
Subject: RE: Contradictions regarding transitivity of wsdl:import

Hi Gudge,

I understand that the spec was intended to make wsdl:import be
non-transitive, but I'm not getting that when I try to follow the rules
that are stated for the component model.   Can you point me to where I'm
going wrong?

Section 2.1.3, in the row for the {interfaces} property (for example)
says that its value is:
[[
The set of Interface components corresponding to all the interface
element information items in the [children] of the description element
information item, if any, plus any included or imported Interface
components (see 4. Modularizing WSDL descriptions)
]]
So in the "A imports B imports C" example, let's assume that the
{interfaces} property for A, B and C are the sets Ai, Bi and Ci,
respectively.  Further assume that I already know the set Ci, and I now
want to determine Bi (i.e., the {interfaces} property for B).  

According to the section 2.1.3 rule excerpted above, I would conclude
that the set Bi consists of the union of {"The set of Interface
components corresponding to all the interface element information items
in the [children] of the description element information item" of B} and
Ci.  (I.e., Ci is a subset of Bi.)  Correct?  Is Ci a subset of Bi?  If
not, please explain why not.  If Ci *is* a subset of Bi, then when A
imports B, by the same rule Bi would be a subset of Ai, which implies
that Ci would also be a subset of Ai.  

In other words, I don't see how this rule is differentiating between the
Ci subset of Bi, and the rest of the Bi set.  You're saying that "the
components defined in B are in one namespace whereas the components B
imports from C are in another namespace", but I don't see where this
namespace differentiation is reflected in the component model.  AFAICT,
the {interfaces} property for B is simply a set that includes Ci as a
subset, per the section 2.1.3 rule excerpted above.  

Can you explain further, what you think the rule should be (or how you
think I should interpret it differently) for computing the value of the
{interfaces} property?


On Wed, 2005-04-13 at 14:30, Martin Gudgin wrote:
>  
> > -----Original Message-----
> > From: www-ws-desc-request@w3.org 
> > [mailto:www-ws-desc-request@w3.org] On Behalf Of David Booth
> > Sent: 13 April 2005 10:38
> > To: www-ws-desc@w3.org
> > Subject: Contradictions regarding transitivity of wsdl:import
> > 
> > 
> > Statements in Part 1 about the meaning of wsdl:import appear to be 
> > contradictory.  On one hand, sec 4.2 says that wsdl:import is not 
> > transitive.  On the other hand, sec 2.1.1 says there is no
difference 
> > between included/imported components and components derived 
> > directly from a 
> > WSDL 2.0 document, and this logically leads to import being 
> > transitive.
> 
> I don't understand why you would draw this conclusion. The only
> difference between imported and included conmponents is that included
> components are in one namespace and imported components are in
another.
> 
> > 
> > Suppose WSDL document A imports WSDL document B, which imports WSDL 
> > document C, which neither includes nor imports anything.  The 
> > components of 
> > C will be only the components derived directly from the XML 
> > Infoset of 
> > C.  Since B imports C, clearly the set of components for B 
> > will include the 
> > set of components for C.  
> 
> > So far so good.  But A now imports 
> > B, so what 
> > components will A have?  We have already established that the set of

> > components of B includes the set of components from C as a 
> > subset.  
> 
> wsdl:import like xs:import is namespace based. The components defined
in
> C and not in the same namespace as the compontents defined in B and so
> only the components from B are imported into A.
>
> > Since 
> > there is no distinction made between the subset of components that 
> > originated in C and the other components, the components of A must 
> > therefore also include the components of C as a subset.  This 
> > contradicts 
> > the statement that "wsdl:import is not transitive".
> > 
> > The basic problem here is that the spec is referring to the 
> > *components* of 
> > the imported document.  Those components only exist if we 
> > interpret the 
> > meaning of the imported document according to the WSDL 2.0 
> > specification, 
> > at which point there is no way to know whether those imported 
> > components 
> > originated in the imported document or another document 
> > (transitively).
> 
> Yes there is. As noted above the components defined in B are in one
> namespace whereas the components B imports from C are in another
> namespace. The wsdl:import in A specifies that it is importing
> components in the namespace of B.
> 
> > 
> > Here are the relevant excerpts from the spec:
> > 
> > Part 1 sec 4.2 Importing Descriptions
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > .html?content-type=text/html;%20charset=utf-8#imports
> > second paragraph says:
> > [[
> > Components in directly imported descriptions are part of the 
> > component 
> > model of the importing description. Directly imported means 
> > that component 
> > importation is not transitive; components imported by one of 
> > the imported 
> > documents are NOT available to the original importing 
> > document unless the 
> > are imported directly by that document.
> > ]]
> > 
> > But section 2.1.1 The Description Component
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > .html?content-type=text/html;%20charset=utf-8#Description_details
> > sixth paragraph says:
> > [[
> > The set of interfaces/binding/services/etc. available in the 
> > Description 
> > component include those that are defined within the component 
> > itself and 
> > those that are imported and/or included. Note that at the 
> > component model 
> > level, there is no distinction between directly defined 
> > components vs. 
> > imported/included components.
> > ]]
> > Furthermore, sec 2.1.3 Mapping Description's XML Representation to 
> > Component Properties
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > .html?content-type=text/html;%20charset=utf-8#Description_Mapping
> > also shows no distinction between components that originated 
> > in the WSDL 
> > 2.0 document and components that originated in an 
> > included/imported document.
> > 
> > 
> > 
> > 
> > -- 
> > David Booth
> > W3C Fellow / Hewlett-Packard
> > Telephone: +1.617.253.1273
> > 
> > 
> > 
> > 
-- 

David Booth
W3C Fellow / Hewlett-Packard

Received on Thursday, 14 April 2005 17:13:57 UTC