WSDL 1 2 Binding Changes Sanjiva Weerawarana WSDL
WSDL 1. 2 Binding Changes Sanjiva Weerawarana WSDL WG F 2 F – 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 – @encoding. Style=rpc – General documents
<wsdl: binding> • Drop @interface to make it more reusable • Allow <endpoint> to point to bindings or inline bindings: <binding name=“ncname”> binding details </binding> <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 @soap. Action. URI – Proposal = interface. TNS#operation-name • Note: No need to pay attention to @encoding. Style=rpc
HTTP Binding • For @encoding. Style=rpc case – If types are all simple, then can do HTTP GET/POST binding for content-type=form-urlencoded • 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=e 1/> <output element=e 2/> </operation> </interface> <binding name=ncname> binding-stuff </binding> <service interface=ncname> <endpoint name=ncname bindings=list-of-qnames> <soap: address url=“…”/> </endpoint> </service> </definitions>
- Slides: 7