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

RE: Contradictions regarding transitivity of wsdl:import

From: Matt Long <mlong@mvsquared.net>
Date: Thu, 14 Apr 2005 10:57:45 -0000
To: "David Booth" <dbooth@w3.org>, "Martin Gudgin" <mgudgin@microsoft.com>
Cc: www-ws-desc@w3.org
Message-Id: <200504141057346.SM00932@UebiMiau>

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 15:00:37 GMT

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