- From: Jonathan Marsh <jonathan@wso2.com>
- Date: Wed, 10 Jan 2007 16:23:54 -0800
- To: "'www-ws-desc'" <www-ws-desc@w3.org>
- Message-ID: <020d01c73516$c84caf90$3501a8c0@DELLICIOUS>
The {http query parameter separator} property doesn't include a very comprehensive explanation of it's semantics. Instead, the semantics are implied by statements such as "Each parameter pair is separated by the value of the {http query parameter separator} property." The implication is that the separator is only used for constructing that portion of the address URL that comes from automatically generated parameters. However, query parameters can also come from the {http location} template. That allows the user the opportunity to use two different query parameter separators within a single URI! For instance: <operation whttp:location="?foo=1;bar=2" whttp:queryParameterSeparator="&"/> Following the spec literally would result in a URI with both ";" and "&" as queryParameterSeparators. (Although the above seems rather contrived, remember {query parameter separator} effectively defaults to "&".) However, constructing the URI is only part of the potential utility of the query parameter separator. When parsing the URI at the server side, the URI parser needs to know which separator to expect. I'm not aware of any web servers that provide parameter parsing facilities that allow multiple separators within a single query string. (The Java servlet API we use only supports "&".) The {http query parameter separator} thus has additional utility when fed to the query string parser, to help determine where a parameter ends and the next one begins. There are a couple of things we could do in the spec to clarify query parameter separator handling. 1) Expand the semantics of {http query parameter separator} to declare the character used as a separator in both the {http location} template and for any auto-generated parameters. This eliminates the ambiguity of which is the definitive separator - that which may appear in {http location}, or that in the {http query parameter separator} property (and its associated default). 2) Warn users that they should take care to make sure these two uses of query parameter separators stay in sync, especially when the {http query parameter separator} is defaulted. Jonathan Marsh - <http://www.wso2.com> http://www.wso2.com - <http://auburnmarshes.spaces.live.com> http://auburnmarshes.spaces.live.com
Received on Thursday, 11 January 2007 01:24:08 UTC