Re: Hoisting SOAP Binding Attributes

 Jeffrey, 
 at first, your proposal is very attractive, but there is an 
issue with an implication of your proposal:
 Your proposal implies that we allow omitting operations from
bindings, on the premise that they are handled "the default way".  
I believe specifying what can and cannot be omitted and what it
means *and doing it cleanly with respect to the layering* will be
a considerable task; the result might in fact confuse more than
help newcomers to WSDL.
 Therefore I support the addition of the use, encodingStyle and 
namespace attributes on soap:binding element, but I'd like to 
only make these the default values in case of omitting the 
attributes on the other appropriate soap:* elements.
 I strongly suggest that we discuss the issue of omitting
operations from a binding separately as these two things are
independent - your proposal makes sense and brings some benefit
even without omitting operations in bindings.
 Best regards,

                   Jacek Kopecky

                   Senior Architect, Systinet Corporation
                   http://www.systinet.com/



On Wed, 10 Jul 2002, Jeffrey Schlimmer wrote:

 > 
 > 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 Tuesday, 16 July 2002 15:09:50 UTC