- From: Matt Long <mlong@mvsquared.net>
- Date: Thu, 14 Apr 2005 15:54:35 -0000
- To: "Glen Daniels" <gdaniels@sonicsoftware.com>, "Martin Gudgin" <mgudgin@microsoft.com>, "Matt Long" <mlong@mvsquared.net>, "David Booth" <dbooth@w3.org>
- Cc: www-ws-desc@w3.org
Hi Glen, I think the source of the transitivity discussion is rooted in the fact that inheritance is transitive and that the spec allows interfaces to be extended. Intuitively, one may think that section 4.2 use of 'not transitive' is in error at first glance, because of this fact. The example that A extends B and imports B's namespace, and B extends C and import's C's namespace does not imply transitivity, i.e., A has no knowledge of C which is not transitive. A fully extends B without knowledge of C, as Gudge says, "This is encapsulation." If you wanted the example to 'mimic' transitivity then (and only then) A would have to import C's namespace, which I do not intuitively see any purpose. Point being, I do not think Section 2.1.3 or 4.2 is in error. -- Matt Long MV Squared Technologies mlong@mvsquared.net 901-848-2640 --------- Original Message -------- From: Glen Daniels <gdaniels@sonicsoftware.com> To: Martin Gudgin <mgudgin@microsoft.com>, Matt Long <mlong@mvsquared.net>, David Booth <dbooth@w3.org> Cc: www-ws-desc@w3.org Subject: RE: Contradictions regarding transitivity of wsdl:import Date: 14/04/05 12:36 > > > > +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 > > > > > > > > > > > > > > > > > > > > > > > ________________________________________________ This message has been sent via webmail. Please forward unsolicited email (spam) to... abuse@hostonce.com
Received on Thursday, 14 April 2005 19:57:54 UTC