- From: Martin Gudgin <mgudgin@microsoft.com>
- Date: Wed, 22 Oct 2003 12:07:01 -0700
- To: "Amelia A. Lewis" <alewis@tibco.com>, "Jonathan Marsh" <jmarsh@microsoft.com>
- Cc: <www-ws-desc@w3.org>
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 > > >
Received on Wednesday, 22 October 2003 15:07:55 UTC