Re: Data Access WG questions about WSDL

On Tue, Aug 16, 2005 at 03:01:45PM +0200, Hugo Haas wrote:
> 
>   <interface name="SPARQL">
> 
>     <operation name="one" wsdlx:safe="true"
> 	       pattern="http://www.w3.org/2005/08/wsdl/in-out"
> 	       style="http://www.w3.org/2005/08/wsdl/style/iri">
>       <input messageLabel="Query" element="s:query"/>
>       <!-- maybe there's a better specification than #any here
>            but that will do for the purpose of this example -->
>       <output messageLabel="Result" element="#any"/>
>     </operation>
> 
> 
>     <!-- this one is identical to the previous one -->
>     <operation name="two" wsdlx:safe="true"
>                pattern="http://www.w3.org/2005/08/wsdl/in-out"
>                style="http://www.w3.org/2005/08/wsdl/style/iri">
>       <input messageLabel="Query" element="s:query"/>
>       <output messageLabel="Result" element="#any"/>
>     </operation>
> 
>   </interface>
> 
>   <binding name="HttpBinding" interface="m:GetTemperature"
>            type="http://www.w3.org/2005/08/wsdl/http">
>     <operation ref="m:one" whttp:method="POST"
>                wttp:inputSerialization="multipart/form-data"
>                wttp:outputSerialization="application/sparql-results+xml"/>
>     <!-- only the output serialization changes -->
>     <operation ref="m:two" whttp:method="POST"
>                wttp:inputSerialization="multipart/form-data"
>                wttp:outputSerialization="application/rdf+xml"/>
>   </binding>
> 
> Correct me if I'm wrong, but I don't think that the specification
> prevents this, and I would interpret this as "you may get either one".
> But it's ugly in this case.

Yes, as written, the spec prevents the above, near as I can tell. It does so
because *if* you have a binding that uses multipart/form-data as
inputSerialization, then you have to use multipart style for that binding.
In which case the nice single operation, query, really does become two
separate operations: different styles and different output serializations.
But then you really need *four* operations:

query1: GET, IRI style, application/sparql-results+xml
query2: GET, IRI style, application/rdf+xml
query3: POST, multipart style, application/sparql-results+xml
query4: POST, multipart style, application/rdf+xml

Wow, now *that's* confusing. And ugly. Really, really ugly.

Cheers, 
Kendall

Received on Tuesday, 16 August 2005 13:58:36 UTC