RE: Importing schemata into WSDL

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