- 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