RE: Importing schemata into WSDL

Jacek's points are well taken. Why not then leverage xs:include as that 
would 
seem to be more approriate given Jacek's points.

e.g.
<wsdl:types>
        <xs:schema ...>
                <xs:include 
schemaLocation="http://example.org/yadda/mystuff.xsd"/>
        </xs:schema>
</wsdl:types>

Cheers,

Christopher Ferris
Architect, Emerging e-business Industry Architecture
email: chrisfer@us.ibm.com
phone: +1 508 234 3624

www-ws-desc-request@w3.org wrote on 10/11/2002 03:31:30 PM:

> 
> 
> I agree with Jacek.  I don't think including a schema that has an import
> effectively exposes the imported schema.
> 
> It strikes me that we have several options, three of which I will list 
here:
> 
> --------------
> 1) Add an attribute to <import> indicating the expected document type 
being
> imported :
> 
> <import namespace="anyUri" importType="anyUri" [location="anyUri"] />
> 
> The importType uri would be the namespace of the type of document that 
is
> being imported:
> WSDL 1.2 = "http://www.w3.org/2002/07/wsdl"
> XML Schema 1.0 = "http://www.w3.org/2001/XMLSchema"
> 
> importType could be optional and default to WSDL 1.2.
> 
> --------------
> 2) Add a separate <typesImport> :
> 
> <typesImport namespace="anyUri" importType="anyUri" [location="anyUri"] 
/>
> 
> The importType uri would be the namespace for the schema language that 
is
> being imported:
> XML Schema 1.0 = "http://www.w3.org/2001/XMLSchema"
> RELAX NG = "relaxNGUri"
> etc.
> 
> --------------
> 3) Add an <import> as a child of <types> that only imports schemas:
> 
> <wsdl:types>
>   <import namespace="anyUri" importType="anyUri" [location="anyUri" />
> </wsdl:types>
> 
> --------------
> 
> I would argue that WSDL 1.1 made a mistake in adding embedded schemas 
using
> <types> -- WSDL should get out of types definitions space and drop 
<types>
> completing -- just allow <import> of schemas.
> 
> Don
> 
> -----Original Message-----
> From: Jacek Kopecky [mailto:jacek@systinet.com]
> Sent: Friday, October 11, 2002 1:16 PM
> 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 19:28:52 UTC