W3C home > Mailing lists > Public > public-ws-desc-comments@w3.org > June 2005

RE: wsdl:import semantics is different from xs:import

From: <noah_mendelsohn@us.ibm.com>
Date: Thu, 2 Jun 2005 19:22:15 -0400
To: "Jonathan Marsh" <jmarsh@microsoft.com>
Cc: public-ws-desc-comments@w3.org, w3c-xml-schema-wg@w3.org
Message-ID: <OF25596EFA.790E8D1F-ON85257014.007F48A3-85257014.0080BAEC@lotus.com>

Again writing just for myself, and similar in spirit to the quibble raised 
in my note of ealier today.  Your proposed text says:

> components imported by one of the imported 
> documents are not available to the original importing 
> document unless the are imported
> directly by that document.

This is not quite true of schema, in that it implies that "components are 
imported by a document."  Components are imported by a schema processor 
using most any rules it likes.  One such rule is that there can be 
schemaLocation hints on an import, and the processor may honor such a 
hint.  Note however that the effect is then pervasive.  Thus, if we have 
composed into the same schema:

In schema document 1:

        <import namespace="ns1URI" schemaLocation="docURI"/>
        <element name="n" type="ns1:t" xmlns:ns1="ns1URI"/>

In schema document 2:

        <import namespace="ns1URI"/>
        <element name="n" type="ns1:t" xmlns:ns1="ns1URI"/>

It >MUST< be the case that either both references to ns1:t succeed or 
neither succeed.  That's true regardless of whether the reason that the 
component for type ns1:t was brought in by following that first 
schemaLocation hint.   The principle purpose of import is not to import 
components, but rather to license references to components in the 
namespace.    I wonder if you might do better to say:

"The WSDL import element information item is
modeled after the XML Schema import element
information item (see [XML Schema: Structures],
section 4.2.3 "References to schema components
across namespaces"). Specifically, it can be used
to import components from WSDL descriptions that
do not share a target namespace with the importing
document. 

As with XML schema, each document making references
to components in a given (foreign) namespace MUST
have an import for that namespace (but not necessarily
providing a schemaLocation identifying the document
in which the referenced component is declared).  In
other respects, the visibility of components is 
pervasive; if two WSDL documents import the same 
namespace then they will have access to the same
components from the imported namespace (I.e.
regardless of which, if any, schemaLocations
are provided on the respective imports.)"

That's my understanding of how XML Schema works.  Presuming I have that 
right, I believe the position of the Schema WG would be that you should 
either change your description to indeed agree with schema's behavior, or 
else back off on the claim that WSDL is indeed modeled on Schema.

I should say that I think we're all grateful for your efforts both to line 
up with our behavior and to get the details right.  I'm sorry that I did 
not notice these nuances in your redrafting earlier.  I'm sure other 
members of the Schema WG will weigh in to the extent they disagree with my 
analysis.  I hope this is helpful.

Noah


--------------------------------------
Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
Received on Thursday, 2 June 2005 23:22:31 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:20:31 GMT