Post on 27-Mar-2015
WSDL 1.2 Binding WSDL 1.2 Binding ChangesChanges
WSDL 1.2 Binding WSDL 1.2 Binding ChangesChanges
Sanjiva WeerawaranaSanjiva WeerawaranaWSDL WG F2F – July 2003WSDL WG F2F – July 2003
Raleigh, NCRaleigh, NC
Motivation• Without <message> we can make
WSDL 1.2 bindings dramatically simpler
Overview• <binding>s in general• SOAP binding• HTTP binding
– @encodingStyle=rpc– General documents
<wsdl:binding>• Drop @interface to make it more reusable
<binding name=“ncname”> binding details</binding>
• Allow <endpoint> to point to bindings or inline bindings:<service interface=“qname”> <endpoint name=“ncname” [bindings=“list-of-qnames”] inlined-bindings address-binding </endpoint></service>
SOAP Binding• Define default SOAP binding rules
– @body goes into <soap:Body>– @headers goes into <soap:Header>
• Drop <wsoap:body>, <wsoap:header> is used to add a new header
• Need a default rule for @soapActionURI– Proposal = interfaceTNS#operation-name
• Note: No need to pay attention to @encodingStyle=rpc
HTTP Binding• For @encodingStyle=rpc case
– If types are all simple, then can do HTTP GET/POST binding for content-type=form-url-encoded
• URL rewriting, POST body, …– Basically s!@part=“foo”!xpath:/foo!g
• For other cases– Natural text/xml binding with input/@body
as input payload and output/@body as output payload
Example<definitions> <types> <xsd:schema> element-decls </xsd:schema> </types>
<interface> <operation name=ncname> <input element=e1/> <output element=e2/> </operation> </interface>
<binding name=ncname> binding-stuff </binding>
<service interface=ncname> <endpoint name=ncname bindings=list-of-
qnames> <soap:address url=“…”/> </endpoint> </service></definitions>