W3C home > Mailing lists > Public > www-ws-desc@w3.org > October 2003

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

From: Amelia A. Lewis <alewis@tibco.com>
Date: Wed, 22 Oct 2003 15:27:06 -0400
To: Martin Gudgin <mgudgin@microsoft.com>
Cc: jmarsh@microsoft.com, www-ws-desc@w3.org
Message-id: <20031022152706.7383725f.alewis@tibco.com>

Hmm.

2  If the application schema reference strategy using the \x{00B7}actual
value\x{00B7}s of the schemaLocation and namespace [attributes],
provides a referent, as defined by Schema Document Location Strategy
(\x{00A7}4.3.2), one of the following must be true:
2.1 The referent is (a fragment of) a resource which is an XML document
(see clause 1.1), which in turn corresponds to a <schema> element
information item in a well-formed information set, which in turn
corresponds to a valid schema.
2.2 The referent is a <schema> element information item in a well-formed
information set, which in turn corresponds to a valid schema.
In either case call the <schema> item SII and the valid schema I.

2.1 is irrelevant.  I had thought that 2.2 specified that the <schema>
element must be the root, but this does not seem to be the case.  It
appears that one can refer to a schema EII which is embedded in some
other document.

Objection withdrawn.

Amy!
On Wed, 22 Oct 2003 12:07:01 -0700
Martin Gudgin <mgudgin@microsoft.com> wrote:

> I am unconvinced that the language in schema disallows the mutiple
> inline schemas with cross-imports in WSDL.
> 
> Gudge 
> 
> > -----Original Message-----
> > From: www-ws-desc-request@w3.org 
> > [mailto:www-ws-desc-request@w3.org] On Behalf Of Amelia A. Lewis
> > Sent: 22 October 2003 12:02
> > To: Jonathan Marsh
> > Cc: www-ws-desc@w3.org
> > Subject: Re: Can one inline schema import definitions from a 
> > second inline schema?
> > 
> > 
> > But as Paul Downey pointed out in response to my reference to 
> > schema's constraints, schema *itself* forbids importing a 
> > schema from any document whose root is not <schema>.  
> > Strictly speaking, that includes wsdl:definitions.  The only 
> > way around that would be to special-case it *in the WSDL 
> > specification*, to basically say that the embedded schemas 
> > MAY be treated as roots of separate documents.
> > 
> > Amy!
> > On Wed, 22 Oct 2003 11:54:12 -0700
> > Jonathan Marsh <jmarsh@microsoft.com> wrote:
> > 
> > > I've raised a question on the intent of R2004 in the BP - I had 
> > > assumed it was focused on ensuring the right version of Schema was
> > > 
> > > used, and it may be that disallowing imports between 
> > multiple inline 
> > > schemas is an unintended side-effect of the language.
> > > 
> > >  
> > > 
> > > ________________________________
> > > 
> > > From: www-ws-desc-request@w3.org
> > > [mailto:www-ws-desc-request@w3.org] On Behalf Of Anne Thomas Manes
> > > Sent: Saturday, October 18, 2003 5:46 AM
> > > To: Martin Gudgin; www-ws-desc@w3.org
> > > Subject: RE: Can one inline schema import definitions from a
> > > second inline schema?
> > > 
> > >  
> > > 
> > > Regarding xs:import location pointing to a file with <schema> root
> > > element:
> > > 
> > > I don't believe that the schema spec requires that, but the WS-I
> > > BP does. R2004:
> > > 
> > > 
> > > 5.1.2 WSDL and Schema Import
> > > 
> > > 
> > > Some examples in WSDL 1.1 incorrectly show the WSDL import 
> > statement 
> > > being used to import XML Schema definitions. The Profile 
> > clarifies use 
> > > of the import mechanisms to keep them consistent and 
> > confined to their 
> > > respective domains. Imported schema documents are also 
> > constrained by 
> > > XML version and encoding requirements consistent to those of the 
> > > importing WSDL documents.
> > > 
> > > R2001 A DESCRIPTION MUST only use the WSDL "import" statement to 
> > > import another WSDL description.
> > > 
> > > R2002 To import XML Schema Definitions, a DESCRIPTION MUST 
> > use the XML 
> > > Schema "import" statement.
> > > 
> > > R2003 A DESCRIPTION MUST use the XML Schema "import" statement
> > > only within the xsd:schema element of the types section.
> > > 
> > > R2004 A DESCRIPTION MUST NOT use the XML Schema "import" 
> > statement to 
> > > import a Schema from any document whose root element is not
> > > "schema" from the namespace "http://www.w3.org/2001/XMLSchema". 
> > > 
> > > Anne
> > > 
> > > At 06:10 AM 10/18/2003, you wrote:
> > > 
> > > 
> > > 
> > > 
> > >  
> > > 
> > > > -----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 <http://mynamespace/>  to 
> > > > another
> > > inline
> > > > schema? Will the following be valid?
> > > > 
> > > > <xs:import namespace="http://mynamespace"
> > > > schemaLocation="http://mynamespace <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 <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
> > > <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 <http://namespace2/> ">
> > > > > > > >    <import namespace="http://namespace2 
> > <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
> > > <http://namespace2/> " xmlns=
> > > > > > > > "http://www.w3.org/2001/XMLSchema"
> > > > > > > > xmlns:one="http://namespace1 <http://namespace1/> ">
> > > > > > > >    <import namespace="http://namespace1 
> > <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
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > > 
> > > 
> > 
> > 
> > --
> > Amelia A. Lewis
> > Architect, TIBCO/Extensibility, Inc.
> > alewis@tibco.com
> > 
> > 
> > 
> 


-- 
Amelia A. Lewis
Architect, TIBCO/Extensibility, Inc.
alewis@tibco.com
Received on Wednesday, 22 October 2003 15:27:05 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:27 GMT