- From: Tom Jordahl <tomj@macromedia.com>
- Date: Thu, 18 Jul 2002 11:27:25 -0400
- 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 UTC