- 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
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 UTC