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

Re: Hoisting SOAP Binding Attributes

From: FABLET Youenn <fablet@crf.canon.fr>
Date: Thu, 11 Jul 2002 09:25:10 +0200
Message-ID: <3D2D32D6.8000300@crf.canon.fr>
To: Jeffrey Schlimmer <jeffsch@windows.microsoft.com>, www-ws-desc@w3.org
+1 for eliminating repetitions in the binding.

I would suggest a complement/alternative to your proposal with something 
like defining the "operation scope" of a soap:operation EII in the binding.
This way, a soap:operation EII would be applicable for more than one 
operation defined in the portType.
Maybe by adding a target AII where to say that a particular 
soap:operation EII is used (by default)/(for operation o1, o2 and o3).

examples:
1)
<soap:binding>
    <soap:operation target="soap:default">

      <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>

    </soap:operation>
</soap:binding>

2)
<soap:binding>
    <soap:operation target="o1 o2 o3 ">

	<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>

    </soap:operation>
</soap:binding>

    Youenn


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 Thursday, 11 July 2002 03:25:59 GMT

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