Re: Is schemaLocation Required When Importing Inline Schemas?

Amy,

I completely agree with your statements about about imports work. I assume 
the WSDL document has an <xs:import> for the namespace defined in some 
other document.

What I'd like to get is a clear statement about whether a schemaLocation 
is required in the case that the WSDL document has already processed the 
WSDL document that contains the inline schema.

I have been proceding on the assumption that a WSDL document is either 
valid or invalid, i.e. that this can be determined by looking at the 
document and whatever else it references, and that this does not depend on 
what any given processor does.

Let A.wsdl contain an inline schema with namespace http://example.com/type
.

Let B.wsdl <wsdl:import> A.wsdl and contain a reference to an element 
defined in the above inline schema. Assume B.wsdl also contains an 
<xs:import>. 
Question: in B.wsdl, is <xs:import namespace="http://example.com/type"/> 
valid?

Arthur Ryman,
Rational Desktop Tools Development

phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/



Amelia A Lewis <alewis@tibco.com> 
Sent by: www-ws-desc-request@w3.org
03/30/2005 04:04 PM

To
Anish Karmarkar <Anish.Karmarkar@oracle.com>
cc
www-ws-desc@w3.org
Subject
Re: Is schemaLocation Required When Importing Inline Schemas?







Hmm, again.

On Wed, 30 Mar 2005 11:10:33 -0800
Anish Karmarkar <Anish.Karmarkar@oracle.com> wrote:
> The proposal as it stands says:
> "All inline schemas that are contained in a WSDL document and any other 
> WSDL documents that it directly or indirectly imports or includes MUST 
> be used when resolving QName references to elements or types that belong 

> to namespaces that  are imported via xs:import elements that have no 
> schemaLocation attribute."

Well, all I can really say is that schema import doesn't work like
this, and we claim to be doing more or less the same thing.

> This implies that any element/type defined in namespace 
> http://example.com/type, when processing wsdl1, MUST be the one defined 
> in the wsdl2 embedded schema.

Ugh.  If we've done this in our attempts to define import and include,
we've killed ourselves.  If schema A imports schema B, and schema B
imports schema C, what components of schema C are visible in schema A?

a) all of them
b) only the ones used by B
c) none of them

The correct answer is "c".  This is surprising, to many people, but it
is how schema import works.

If embedded schemas are treated as inlined imports, then it follows
that only the embedded schema itself is visible to its containing WSDL;
none of its imports are.  Similarly, the WSDL components defined in a
WSDL import would be visible, but none of the schema components
(whether imported or imported inline) would be.

If WSDL is redefining the horizon of visibility, this is going to cause
major issues with schema consistency.

Amy!
-- 
Amelia A. Lewis
Senior Architect
TIBCO/Extensibility, Inc.
alewis@tibco.com

Received on Wednesday, 30 March 2005 21:48:51 UTC