- From: Don Mullen <donmullen@tibco.com>
- Date: Fri, 11 Oct 2002 22:53:30 -0400
- To: "'Martin Gudgin'" <mgudgin@microsoft.com>
- Cc: Jacek Kopecky <jacek@systinet.com>, WS Description WG <www-ws-desc@w3.org>
Martin:
I understand how you can argue this position. In XML Schema spec (part 1),
section 4.2.3, we have:
"The ·schema components· (that is {type definitions}, {attribute
declarations}, {element declarations}, {attribute group definitions}, {model
group definitions}, {notation declarations}) of a schema corresponding to a
<schema> element information item with one or more <import> element
information items must include not only definitions or declarations
corresponding to the appropriate members of its [children], but also, for
each of those <import> element information items for which clause 2 above is
satisfied, a set of ·schema components· identical to all the ·schema
components· of I."
So all the schema components that are <import>ed are available to reference
by the importing schema. In addition, an XML instance document that uses
the a.xsd schema must be able to access components within all three
namespaces.
<aNS:x xsi:schemaLocation"a.xsd" xmlns:aNS="fooA" xmlns:bNS="fooB"
xmls:cNS="fooC">
<bNS:y>
<cNS:z/>
</bNS:y>
</aNS:x>
However, as you indicated below, a.xsd can't reference c.xsd, even though
b.xsd <import>ed c.xsd. So by that argument, I don't see why bar.wsdl
should be able to reference anything in b.xsd if a.xsd is included inline
within <types>. I would think it should mirror XML Schema, and require a
separate <import> of b.xsd in order to reference those components directly.
I guess I see a difference between reference the component definitions (as
referenced in schemas or wsdls), and actual use of the components in an
instance doc.
Don
> -----Original Message-----
> From: Martin Gudgin [mailto:mgudgin@microsoft.com]
> Sent: Friday, October 11, 2002 8:44 PM
> To: Jacek Kopecky; WS Description WG
> Subject: RE: Importing schemata into WSDL
>
> 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
>
> > -----Original Message-----
> > From: Jacek Kopecky [mailto:jacek@systinet.com]
> > Sent: 11 October 2002 18:16
> > To: WS Description WG
> > Subject: Importing schemata into WSDL
> >
> >
> >
> > Hi all, 8-)
> >
> > in WSDL 1.1 the import statement allowed importing schema
> > documents. In WSDL 1.2 we are apprarently moving in the
> > direction of disallowing this, but we acknowledge it must be
> > possible to import an external schema into a WSDL definitions
> > document somehow.
> >
> > What I've heard from Gudge is that it is possible to import a
> > schema at http://example.org/schema.xs (with the same target
> > namespace) using
> >
> > <wsdl:types>
> > <xs:schema>
> > <xs:import namespace="http://example.org/schema.xs"
> > location="http://example.org/schema.xs"/>
> > </xs:schema>
> > </wsdl:types>
> >
> > I have a problem with this because IMHO this violates XML
> > Schema import semantics. Let me explain:
> >
> > Let's assume I have three schemas, a.xs, b.xs and c.xs, with
> > different target namespaces; where a.xs only imports b.xs and
> > b.xs imports c.xs. On the component level; a.xs then contains
> > all the type and element definitions from a.xs and all the
> > type and element definitions from b.xs are accessible in a.xs.
> >
> > Note that no definitions from c.xs are visible in a.xs - this
> > is logical because the fact that b.xs imports c.xs is just an
> > implementation detail of b.xs and should not be propagated
> > outside of b.xs. In other words, a.xs must not be affected by
> > a change to b.xs that only removes the import and redefines
> > those definitions (still in b.xs) that used definitions from c.xs.
> >
> > What I think this means is that an xs:schema element
> > (together with any
> > contents) is a syntactic representation of the set of type
> > and element definitions contained within.
> >
> > I think it's apparent from the paragraph above that WSDL
> > should not know about imports in wsdl:types/xs:schema. I.e. a
> > schema cannot be imported into a WSDL definitions document by
> > importing it in a contained schema.
> >
> > I think that we'll have to reallow our import statement to
> > import schemas (which should be doable in a safe way, I
> > believe) or we should introduce a typesImport statement that
> > would serve to import external schemata, as the types
> > statement serves to provide (import) internal schemata.
> >
> > Hope it makes sense,
> >
> > Jacek Kopecky
> >
> > Senior Architect, Systinet Corporation
> > http://www.systinet.com/
> >
> >
> >
> >
>
>
Received on Friday, 11 October 2002 22:55:22 UTC