Re: Hoisting SOAP Binding Attributes

+1. Simplicity is good!

Sanjiva.

----- Original Message ----- 
From: "Jeffrey Schlimmer" <jeffsch@windows.microsoft.com>
To: <www-ws-desc@w3.org>
Sent: Thursday, July 11, 2002 6:52 AM
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, 11 July 2002 11:29:06 UTC