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: Lawrence Mandel <lmandel@ca.ibm.com>
Date: Fri, 17 Oct 2003 11:46:31 -0400
To: Arthur Ryman <ryman@ca.ibm.com>
Cc: "Martin Gudgin" <mgudgin@microsoft.com>, www-ws-desc@w3.org, www-ws-desc-request@w3.org
Message-ID: <OFFA193CC7.F80F6466-ON85256DC2.0053D257-85256DC2.0056A8B2@ca.ibm.com>





Gudge,

There are different opinions on this issue in WSDL 1.1. Five of the
possibilities I encountered are:
1. Inline schemas are not allowed to import or include other inline schemas
2. Inline schemas may import or include other inline schemas but no import
or include statement is required
3. Inline schemas may import or include other inline schemas and an import
or include statement is required with no schemaLocation
4. Inline schemas may import or include other inline schemas and an import
or include statement is required with the schemaLocation and namespace
attributes having the same value
5. Inline schemas may import or include other inline schemas and an import
or include statement is required with the schemaLocation attribute set to
the location of the encapsulating WSDL document

I think Arthur has brought out the key issue.  It's important that the WSDL
1.2 specification be clear on the accepted behaviour in this situation.
Just as the WSDL 1.2 working draft provides modification to the XML schema
definition on the use of a targetNamespace for inline schemas in section
3.1.2,

"The targetNamespace attribute information item defines the namespace of
the type definitions and element declarations embedded in this schema. WSDL
modifies the XML Schema definition of the xs:schema element information
item to make this attribute information item required. The targetNamespace
attribute information item has the following infoset properties"

so it should provided a statement clarifying the use of xs:import and
xs:include element information items. A statement like,

 "Schemas defined in the types section of a WSDL document may reference
other schemas defined in the same types section or a types section defined
in an imported or included WSDL document. In such a situation, the
xs:import or xs:include statement must be used with no schemaLocation
attribute. "

will give a definite answer to this question and eliminate an ambiguity in
WSDL 1.2.

Lawrence Mandel

Software Developer
WebSphere Studio Application Developer - XML Tools
Phone: 905 - 413 - 3814   Fax: 905 - 413 - 4920
lmandel@ca.ibm.com


                                                                           
             Arthur                                                        
             Ryman/Toronto/IBM                                             
                                                                        To 
             10/17/2003 09:48          "Martin Gudgin"                     
             AM                        <mgudgin@microsoft.com>             
                                                                        cc 
                                       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?(Document link: Lawrence     
                                       Mandel)                             
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           



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@microsof|
|         |           t.com>           |
|         |           Sent by:         |
|         |           www-ws-desc-reque|
|         |           st@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
>
>
>
Received on Friday, 17 October 2003 11:47:54 GMT

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