- From: Arthur Ryman <ryman@ca.ibm.com>
- Date: Wed, 30 Mar 2005 16:48:49 -0500
- To: Amelia A Lewis <alewis@tibco.com>
- Cc: www-ws-desc@w3.org, www-ws-desc-request@w3.org
- Message-ID: <OF16685FDA.F2E3E43B-ON85256FD4.0075491E-85256FD4.0077D10B@ca.ibm.com>
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