W3C home > Mailing lists > Public > www-ws@w3.org > August 2001

WSDL and HTTP GET

From: Jeff Lansing <jeff@polexis.com>
Date: Wed, 29 Aug 2001 11:51:59 -0700
Message-ID: <3B8D39CF.DC6C2128@polexis.com>
To: www-ws@w3.org
Hi,

From the WDSL spec: "WSDL service definitions ... serve as a recipe for
automating the details involved in applications communication."

I take it that includes the details of formatting an HTTP GET request.
So here's how it appears to work, for an HTTP GET request (in the
http:urlEncoded case):

  description/service/port/http:address/@location  gives a base URI,

  description/binding/operation/http:operation/@location  gives a
relative URI to the service,

  the "?" is automatically supplied,

  description/message/part/@name is the name of a parameter, and

  description/message/part/@type is a pointer to a schema for the type
of that parameter.

The convention for such a schema is that the string content of an
element of the required type is a valid value for the corresponding HTTP
GET parameter.

For example, in:


http://www.example.org/cgi-bin/service.cgi?VERSION=1.1&REQUEST=GetQuote

the input message will have two parts, one named VERSION and the other
named REQUEST. The corresponding types might be a pattern for the
acceptable versions, and an enumeration of the acceptable requests.

The problem I am having with with this is that there is no way to have
optional parameters. So maybe in the example the VERSION parameter is
optional.

A possible solution, from the WSDL spec: "if the message contents are
sufficiently complex, then an alternative syntax may be used to specify
the composite structure of the message using the type system directly.
In this usage, only one part may be specified."

So using the alternative syntax, I assume that:

  description/message/part/@type is a pointer to a schema for all of the
parameters at once.

But now my problem is that I don't know what the convention for the
parameter names is, in this alternative syntax. Are they going to be
names of elements, as in:

<types>
  <schema>
    <element name="name given by the pointer in the single specified
part">
      <complexType>
        <all>
          <element ref="VERSION" minOccurs="0"/>
          <element ref="REQUEST"/>
        </all>
      </complexType>
    </element>
    <!-- definitions of the elements, their types, etc.
    -->
  </schema>
</types>

? Or do I literally have to specify what the whole request string (eg.
"VERSION=1.1&REQUEST=GetQuote") looks like, in all its gory detail?

Thanks,

Jeff
Received on Wednesday, 29 August 2001 14:52:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:38 GMT