W3C home > Mailing lists > Public > www-ws-desc@w3.org > April 2005

RE: Contradictions regarding transitivity of wsdl:import

From: Martin Gudgin <mgudgin@microsoft.com>
Date: Thu, 14 Apr 2005 11:49:44 -0700
Message-ID: <DD35CC66F54D8248B6E04232892B6338056B7F2E@RED-MSG-43.redmond.corp.microsoft.com>
To: "Glen Daniels" <gdaniels@sonicsoftware.com>, "Matt Long" <mlong@mvsquared.net>, "David Booth" <dbooth@w3.org>
Cc: <www-ws-desc@w3.org>

Sorry, my +1 was to the fact that if A *wants* to be aware of components
in namespace B and namespace C then it has to explicitly import both of
them.

Gudge

-----Original Message-----
From: Glen Daniels [mailto:gdaniels@sonicsoftware.com] 
Sent: Thursday, April 14, 2005 11:39 AM
To: Martin Gudgin; Matt Long; David Booth
Cc: www-ws-desc@w3.org
Subject: RE: Contradictions regarding transitivity of wsdl:import


+1, then - perhaps I misunderstood what Matt was saying in his example
that you +1'ed before. :)

Thanks,
--G 

> -----Original Message-----
> From: Martin Gudgin [mailto:mgudgin@microsoft.com] 
> Sent: Thursday, April 14, 2005 1:59 PM
> To: Glen Daniels; Matt Long; David Booth
> Cc: www-ws-desc@w3.org
> Subject: RE: Contradictions regarding transitivity of wsdl:import
> 
> No, I'm saying the exact opposite. This is encapsulation. A imports B.
> That's all A needs to do in order to use the stuff in B. A 
> doesn't need
> to know that B imports C. 
> 
> Gudge
> 
> 
> -----Original Message-----
> From: Glen Daniels [mailto:gdaniels@sonicsoftware.com] 
> Sent: Thursday, April 14, 2005 10:33 AM
> To: Martin Gudgin; Matt Long; David Booth
> Cc: www-ws-desc@w3.org
> Subject: RE: Contradictions regarding transitivity of wsdl:import
> 
> 
> Hi Gudge, all:
> 
> Are you saying that if I extend an interface "I" in namespace "foo" it
> isn't good enough to import "foo", but I also MUST import any 
> namespaces
> used by components inside "I"?  In other words, the child WSDL below
> would NOT be legal without <import namespace="http://NSGrandparent"/>?
> 
> WSDL for "http://NSChild":
> ---------
> <import namespace="http://NSParent"/>
> <interface name="child" extends="p:parent"
>      xmlns:p="http://NSParent">
>  ...
> </interface>
> ---------
> 
> 
> WSDL for "http://NSParent":
> ---------
> <import namespace="http://NSGrandparent"/>
> <interface name="parent" extends="g:grandparent"
>       xmlns:g="http://NSGrandparent">
>  ...
> </interface>
> ---------
> 
> If so this seems a bit annoying.  Does schema work this way?
> 
> --Glen
> 
> > -----Original Message-----
> > From: www-ws-desc-request@w3.org 
> > [mailto:www-ws-desc-request@w3.org] On Behalf Of Martin Gudgin
> > Sent: Thursday, April 14, 2005 1:15 PM
> > To: Matt Long; David Booth
> > Cc: www-ws-desc@w3.org
> > Subject: RE: Contradictions regarding transitivity of wsdl:import
> > 
> > 
> > +1
> > 
> > Gudge
> > 
> > -----Original Message-----
> > From: Matt Long [mailto:mlong@mvsquared.net] 
> > Sent: Thursday, April 14, 2005 3:58 AM
> > To: David Booth; Martin Gudgin
> > Cc: www-ws-desc@w3.org
> > Subject: RE: Contradictions regarding transitivity of wsdl:import
> > 
> > Correct me if I am wrong, but the value of wsdl:import is 
> that you can
> > utilize a reference to a different target namespace than 
> the importing
> > document.  Therefore, in the list of QName encoded with 
> > 'extends' may be
> > contain a QName that references a different target 
> namespace than the
> > importing document such that wsdl:import is required.
> > 
> > If A inherits B inherits C, where A imports B imports C, it seems
> > imperative
> > to understand which target namespaces A, B, C belong, and which
> > documents
> > wsdl:import which namespaces.
> > 
> > Example 1:
> > If 'A' imports 'B' imports 'C': then for 'A' inherits 'B' 
> inherits 'C'
> > to
> > exist:
> > 
> > 'A' must wsdl:import *both* 'B' and 'C' namespaces.
> > 
> > 
> > Example 1 is actually non-transitive (even if it does look that way)
> > because
> > *if* 'A' does not wsdl:import 'C' namespace, then only 'A' 
> > inherits 'B'
> > (B
> > does not inherit C with respect to 'A', which is what makes in
> > non-transitive)
> > 
> > >From [1]
> > 
> > "...Specifically, it can be used to import components from WSDL
> > descriptions
> > that do not share a target namespace with the importing document.
> > 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. ..."
> > 
> > [1] http://www.w3.org/TR/wsdl20/#imports
> > 
> > 
> > --
> > Matt Long
> > MV Squared Technologies
> > mlong@mvsquared.net
> > 901-848-2640
> > 
> > 
> > --------- Original Message --------
> > From: David Booth <dbooth@w3.org>
> > To: Martin Gudgin <mgudgin@microsoft.com>
> > Cc: www-ws-desc@w3.org
> > Subject: RE: Contradictions regarding transitivity of wsdl:import
> > Date: 13/04/05 22:15
> > 
> > >
> > >
> > > 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 &quot;A imports B imports C&quot; 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 {&quot;The set 
> of Interface
> > > components corresponding to all the interface element information
> > items
> > > in the [children] of the description element information 
> > item&quot; 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
> > &quot;the
> > > components defined in B are in one namespace whereas the 
> > components B
> > > imports from C are in another namespace&quot;, 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:
> > > &gt;
> > > &gt; &gt; -----Original Message-----
> > > &gt; &gt; From: www-ws-desc-request@w3.org
> > > &gt; &gt; [mailto:www-ws-desc-request@w3.org] On Behalf Of 
> > David Booth
> > > &gt; &gt; Sent: 13 April 2005 10:38
> > > &gt; &gt; To: www-ws-desc@w3.org
> > > &gt; &gt; Subject: Contradictions regarding transitivity of
> > wsdl:import
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt; Statements in Part 1 about the meaning of 
> > wsdl:import appear
> > to
> > be
> > > &gt; &gt; contradictory.  On one hand, sec 4.2 says that 
> wsdl:import
> > is
> > not
> > > &gt; &gt; transitive.  On the other hand, sec 2.1.1 says 
> there is no
> > difference
> > > &gt; &gt; between included/imported components and 
> > components derived
> > > &gt; &gt; directly from a
> > > &gt; &gt; WSDL 2.0 document, and this logically leads to 
> > import being
> > > &gt; &gt; transitive.
> > > &gt;
> > > &gt; I don't understand why you would draw this 
> conclusion. The only
> > > &gt; difference between imported and included conmponents is that
> > included
> > > &gt; components are in one namespace and imported 
> components are in
> > another.
> > > &gt;
> > > &gt; &gt;
> > > &gt; &gt; Suppose WSDL document A imports WSDL document B, which
> > imports
> > WSDL
> > > &gt; &gt; document C, which neither includes nor imports anything.
> > The
> > > &gt; &gt; components of
> > > &gt; &gt; C will be only the components derived directly 
> > from the XML
> > > &gt; &gt; Infoset of
> > > &gt; &gt; C.  Since B imports C, clearly the set of 
> components for B
> > > &gt; &gt; will include the
> > > &gt; &gt; set of components for C.
> > > &gt;
> > > &gt; &gt; So far so good.  But A now imports
> > > &gt; &gt; B, so what
> > > &gt; &gt; components will A have?  We have already 
> established that
> > the
> > set of
> > > &gt; &gt; components of B includes the set of components 
> from C as a
> > > &gt; &gt; subset.
> > > &gt;
> > > &gt; wsdl:import like xs:import is namespace based. The components
> > defined
> > in
> > > &gt; C and not in the same namespace as the compontents 
> defined in B
> > and
> > so
> > > &gt; only the components from B are imported into A.
> > > &gt;
> > > &gt; &gt; Since
> > > &gt; &gt; there is no distinction made between the subset of
> > components
> > that
> > > &gt; &gt; originated in C and the other components, the 
> > components of
> > A
> > must
> > > &gt; &gt; therefore also include the components of C as a subset.
> > This
> > > &gt; &gt; contradicts
> > > &gt; &gt; the statement that &quot;wsdl:import is not
> > transitive&quot;.
> > > &gt; &gt;
> > > &gt; &gt; The basic problem here is that the spec is 
> > referring to the
> > > &gt; &gt; *components* of
> > > &gt; &gt; the imported document.  Those components only 
> exist if we
> > > &gt; &gt; interpret the
> > > &gt; &gt; meaning of the imported document according to 
> the WSDL 2.0
> > > &gt; &gt; specification,
> > > &gt; &gt; at which point there is no way to know whether those
> > imported
> > > &gt; &gt; components
> > > &gt; &gt; originated in the imported document or another document
> > > &gt; &gt; (transitively).
> > > &gt;
> > > &gt; Yes there is. As noted above the components defined 
> in B are in
> > one
> > > &gt; namespace whereas the components B imports from C are 
> > in another
> > > &gt; namespace. The wsdl:import in A specifies that it is 
> importing
> > > &gt; components in the namespace of B.
> > > &gt;
> > > &gt; &gt;
> > > &gt; &gt; Here are the relevant excerpts from the spec:
> > > &gt; &gt;
> > > &gt; &gt; Part 1 sec 4.2 Importing Descriptions
> > > &gt; &gt;
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > > &gt; &gt; .html?content-type=text/html;%20charset=utf-8#imports
> > > &gt; &gt; second paragraph says:
> > > &gt; &gt; [[
> > > &gt; &gt; Components in directly imported descriptions are 
> > part of the
> > > &gt; &gt; component
> > > &gt; &gt; model of the importing description. Directly 
> > imported means
> > > &gt; &gt; that component
> > > &gt; &gt; importation is not transitive; components 
> > imported by one of
> > > &gt; &gt; the imported
> > > &gt; &gt; documents are NOT available to the original importing
> > > &gt; &gt; document unless the
> > > &gt; &gt; are imported directly by that document.
> > > &gt; &gt; ]]
> > > &gt; &gt;
> > > &gt; &gt; But section 2.1.1 The Description Component
> > > &gt; &gt;
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > > &gt; &gt;
> > .html?content-type=text/html;%20charset=utf-8#Description_details
> > > &gt; &gt; sixth paragraph says:
> > > &gt; &gt; [[
> > > &gt; &gt; The set of interfaces/binding/services/etc. 
> > available in the
> > > &gt; &gt; Description
> > > &gt; &gt; component include those that are defined within the
> > component
> > > &gt; &gt; itself and
> > > &gt; &gt; those that are imported and/or included. Note 
> that at the
> > > &gt; &gt; component model
> > > &gt; &gt; level, there is no distinction between directly defined
> > > &gt; &gt; components vs.
> > > &gt; &gt; imported/included components.
> > > &gt; &gt; ]]
> > > &gt; &gt; Furthermore, sec 2.1.3 Mapping Description's XML
> > Representation
> > to
> > > &gt; &gt; Component Properties
> > > &gt; &gt;
> > http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20
> > > &gt; &gt;
> > .html?content-type=text/html;%20charset=utf-8#Description_Mapping
> > > &gt; &gt; also shows no distinction between components that 
> > originated
> > > &gt; &gt; in the WSDL
> > > &gt; &gt; 2.0 document and components that originated in an
> > > &gt; &gt; included/imported document.
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt; --
> > > &gt; &gt; David Booth
> > > &gt; &gt; W3C Fellow / Hewlett-Packard
> > > &gt; &gt; Telephone: +1.617.253.1273
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt;
> > > &gt; &gt;
> > > --
> > >
> > > David Booth
> > > W3C Fellow / Hewlett-Packard
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > 
> > ________________________________________________
> > This message has been sent via webmail.
> > Please forward unsolicited email (spam) to...
> > abuse@hostonce.com
> > 
> > 
> > 
> > 
> 
> 
Received on Thursday, 14 April 2005 18:49:47 GMT

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