RE: Can one inline schema import definitions from a second inline schema?

 

> -----Original Message-----
> From: Lawrence Mandel [mailto:lmandel@ca.ibm.com] 
> Sent: 17 October 2003 19:08
> To: Amelia A. Lewis
> Cc: Arthur Ryman; Martin Gudgin; paul.downey@bt.com; 
> sanjiva@watson.ibm.com; www-ws-desc@w3.org; www-ws-desc-request@w3.org
> Subject: Re: Can one inline schema import definitions from a 
> second inline schema?
> 
> 
> 
> 
> 
> I agree that using the schema language as intended is the best option.
> However, the xs:import element was not designed with the idea 
> of importing a schema that is located in the same physical 
> file as the schema that is importing it. Existing schema 
> processors do not know how to resolve inline schemas by 
> default and will have to be configured to do so. 

Why? If I were a WSDL processor, I'd just load up my favorite schema
processor and pass it the two schema elements.


> Not 
> clarifying the correct way to import an inline schema will 
> result in different takes on how to import an inline schema. 

XML Schema already deals with this by allowing xs:import with no
schemaLocation.

> This is a potential interoperability problem that can be 
> addressed at the WSDL specification level (rather then 
> leaving this for the WS-I Basic Profile). If this is not 
> clarified, what will it mean if someone has an import 
> statement such as
> 
> <xs:import namespace="http://mynamespace" 
> schemaLocation="mywsdl.wsdl"/>

I seem to remember the schema spec saying something about a
schemaLocation resolving to something with <xs:schema> as its top-level
element. Anyone else have a similar recollection?

> 
> Will that resolve http://mynamespace to another inline 
> schema? Will the following be valid?
> 
> <xs:import namespace="http://mynamespace"
> schemaLocation="http://mynamespace"/>

A schema processor is at liberty to ignore schemaLocation on import, so
this could resolve locally.

> 
> Or is the correct way
> 
> <xs:import namespace="http://mynamespace"/>

All the above are legal. Only the latter would resolve to 'a schema the
schema processor got by some unknown mechanism' ( i.e. another inline
schema )

> 
> I tend to think that not including a schemaLocation is the 
> correct way but there is currently nothing that will prevent 
> others from using one of the other two import statements.  
> Because WSDL is using XML Schema in a way that it was not 
> intended to be used 

Who says? I think this was absolutely one of the ways schema was
intended to be used.

> the WSDL specification should make 
> clarifications to XML Schema where needed.
> 
> Alternatively, if the goal is to use XML Schema as it was 
> designed, 

XML Schema was designed to allow a schema processor to construct a
schema in any way it saw fit. External documents, element nodes from a
DOM etc.

> inline schemas should not be allowed at all and all 
> schemas should be defined in external documents and imported 
> into WSDL documents. This approach will maintain the 
> independence and integrity of XML Schema and reduce the 
> amount of clarifications the WSDL specification needs to make 
> as a result of using XML Schema internally in WSDL documents.

I'm still not convinced any such clarification is necessary

Gudge

> 
> Comments?
> 
> Lawrence Mandel
> 
> Software Developer
> WebSphere Studio Application Developer - XML Tools
> Phone: 905 - 413 - 3814   Fax: 905 - 413 - 4920
> lmandel@ca.ibm.com
> 
> 
>                                                               
>              
>              "Amelia A. Lewis"                                
>              
>              <alewis@tibco.com                                
>              
>              >                                                
>           To 
>                                        paul.downey@bt.com     
>              
>              10/17/2003 12:03                                 
>           cc 
>              PM                        mgudgin@microsoft.com, 
>              
>                                        
> sanjiva@watson.ibm.com, Arthur      
>                                        
> Ryman/Toronto/IBM@IBMCA, Lawrence   
>                                        
> Mandel/Toronto/IBM@IBMCA,           
>                                        www-ws-desc@w3.org,    
>              
>                                        
> www-ws-desc-request@w3.org          
>                                                               
>      Subject 
>                                        Re: Can one inline 
> schema import    
>                                        definitions from a 
> second inline    
>                                        schema?                
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
> 
> 
> 
> 
> Do we need to do so?
> 
> The current language of the specification seems fairly 
> straightforward.
> We permit, as immediate children of types, when W3C XML 
> Schema is used (and it is the only schema language required 
> to be supported by all WSDL processors), both xs:schema and 
> xs:import.  We *do not* constrain the semantics of these 
> child elements, except to change @targetNamespace to REQUIRED 
> (for embedded and imported schemata both).
> 
> We should not, in my opinion, overconstrain W3C XML Schema.  
> We have already forbidden the use of chameleon schemata, 
> which removes an enormous burden on processors; support for 
> that [mis?]feature would have placed an unacceptable burden 
> on the WSDL processor, since we would have had to define the 
> semantics of chameleon schemata in a context never 
> anticipated (the idea that a WSDL targetNamespace could apply 
> to an imported/embedded schema makes for all sorts of really 
> interesting and sometimes quite surprising interactions).
> 
> In so far as is possible, we should *not* change semantics of 
> W3C XML Schema, in my opinion.  The value of requiring it as 
> a supported schema language lies in the re-use of existing 
> schema processors.  If we begin to place further constraints 
> upon it, it stops being the language supported by existing 
> processors, and requires a whole new generation of processors 
> customized for schema-in-WSDL-context.
> 
> The idea behind embedding and importing schema, as I 
> understand it, is to rule that whole complex area *out of 
> scope* for the WSD WG.  Writing a schema language is *hard*, 
> we need to reuse, not reinvent, and not revise.  This allows 
> us to focus on what we [should?] do best.
> 
> Amy!
> On Fri, 17 Oct 2003 16:39:32 +0100
> paul.downey@bt.com wrote:
> 
> >
> > isn't this an issue about how multiple inline schemas reference each
> > other in a   single WSDL document ?
> >
> > AIUI it's just a matter of formally stating what appears to be a 
> > common practice.
> >
> > Paul
> >
> > -----Original Message-----
> > From: Martin Gudgin [mailto:mgudgin@microsoft.com]
> > Sent: 17 October 2003 16:36
> > To: Downey,PS,Paul,XSJ67A C; sanjiva@watson.ibm.com; 
> ryman@ca.ibm.com
> > Cc: lmandel@ca.ibm.com; www-ws-desc@w3.org; 
> www-ws-desc-request@w3.org
> > Subject: RE: Can one inline schema import definitions from a second 
> > inline schema?
> >
> >
> > Given that xs:import is defined by XML Schema and NOT WSDL, I don't 
> > see how WSDL can really constrain it in any way.
> >
> > Gudge
> >
> > > -----Original Message-----
> > > From: paul.downey@bt.com [mailto:paul.downey@bt.com]
> > > Sent: 17 October 2003 16:35
> > > To: sanjiva@watson.ibm.com; Martin Gudgin; ryman@ca.ibm.com
> > > Cc: lmandel@ca.ibm.com; www-ws-desc@w3.org; 
> > > www-ws-desc-request@w3.org Subject: RE: Can one inline 
> schema import 
> > > definitions from a second inline schema?
> > >
> > > i don't think the BP doesn't preclude more than 1 schema 
> within the 
> > > types section - though i couldn't see anything about referencing 
> > > between inline schemas.
> > >
> > > FWIW, quite a few existing kits (including .NET) will 
> generate WSDL 
> > > 1.1 with multiple inline schemas which reference each other using 
> > > <import namespace="blah"> - with a missing schemaLocation ..
> > >
> > > maybe the anonymous schemaLocation should be supported/precluded 
> > > explicitly in WSDL 1.2 ?
> > >
> > >
> > > --
> > > Paul Sumner Downey
> > > Web Services Integration
> > > BT Exact
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Sanjiva Weerawarana [mailto:sanjiva@watson.ibm.com]
> > > Sent: 17 October 2003 16:02
> > > To: Martin Gudgin; Arthur Ryman
> > > Cc: Lawrence Mandel; www-ws-desc@w3.org; 
> www-ws-desc-request@w3.org
> > > Subject: Re: Can one inline schema import definitions 
> from a second 
> > > inline schema?
> > >
> > >
> > >
> > > Didn't we discuss this a while back and say only *1* 
> schema within 
> > > <types>?? Or maybe that WSI BP that does that?
> > >
> > > Sanjiva.
> > >
> > > ----- Original Message -----
> > > From: "Arthur Ryman" <ryman@ca.ibm.com>
> > > To: "Martin Gudgin" <mgudgin@microsoft.com>
> > > Cc: "Lawrence Mandel" <lmandel@ca.ibm.com>; <www-ws-desc@w3.org>; 
> > > <www-ws-desc-request@w3.org>
> > > Sent: Friday, October 17, 2003 7:56 PM
> > > Subject: RE: Can one inline schema import definitions 
> from a second 
> > > inline schema?
> > >
> > >
> > > > Gudge,
> > > >
> > > > I agree to some extent, but AFAIK, WSDL is the only application 
> > > > that inlines <schema>. I think the XSD spec assumes you have a
> > > single <schema>
> > > > per document, i.e. <schema> is the root element. So
> > > processing not one,
> > > > but two or more inline schemas is a bit of a shock for your
> > > typical XSD
> > > > processor. So probably the "reasonable" behavior you 
> describe is 
> > > > undefined.
> > > >
> > > > I think it would promote interoperability if the WSDL 1.2
> > > was clear on
> > > > this point, one way or the other. From your response, I
> > > assume you would
> > > > support the use of more than one inline <schema> in the
> > > <types> element.
> > > >
> > > > Arthur Ryman
> > > >
> > > >
> > > >
> > > >
> > > > "Martin Gudgin" <mgudgin@microsoft.com> Sent by: 
> > > > www-ws-desc-request@w3.org
> > > > 10/17/2003 06:17 AM
> > > >
> > > >
> > > >         To:     Lawrence Mandel/Toronto/IBM@IBMCA,
> > > <www-ws-desc@w3.org>
> > > >         cc:
> > > >         Subject:        RE: Can one inline schema import
> > > definitions from
> > > a second inline schema?
> > > >
> > > >
> > > >
> > > >
> > > > To be frank, I think this has very little to do with 
> WSDL. It is 
> > > > perfectly coherent for a schema processor, on encountering
> > > <xsd:import
> > > > namespace='http://namespace1' /> to say to itself, ah, I
> > > have a schema
> > > > for that namespace, I'll use that here. Likewise, when it 
> > > > encounters<xsd:import namespace='http://namespace2' /> it would 
> > > > say,
> > > ah, not seen
> > > > that namespace yet, I'll wait and see what happens.
> > > >
> > > > Gudge
> > > >
> > > > > -----Original Message-----
> > > > > From: www-ws-desc-request@w3.org 
> > > > > [mailto:www-ws-desc-request@w3.org] On Behalf Of 
> Lawrence Mandel
> > > > > Sent: 16 October 2003 23:19
> > > > > To: www-ws-desc@w3.org
> > > > > Subject: Can one inline schema import definitions 
> from a second 
> > > > > inline schema?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > We have customers that do the following in WSDL 1.1:
> > > > >
> > > > > <types>
> > > > >  <schema targetNamespace="http://namespace1" xmlns= 
> > > > > "http://www.w3.org/2001/XMLSchema"
> > > > > xmlns:two="http://namespace2">
> > > > >    <import namespace="http://namespace2"/>
> > > > >    <complexType name="myComplexType">
> > > > >     <sequence>
> > > > >      <element name="myElement" type="two:B"/>
> > > > >     </sequence>
> > > > >    </complexType>
> > > > >    <complexType name="A">
> > > > >     <sequence>
> > > > >      <element name="elementA" type="xsd:string"/>
> > > > >     </sequence>
> > > > >    </complexType>
> > > > >   </schema>
> > > > >   <schema targetNamespace="http://namespace2" xmlns= 
> > > > > "http://www.w3.org/2001/XMLSchema"
> > > > > xmlns:one="http://namespace1">
> > > > >    <import namespace="http://namespace1"/>
> > > > >    <complexType name="myComplexType">
> > > > >     <sequence>
> > > > >      <element name="myElement" type="one:A"/>
> > > > >     </sequence>
> > > > >    </complexType>
> > > > >    <complexType name="B">
> > > > >     <sequence>
> > > > >      <element name="elementB" type="xsd:string"/>
> > > > >     </sequence>
> > > > >    </complexType>
> > > > >   </schema>
> > > > > </types>
> > > > >
> > > > > The customers say that this is not explicitly 
> forbidden by the 
> > > > > WSDL 1.1 specification and I can't find anything that forbids 
> > > > > this in the WSDL 1.1 specification.  However, there 
> is nothing 
> > > > > in the WSDL 1.1 specification that states how to 
> import a schema 
> > > > > defined in the same types section but with a different 
> > > > > namespace.
> > > > >
> > > > > Is this allowed according to the WSDL 1.2 
> specification?  If so, 
> > > > > what is the correct way to import one inline schema
> > > into another?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Lawrence Mandel
> > > > >
> > > > > Software Developer
> > > > > WebSphere Studio Application Developer - XML Tools
> > > > > Phone: 905 - 413 - 3814   Fax: 905 - 413 - 4920
> > > > > lmandel@ca.ibm.com
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> 
> 
> --
> Amelia A. Lewis
> Architect, TIBCO/Extensibility, Inc.
> alewis@tibco.com
> 
> 
> 
> 

Received on Saturday, 18 October 2003 06:13:16 UTC