XML Schema comment on WSDL 2.0

The following is a comment on the WSDL 2.0 last call [1] from the XML Schema WG.  We very much appologize about the lateness of this comment.

Paul Biron, for the XML Schema WG
[1] http://www.w3.org/TR/2004/WD-wsdl20-20040803

Problem statement 

It is not uncommon for schema designers to architect systems with multiple schemas for a single namespace, with different defintions of identically (Q)named schema components (elements, types, etc.).  A WSDL description currently allows only a single schema (in <wsdl:types>) and thus a single set of type components available for reference (e.g., in <wsdl:input>, <wsdl:output> and <wsdl:fault>).  Therefore, WSDL is not currently able to describe a service where input and output share the same namespace but use conflicting schemas.

Use cases 

1. The prototypical case of multiple schemas for a single namespace is XHTML.  All flavors of XHTML share the same namespace but there are three separate (and conflicting) schemas: strict, transitional and frameset.  It is not currently possible to use WSDL to describe a service that takes XHTML transitional documents as input and output's an equivalent XHTML strict document.

2. Another case of multiple schemas for a single namespace arises from the common strategy of versioning a vocabulary by keeping the namespace constant and indicating the vocabular version as part of the document content (e.g., with a @version attribute, etc.).  XSLT is the prototypical case of this versioning strategy.  It is not currently possible to use WSDL to describe a service that takes an XSLT 1.0 stylesheet as input and outputing an similar XSLT 2.0 stylesheet (and vice versa).

3. Other cases of multiple schemas for a single namespace arise for any number of reasons, and the particular reasons why people have architected their vocabularies so as to have multiple schemas all sharing the same namespace are what really matters here.  What does matter is that people are doing this and that all of these cases have one thing in common: that WSDL as it stands cannot be used to describe interactions where there is ANY conflict between the different input and output schemas for the same namespace.

Proposed solution 

A possible solution to the above problem would be to provide a means of partitioning <wsdl:types> into a) input; b) output; c) fault and d) (possibly) "all" sections.  Declarations within <wsdl:input> could reference only those components in the "input" partition (or the "all" partition if that were allowed); declarations within <wsdl:output> could reference only those components in the "output" partition, etc.  Another more general solution might be to

allow an arbitrary number of "labled" partitions (or, more correctly, schemas) 
which could then be referenced by any component in the WSDL description. 

The XML Schema WG considers this issue important but realizes that it is late in your rec-cycle.  We hope you will consider the issue carefully and perhaps together we can arrive at a solution that works for everyone.

Received on Wednesday, 24 November 2004 22:33:38 UTC