- From: Martin Gudgin <mgudgin@microsoft.com>
- Date: Thu, 14 Apr 2005 10:13:52 -0700
- To: "David Booth" <dbooth@w3.org>
- Cc: <www-ws-desc@w3.org>
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