Version attribute for WSDL

In fulfillment of my action item received at the January F2F, here is a
proposal to add a version attribute to WSDL to aid in the versioning of WSDL
documents and interfaces.

I propose that an attribute with the name "version" be added to the
<definitions> element of WSDL.  This attribute is for user convenience, and
the specification would define no semantics for it, specifically the value
of this attribute would NOT be included in the infoset.  However, it is
expected that WSDL authors and consumers can use this attribute, when
present, to differentiate between different revisions of a WSDL document.

Example:

<definitions version="1" targetNamespace=http://sample.org/>
...
</definitions>

This proposal is modeled after the version attribute of XML Schema, see
section 3.15.2 in Part 1 of the XML Schema specification:
  http://www.w3.org/TR/xmlschema-1/#Schemas

In our specification, section 2.1.2 would be updated to include the new
attribute:

2.1.2 XML Representation of Definitions Component

<definitions
      targetNamespace="xs:anyURI" 
      version = "xs:token"? >
  <documentation />?
  [ <import /> | <include /> ]*
  <types />?
  [ <interface /> | <binding /> | <service /> ]*
</definitions>


Additionally, I propose that a similar version attribute be added to the
<interface> element of WSDL. This attribute would mirror the definitions
attribute.  Again, this would be for user convenience, and the specification
would define no semantics for it, specifically the value of this attribute
would NOT be included in the infoset.  WSDL authors and consumers could use
this attribute, when present, to differentiate between different revisions
of an interface.  In particular, this would enable a consumer of the
document to know explicitly when an interface they are using has changed.

Example:
<definitions>
  <interface name="myInterface" version="alpha17">
    ...
  </interface>
</definitions>


2.2.2 XML Representation of Interface Component
<definitions>
  <interface
        name="xs:NCName" 
        extends="list of xs:QName"?
        styleDefault="xs:anyURI"? 
        version = "xs:token"? >
    <documentation />?
    [ <operation /> | <feature /> | <property /> ]*
  </interface>
</definitions>


--
Tom Jordahl
Macromedia Server Development

Received on Thursday, 12 February 2004 09:13:15 UTC