- From: C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com>
- Date: Wed, 13 Sep 2023 18:16:04 -0600
- To: Norm Tovey-Walsh <norm@saxonica.com>
- Cc: public-xslt-40@w3.org
Norm Tovey-Walsh <norm@saxonica.com> writes: > ... > Given > > …?a=1&b=2&a=3 > > We’re going to get > > "query-parameters": map { > "a": ("1", "3"), > "b": "2" > } > > The description of how to reconstruct the query part of the URI in > build-uri will naturally yield: > > …?a=1&a=3&b=2 > > ... > If a user really needs to be able to reconstruct “a=1&b=2&a=3”, I think > the’ll have to do it themselves (which is always possible). I think you are thinking about the round trip through parsing the URI and building a URI. Fair enough: I can see how a user can construct the string "a=1&b-2&a=3" at need (assuming they fight their way through the thickets of URI escaping or limit themselves to simple and blameless query parameters which need no escaping). But just to be sure I understand -- if the user of parse-uri() needs the original order (because the query string is defined by the application not as a set or bag of parameters but as a sequence of parameters), they can do it themselves because the have access to the original URI query string, right? let $map := parse-uri("http://example.org/?a=1&b=2&a=3") return $map('query') and then they just parse it themselves into a sequence or array of name/value pairs. Right? I can live with that -- I don't think URIs are *that* hard to parse, and our motive is not that they are too hard to parse but that the task is common enough to provide a convenience function. Assuming I have understood all this correctly, I'm happy with your recommendation. Michael -- C. M. Sperberg-McQueen Black Mesa Technologies LLC http://blackmesatech.com
Received on Thursday, 14 September 2023 00:30:05 UTC