- From: Hugo Haas <hugo@w3.org>
- Date: Thu, 20 Oct 2005 15:41:56 +0200
- To: "Yalcinalp, Umit" <umit.yalcinalp@sap.com>
- Cc: Sanjiva Weerawarana <sanjiva@opensource.lk>, WS-Description WG <www-ws-desc@w3.org>
- Message-ID: <20051020134156.GC31808@w3.org>
* Yalcinalp, Umit <umit.yalcinalp@sap.com> [2005-10-19 13:46-0700] > > -----Original Message----- > > From: www-ws-desc-request@w3.org > > [mailto:www-ws-desc-request@w3.org] On Behalf Of Sanjiva Weerawarana > > Sent: Tuesday, Oct 18, 2005 6:39 PM > > To: Hugo Haas > > Cc: WS-Description WG > > Subject: Re: describing a service that returns an image/jpg > > (for example) > > > > > > On Tue, 2005-10-18 at 18:06 +0200, Hugo Haas wrote: > > > That's a nice trick which I think works, and works well for binary > > > content. However, in LC337, the DAWG talks about HTML, plain text, > > > RDF. Won't they be forced to declare say their RDF as > > Base64-encoded? > > > > I know that sucks, but that's the reality of SOAP (and XML > > really): You > > can't embed HTML without base64 encoding it. Nor can you embed an XML > > document in SOAP without encoding it. If application/rdf+xml > > is used to > > carry an entire XML *document*, then there's no option but to > > encode it > > to carry it in SOAP. > > > > Text is slightly special and can obviously be done with just escaping > > instead of encoding but IMO its not worth special casing. > > A big +1. > > We had the same discussions during the media types document work and > realized that there is simplicity in the restriction and restricted > ourselves to base64 from the beginning. So, to be clear, what you are proposing is the following: - identify serialization formats with a media type token - keep our 3 defined serializations: application/x-www-form-urlencoded, application/xml, multipart/form-data - define a new style: http://www.w3.org/YYYY/MM/wsdl/style/base64-encoded - say that any serialization format other than the 3 formats we defined are defined as a message reference pointing to one element of time xsd:base64 with an xmime:expectedContentType attribute, that the value of xmime:expectedContentType must match the serialization format name, and that this name is the content-type to use I am afraid that it will make the use of other schema languages and models other than the Infoset (e.g. RDF) useless for our HTTP binding without a required extension. For example, if I define an extension to use Relax NG as my schema language, I will need to come up with a {rng http input serialization} property overriding {http input serialization} to be able to serialize the message as application/x-www-form-urlencoded in addition to the serialization format itself. With my alternate proposal at [1], I would just give a now URI for this application/x-www-form-urlencoded serialization format. Here's a comparison: Sanjiva's option: <rng:support wsdl:required="true"/> <interface> <operation> <input rng:element="my:input"/> <output element="my:output"/> </operation> </interface> <binding> <operation whttp:method="GET" rng:inputSerialization="application/x-www-form-urlencoded"/> </binding> Hugo's option: <interface> <operation> <input rng:element="my:input"/> <output element="my:output"/> </operation> </interface> <binding> <operation whttp:method="GET" whttp:inputSerialization="http://hh.example/http/rng/application/x-www-form-urlencoded"/> </binding> Also, it is worth noting that, for DAWG, who wants to do something like whttp:outputSerialization="application/xml, application/rdf+xml", they will have an output message declaration as follows: <element name="sparql-results"> <complexType> <choice> <element maxOccurs="1" ref="vbr:sparql"/> <element name="rdf:RDF" type="xsd:base64" xmime:expectedContentType="application/rdf+xml"/> </sequence> </complexType> </element> I don't think it's anything we can't describe with a style. However, styles are at the operation level, so it may mean that we need a http://www.w3.org/YYYY/MM/wsdl/style/base64-encoded-in and http://www.w3.org/YYYY/MM/wsdl/style/base64-encoded-out to be able to serialize those media types both in an HTTP request or response, though we may want to constrain the input and care only about the output. I have to say that I prefer my solution: it's just proposing to change the naming of the serialization formats, and we're done, without restricting any of our functionality and forcing people to Base64-encode data (or pretend to). Cheers, Hugo 1. http://lists.w3.org/Archives/Public/www-ws-desc/2005Oct/0028.html -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Thursday, 20 October 2005 13:42:07 UTC