Re: TAG document: SOAP HTTP GET binding available

David Orchard wrote:
> http://www.w3.org/2001/tag/doc/ws-uri.html

Quoting from the above, the SOAP request packet:

<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope">
    <env:Body>
      <r:GetLastTradePrice 
env:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
              xmlns:r="http://example.org/2001/06/quotes">
        <r:Symbol>DEF</r:Symbol>
      </r:GetLastTradePrice>
    </env:Body>
  </env:Envelope>

is URI-encoded as (I fixed a couple of what look like typos to me)

http://example.org/stockService/LastTradingPrice&
xmlnsuri=/2001/06/quotes&encodingStyle=http://www.w3.org/2001/12/soap-encoding&Symbol=DEF 


Let me suggest a couple of potential improvements:

1. Place a '?' rather than a '&' after the name of the service, why not 
make this look like a conventional CGI encoding.
2. Use ';' rather than '&' to separate arguments, so they'll be easier 
to store in XML documents

Thus:

http://example.org/stockService/LastTradingPrice?
xmlnsuri=/2001/06/quotes;encodingStyle=http://www.w3.org/2001/12/soap-encoding;Symbol=DEF 


Next, we have a problem in that it's hard to distinguish built-in SOAP 
machinery (the ns URI and the encoding style) from the service arguments
("Symbol" in this case).  Suppose you had an argument named 
"encodingStyle"?  We need some syntax to signal this.  A perusal of SOAP 
doesn't reveal any characters which are guaranteed not to show up as 
service names, but RFC2396's "mark" (part of "unreserved") production 
has lots of candidates.

mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"

As a strawman I propose that built-ins start with '*' and that they be 
given conventional shorter names, *ns and *enc.  Thus

http://example.org/stockService/LastTradingPrice?
*ns=/2001/06/quotes;*enc=http://www.w3.org/2001/12/soap-encoding;Symbol=DEF

Finally, I propose that encodingStyle's values be supplied as follows: 
by default, if '*enc' is absent, the encoding style is 
w3.orc/soap-encoding as in the example above.  Otherwise you supply the 
URI for your encoding.  Thus:

http://example.org/stockService/LastTradingPrice?*ns=/2001/06/quotes;Symbol=DEF 


-Tim

Received on Wednesday, 15 May 2002 01:20:40 UTC