70 likes | 263 Views
WSDL 1.2 Binding Changes. Sanjiva Weerawarana WSDL WG F2F – July 2003 Raleigh, 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>.
E N D
WSDL 1.2 Binding Changes Sanjiva Weerawarana WSDL WG F2F – July 2003 Raleigh, 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
<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> Example