W3C home > Mailing lists > Public > www-ws-desc@w3.org > July 2002

RE: Hoisting SOAP Binding Attributes

From: Tom Jordahl <tomj@macromedia.com>
Date: Thu, 18 Jul 2002 11:27:25 -0400
Message-ID: <CB1FF0A474AEA84EA0206D5B05F6A4CB021DA1D8@S1001EXM02.macromedia.com>
To: "'www-ws-desc@w3.org'" <www-ws-desc@w3.org>


To quote Beavis (or was it Butthead):
   "This is the coolest thing I have ever seen.."
:-)

+1!

--
Tom "Simplify" Jordahl
Macromedia

-----Original Message-----
From: Jeffrey Schlimmer [mailto:jeffsch@windows.microsoft.com]
Sent: Wednesday, July 10, 2002 8:52 PM
To: www-ws-desc@w3.org
Subject: Hoisting SOAP Binding Attributes



In the case where operations are all bound in the same way, the existing
SOAP binding is repetitious. A straightforward way to simplify this for
the common case is to allow the SOAP binding attribute information items
(AII) to be placed as defaults on the soap:binding element information
item (EII) define that AII placed on children of soap:binding would
override the default, and allow the soap:operation EII to be omitted if
they do not override any defaults.

This is not a proposal to eliminate the ability to define an
operation-by-operation binding; it is only a proposal to simplify the
default case where all operations within a portType are bound the same
way.

The table below summarizes where WSDL 1.1 defines the SOAP binding AII.

EII \ AII         @style @use  @encodingStyle @namespace
--------------------------------------------------------
soap:binding      OK
soap:operation    OK[*]
soap:body                OK    OK             OK
soap:header              OK    OK             OK
soap:fault               OK    OK             OK
soap:headerFault         OK    OK             OK

Where [*] overrides value from parent.


The proposal is to change the definition of the SOAP binding AII as
shown in the table below.

EII \ AII         @style @use  @encodingStyle @namespace
--------------------------------------------------------
soap:binding      OK     OK    OK             OK
soap:operation    OK[*]
soap:body                OK[*] OK[*]          OK[*]
soap:header              OK[*] OK[*]          OK[*]
soap:fault               OK[*] OK[*]          OK[*]
soap:headerFault         OK[*] OK[*]          OK[*]


EXAMPLE

In the default case, where all the operations are bound the same way,
this should simplify the binding significantly. For example, in WSDL
1.1, a SOAP rpc/encoded example in WSDL 1.1 would look like:

<binding name="StockQuoteSoapBinding"
    type="tns:StockQuotePortType">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
      style="rpc" />
    <operation name="GetTradePrice">
      <input>
        <soap:body use="encoded"
            namespace="http://example.com/stockquote"
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded"
            namespace="http://example.com/stockquote"
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    ...
</binding>

Where ... has to be repeated for each operation in the portType.

By contrast, the same example given the proposal would look like: 

<binding name="StockQuoteSoapBinding"
    type="tns:StockQuotePortType">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
      style="rpc"
      use="encoded"
      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      namespace="http://example.com/stockquote" />
</binding>

A SOAP document/literal example given the proposal would look like: 

<binding name="StockQuoteSoapBinding"
    type="tns:StockQuotePortType">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
    style="document"
    use="literal" />
</binding>

EOF
Received on Thursday, 18 July 2002 11:28:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:21 GMT