{"action":"created","issue":{"url":"https://api.github.com/repos/xproc/1.1-specification/issues/89","repository_url":"https://api.github.com/repos/xproc/1.1-specification","labels_url":"https://api.github.com/repos/xproc/1.1-specification/issues/89/labels{/name}","comments_url":"https://api.github.com/repos/xproc/1.1-specification/issues/89/comments","events_url":"https://api.github.com/repos/xproc/1.1-specification/issues/89/events","html_url":"https://github.com/xproc/1.1-specification/issues/89","id":198240363,"number":89,"title":"Legacy from 1.0: Relax restrictions on names of www-form-urlencoded parameters ","user":{"login":"xml-project","id":8513917,"avatar_url":"https://avatars.githubusercontent.com/u/8513917?v=3","gravatar_id":"","url":"https://api.github.com/users/xml-project","html_url":"https://github.com/xml-project","followers_url":"https://api.github.com/users/xml-project/followers","following_url":"https://api.github.com/users/xml-project/following{/other_user}","gists_url":"https://api.github.com/users/xml-project/gists{/gist_id}","starred_url":"https://api.github.com/users/xml-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xml-project/subscriptions","organizations_url":"https://api.github.com/users/xml-project/orgs","repos_url":"https://api.github.com/users/xml-project/repos","events_url":"https://api.github.com/users/xml-project/events{/privacy}","received_events_url":"https://api.github.com/users/xml-project/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-31T17:27:19Z","updated_at":"2017-01-01T04:22:14Z","closed_at":null,"body":"# Relax restrictions on names of www-form-urlencoded parameters \r\n\r\n>This is an aggregation of the discussion on \"Relax restrictions on names of www-form-urlencoded parameters\" ([Issue 187 of the xproc/1.0-specification](https://github.com/xproc/1.0-specification/issues/187))\r\n\r\n**Opened by: Conal-Tuohy on 2016-12-17, 06:05h**\r\n\r\n## Conal-Tuohy said on 2016-12-17, 06:05h:\r\n\r\nThe`p:www-form-urldecode`step provides a way to decode submissions produced by HTML forms, but because only names that match the`xs:NCName`pattern are allowed, the step can't be used to decode certain form submissions which are themselves perfectly valid as HTTP POST payloads or as the query component of a URI. \r\n\r\nFor example, the step could not parse submissions from the following form, because the`input`'s name contains a space: \r\n\r\n```\r\n<form action=\"/my-form-handling-xproc-pipeline\" method=\"get\">\r\n\t<div> \r\n\t\t<input type=\"text\" name=\"example input\"/> \r\n\t\t<button type=\"submit\">submit example</button> \r\n\t</div> \r\n</form>\r\n```\r\n\r\nSubmitting this form would produce the request URI `/my-form-handling-xproc-pipeline?example+input=` which `p:www-form-urldecode` would be unable to parse. \r\n\r\nThis leaves XProc developers without a convenient method to handle arbitrary forms or URIs with arbitrary query components. \r\n\r\nThe inverse step,`p:www-form-urlencode`, is also unnecessarily restricted, but this in practical terms this restriction is less of a obstacle since it's easier to perform the encoding than the decoding. \r\n\r\nThe specification for the`p:www-form-urldecode`step says: \r\n\r\nIt is a dynamic error (err:XC0061) if the name of any encoded parameter name is not a valid`xs:NCName`. In other words, this step can only decode simple name/value pairs where the names do not contain colons or any characters that cannot be used in XML names.However, the parameter names submitted from an HTML form are the values of`name`attributes of controls on that form, which are defined as`CDATA`; a much broader space than`xs:NCName`. \r\n\r\nAlthough a`c:param-set`element which contains a`c:parameter`whose name is not a valid`xs:NCName`will not be usable as the input to a`parameters`port, this requirement is not a good reason to impose the`xs:NCName`restriction on the output of the`p:www-form-urldecode`step. If a pipeline author wants to use parameters produced by`p:www-form-urldecode`as the input to a`parameter`port, they can always filter the parameters first. Invalidly-named parameters should only cause an exception when they are used as input to a`parameter`-type port. \r\n\r\n## Conal-Tuohy said on 2016-12-18, 01:18h:\r\n\r\nMoved to[XProc 1.1 issue](https://github.com/xproc/1.1-specification/issues/31) \r\n"},"comment":{"url":"https://api.github.com/repos/xproc/1.1-specification/issues/comments/269891840","html_url":"https://github.com/xproc/1.1-specification/issues/89#issuecomment-269891840","issue_url":"https://api.github.com/repos/xproc/1.1-specification/issues/89","id":269891840,"user":{"login":"Conal-Tuohy","id":1264711,"avatar_url":"https://avatars.githubusercontent.com/u/1264711?v=3","gravatar_id":"","url":"https://api.github.com/users/Conal-Tuohy","html_url":"https://github.com/Conal-Tuohy","followers_url":"https://api.github.com/users/Conal-Tuohy/followers","following_url":"https://api.github.com/users/Conal-Tuohy/following{/other_user}","gists_url":"https://api.github.com/users/Conal-Tuohy/gists{/gist_id}","starred_url":"https://api.github.com/users/Conal-Tuohy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Conal-Tuohy/subscriptions","organizations_url":"https://api.github.com/users/Conal-Tuohy/orgs","repos_url":"https://api.github.com/users/Conal-Tuohy/repos","events_url":"https://api.github.com/users/Conal-Tuohy/events{/privacy}","received_events_url":"https://api.github.com/users/Conal-Tuohy/received_events","type":"User","site_admin":false},"created_at":"2017-01-01T04:22:14Z","updated_at":"2017-01-01T04:22:14Z","body":"duplicate of #31"}}
{"actor":{"display_login":"Conal-Tuohy"}}