- 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