- From: Sanjiva Weerawarana <sanjiva@watson.ibm.com>
- Date: Thu, 20 May 2004 19:57:49 +0600
- To: <www-ws-desc@w3.org>
I'd like to make an alternate proposal for collapsing the bindings. The basic idea is to avoid repeating similarly named elements in the wsoap: namespace if one exists in the wsdl: namespace. This can be achieved by using qualified attributes and placing them on the corresponding wsdl: namespaced element and eliminating the wsoap: namespaced element. Here's what our binding looks like now: <binding name="xs:NCName" interface="xs:QName"? > <documentation />? <wsoap:binding protocol="xs:anyURI" mepDefault="xs:anyURI"? webMethodDefault="xs:string"? /> <wsoap:module uri="xs:anyURI" required="xs:boolean"? > <property ... />? </wsoap:module>* <feature ... />* <property ... />* <fault ref="xs:QName" wsoap:code="xs:QName" wsoap:subcodes="list of xs:QName" /> <documentation />? </fault>* <operation ref="xs:QName" > <documentation />? <wsoap:module ... />* <wsoap:operation mep="xs:anyURI"? webMethod="xs:string"? action="xs:anyURI"? />? <input messageLabel="xs:NCName"? > <documentation />? <wsoap:module ... />* <feature ... />* <property ... />* </input>* <output messageLabel="xs:NCName"? > <documentation />? <wsoap:module ... />* <feature ... />* <property ... />* </output>* </operation>* </binding> <service> <endpoint name="xs:NCName" binding="xs:QName" > <documentation />? <wsoap:address location="xs:anyURI" /> <endpoint> </service> Note that the <fault> element contains some attributes from the wsoap: namespace already .. that's actually beyond what the WG has agreed to already (JJM go a bit edit happy apparently ;-)). I propose we change this to: <binding name="xs:NCName" interface="xs:QName"? wsoap:protocol="xs:anyURI" wsoap:mepDefault="xs:anyURI"? wsoap:webMethodDefault="xs:string"? > <documentation />? <wsoap:module uri="xs:anyURI" required="xs:boolean"? > <property ... />? </wsoap:module>* <feature ... />* <property ... />* <fault ref="xs:QName" wsoap:faultCode="xs:QName" wsoap:faultSubcodes="list of xs:QName" > <documentation />? </fault>* <operation ref="xs:QName" wsoap:mep="xs:anyURI"? wsoap:webMethod="xs:string"? wsoap:action="xs:anyURI"? > <documentation />? <wsoap:module ... />* <input messageLabel="xs:NCName"? > <documentation />? <wsoap:module ... />* <feature ... />* <property ... />* </input>* <output messageLabel="xs:NCName"? > <documentation />? <wsoap:module ... />* <feature ... />* <property ... />* </output>* </operation>* </binding> <service> <endpoint name="xs:NCName" binding="xs:QName" wsoap:address location="xs:anyURI" > <documentation />? <endpoint> </service> Let's consider an example. Consider an interface "foo" with operations "bar" and "baz" and one fault "fooey." A binding for SOAP/HTTP which wishes to specify per-operation soapAction values and no per-input/ output bindig details (which IMO is the likely case with WSDL 2.0) will look like this: <binding name="b1" interface="x:foo"> wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"> <fault ref="x:fooey" wsoap:faultCode="y:whatever"/> <operation ref="x:bar" wsoap:action="some-uri-that-I-want" /> <operation ref="x:baZ" wsoap:action="some-other-uri-that-I-want" /> </binding> The corresponding <service> declaraction could look like this: <service interface="x:foo"> <endpoint name="e1" binding="x:b1" wsoap:address location="http://example.com/soapserver"/> </service> Sanjiva.
Received on Thursday, 20 May 2004 10:00:29 UTC