- From: Jacek Kopecky <jacek@systinet.com>
- Date: 12 Oct 2002 17:54:51 +0200
- To: Martin Gudgin <mgudgin@microsoft.com>
- Cc: WS Description WG <www-ws-desc@w3.org>
Gudge, I admit I was not aware that point 1 is true (which was made clear to me by Don Mullen's citation [1] of XML Schema part 1 section 4.2.3). I understand the cited text works recursively to make point 1 true. Now that I am aware of that, I'm confused on why a.xs cannot reference c.xs schema components, if a.xs contains them. Effectively, XML Schema is inconsistent here - for internal referencing it needs an explicit import statement, but for external use (the POV of the user of that schema) deep importing works. In other words, point 1 is true everywhere *except* in XML Schema. Is there a rationale for this inconsistency (at least as I see it)? Knowing only the requirement that all referenced namespaces be imported, I understood that a schema only contains the schema components it actually defines, and not those it imports. I think we can go both ways now - either admitting XML Schema mandatory import of referenced namespaces is at least curious (and accepting point 1) or admitting point 1 isn't really true and creating a schema import statement. I also think we need a schema import statement in WSDL anyway because how do we import an *external* schema in a schema language that doesn't behave like XML Schema in terms of point 1? Best regards, Jacek Kopecky Senior Architect, Systinet Corporation http://www.systinet.com/ [1] http://lists.w3.org/Archives/Public/www-ws-desc/2002Oct/0059.html On Sat, 2002-10-12 at 02:43, Martin Gudgin wrote: > > Jacek, > > I'm afraid I disagree with your analysis of how schema import works. > Here's why. > > Taking your example: > > Given three schema documents a.xsd, b.xsd and c.xsd with three separate > target namespaces, where a.xsd imports b.xsd imports c.xsd it is my > understanding that the following statements are true: > > 1. The resulting schema contains components from all three namespaces > > 2. Components in namespace a can only reference components in namespace > a and/or namespace b > > 3. Components in namespace b can only reference components in namespace > b and/or namespace c > > 4. Components in namespace c can only reference other components in > namespace c. > > Note that the reason components in namespace a cannot reference > components in namespace c ( point 2 ) is because a.xsd does not have an > import for namespace c and the schema spec is very clear that you cannot > reference things in a namespace you have not imported ( same applies to > points 3 and 4 ). > > However, the critical point from the POV of the component model for WSDL > is point 1. All we need to say is that for any <xs:schema> element in > <wsdl:types> ALL the schema components directly defined in the > <xs:schema> and those directly imported are visible to the rest of the > WSDL components and can be referenced. Strictly speaking we could also > say that you can reference components in other namespaces the are > imported at a deeper level, because those components ARE present, but > there would be no way of knowing about them in the WSDL itself without a > priori knowledge of the schemas you were directly importing. > > Gudge >
Received on Saturday, 12 October 2002 11:54:59 UTC