Issue 225: accommodating non-XML data models (proposal)

Issue 225 [1] points out that WSDL 2.0 requires that messages be  
modelled as XML Infosets. Jonathan proposes:
[[[
WG had previously agreed (informally?) that WSDL only describes  XML  
Web services. Other type systems are limited to those that support  XML  
elements. Status quo proposal: reconfirm that decision, and explain the  
limitations on extensible type systems in the spec.
]]]

I'd like to push back against the status quo.

I believe that, with a few small changes, WSDL can accommodate other  
data models in the future, without putting any burden on implementers  
today, and without making the spec any less clear or tight. WSDL  
already accommodates other type systems; this would just allow for type  
systems based on data models other than the Infoset.

A prime example of this is RDF. I find it completely plausible (and, in  
some cases, advantageous; see [2][3]) to model data using RDF Schema.  
Although RDF/XML is an XML serialisation of the RDF data model, RDF  
itself doesn't describe "the [local name],  [namespace name],  
[attributes] and [children]  properties of an element information  
item." Should RDF Schema be either disallowed from describing WSDL  
messages, or forced to unnaturally contort itself somehow to fit into  
an Infoset data model?

Similarly, the Internet Media Type system is far more prevalent than  
XML, and it's easy to imagine cases where people would want to describe  
non-XML Web services and sites using WSDL. Why should they be forced  
into modelling their data as an Infoset?

The only changes that I see as necessary to allow alternate data models  
are:

1) Section 2.1.1 - remove this sentence: "They define the [local name],  
[namespace name],  [children] and [attributes] properties of an element  
information item." and remove this clause from the final bullet: "each  
one isomorphic to a global element  declaration as defined by XML  
Schema"

2) Table 2-1 - change the mapping of {element declarations} from:
""" The element declaration components  corresponding to all the  
element declarations  defined as descendants of the types  element  
information item, if any, plus any imported element  definitions. At a  
minimum this will include  all the global element declarations defined  
by  XML Schema element  element information items. It MAY  also include  
any definition from some other  type system which describes the [local  
name],  [namespace name], [attributes] and [children]  properties of an  
element information item."""
to:
""" The content declaration components corresponding to the content  
declarations defined as descendants of the types element information  
item, if any, plus any imported content definitions."""

3) Section 3 - remove this sentence: "At the abstract level, the  
{element declarations} property of The Definitions Component is a  
collection of imported  and embedded schema components. "

4) Throughout - Change instances of "element declaration" to "content  
declaration", the {element} property to {content}, and instances of the  
"element" Attribute Information Item to "content".

5) In the Bindings section, note that bindings should enumerate the  
data models that they can serialise into concrete messages.


1.  
http://dev.w3.org/cvsweb/%7Echeckout%7E/2002/ws/desc/issues/wsd- 
issues.html#x225
2. http://www.mnot.net/blog/2004/05/12/on_infosets
3. http://www.mnot.net/blog/2004/05/28/other_data_models

--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems

Received on Monday, 14 June 2004 20:05:50 UTC