Re: LC69a: XForms comments on (WSDL) Version 2.0 Part 3: Bindings (a)

* Charlton Barreto <cbarreto@webmethods.com> [2005-03-31 07:01-0800]
> In issue LC69a [1], it was raised that for 
> "application/x-www-form-urlencoded" serialization, escaping must be 
> defined as per XForms. As such, either the ampersand (&) or semi-colon 
> (;) must be supported for use as the query parameter separator, with 
> semi-colon as the default [2].

I took an action item to investigate why we had removed the query
parameter separator in the first place.

The previous text was the following:

    http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/Attic/wsdl20-bindings.html?rev=1.26&content-type=text/html;%20charset=utf-8#_http_operation_separator

The decision was taken to get rid of this parameter on 21 May 2004:

[[
Proposal to remove the separator property from the http binding.

Accepted as that's not variable per html defined form url encoding 
style which we are using.
]]
-- http://lists.w3.org/Archives/Public/www-ws-desc/2004May/0073.html

So, at the time, we were under the impression that only '&' was valid,
based on the definition of application/x-www-form-urlencoded  in the
HTML specification (and not the URI specification as I said yesterday
on the call):

    http://www.w3.org/TR/html4/interact/forms.html#didx-applicationx-www-form-urlencoded

However, we use the definition from the XForms specification:

    http://www.w3.org/TR/2003/REC-xforms-20031014/slice11.html#serialize-urlencode

XForms does have a query parameter separator knob indeed, so we did
the wrong thing in removing it in the first place.

Comments about the proposed solution:

> To resolve this we require a mechanism to signal the separator at the 
> operation level. As such I propose to add the following text to the 
> last paragraph of Section 5.8.1:
> 
> "In this serialization, the value of the {http query parameter 
> separator} is used to specify the valid separator character for 
> name-value pairs in urlencoding."
> 
> and I propose adding the following section as appropriate in the HTTP 
> binding spec:
> 
> The HTTP binding specification adds the following property to the WSDL 
> component model (as defined in [WSDL 2.0 Core Language]):
> 
>    * {http query parameter separator}, a xs:string to the Operation 
> component.
> 
> XML Representation
> <description>
>   <binding name="xs:NCName" interface="xs:QName"? type="xs:anyURI"
>            whttp:queryParameterSeparatorDefault="xs:string"?>
>     <operation whttp:location="xs:anyURI"?
>                whttp: queryParameterSeparator="xs:string" ?>
>     </operation>
>   </binding>
> </description>
> 
> The XML representation for specifying the default query parameter 
> separator is an OPTIONAL attribute information item for the binding 
> element information item with the following Infoset properties:
> 
>    * A [local name] of queryParameterSeparatorDefault
>    * A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl/http"
>    * A type of xs:string

XForms defines it as a separator character. Shouldn't we restrict the
length to 1?

>    * A default value of '&'

The default for XForms is ';'. I do not know why they didn't pick '&'
which seems to be the most widespread and natural separator used, but
if we're aligning ourselves on XForms, it probably makes sense to use
the same default value.

[..]
> [1] http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC69a
> [2] http://www.w3.org/TR/xforms/slice3.html#structure-model-submission

Cheers,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Friday, 1 April 2005 13:39:45 UTC