Re: Is schemaLocation Required When Importing Inline Schemas?

Amelia A Lewis wrote:
> Hmm.  Either I don't understand, or this isn't a valid case.
> 
> On Wed, 30 Mar 2005 10:17:39 -0800
> Anish Karmarkar <Anish.Karmarkar@oracle.com> wrote:
> 
>>For example, wsdl1 imports wsdl2 and wsdl2 contains a definition of a 
>>complexType {http://example.com/type}bar that is well know and cached by 
> 
> 
> wsdl1 can't see the types defined in schemas inside wsdl2 if it imports
> wsdl2.  It can see those if it includes it (arrrgggggghhhhhhh!).  That
> is, change the above to "wsdl2 contains an import or embed of a schema
> which contains a definition of a complexType ...".
> 
> 
>>the processor processing wsdl1. wsdl1 does not use/reference any 
>>constructs defined in wsdl2 that use {http://example.com/type}bar, but 
>>wsdl1 does directly reference {http://example.com/type}bar complexType 
> 
> 
> It can't see the schema.  An embedded schema (as I understand it) is
> equivalent to an imported schema.  Consequently, if wsdl1 imports
> wsdl2, it can only see the "implicit exports" of wsdl2, not the stuff
> that wsdl2 imports.
> 
> 
>>(and does the relevant import of the namespace).
>>In the above case, the processor processing wsdl1 should be allowed to 
>>ignore the inline definition of the complexType 
>>{http://example.com/type}bar in wsdl2.
> 
> 
> Err.  wsdl1, if it wants to use {http://example.com/type}bar, must
> import the schema from somewhere.  It can't see wsdl2's imported/
> embedded schemata (unless I've misunderstood things again, *sigh*, but
> it certainly *ought* to be the case that an embedded schema is treated
> as though it were an "inlined import": easy to understand and explain).
> 

wsdl1 does import the schema for namespace http://example.com/type (and 
does not have the schemaLocation attribute) and then proceeds to use it. 
But wsdl1 also imports wsdl2 which contains the embedded schema for the 
same namespace http://example.com/type.

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."

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.

It *seems* to me that the case that I have outlined is valid, but I may 
have misunderstood the specs and would be happy to be corrected.

-Anish
--

Received on Wednesday, 30 March 2005 20:27:36 UTC