- From: Steven Pemberton <steven.pemberton@cwi.nl>
- Date: Tue, 14 Apr 2020 14:43:49 +0200
- To: public-xformsusers@w3.org, "XForms Users Community Group Issue Tracker" <sysbot+tracker@w3.org>
Here is draft spec text, which involves a slight rearrangement of
https://www.w3.org/community/xformsusers/wiki/XForms_2.0#Submission_Options
Steven
=============================================
11.3 Submission Options
How instance data is submitted depends on two aspects:
* the URI scheme in the submission resource which determines the
submission protocol
* the submission method, which determines the default data serialization
format
[OVERVIEW TABLE]
Note: Foreign-namespaced attribute values are allowed in the Submission
Method, but no behavior is defined for them.
11.3.1 Submission Protocols
11.3.1.1 The HTTP and HTTPS Protocols
Processors must support HTTP/1.1 [RFC 2616], and HTTPS [RFC 2818]; authors
are encouraged to follow the finding of the W3C Technical Architecture
Group on when to use the GET method: [TAG Finding 7]
[[EXISTING SECTION ON METHODS GET PUT POST AND DELETE INSERTED HERE]]
11.3.1.2 The File Protocol
Standalone XForms applications can be greatly helped by being able to
store and retrieve data locally without recourse to a server. Processors
should support the File protocol [RFC 8089]; processors may sandbox the
area used for files.
In XForms, the File protocol supports three methods:
* GET
All serialized data, if any, is ignored. A file-open dialog is
initiated with the user, initialised to the location given in the URI. The
user can accept this suggestion, or choose another file as replacement. If
the chosen file is readable, its contents are returned as the body of the
response, with a suitable mediatype, and the submission succeeds; if the
file is not readable, the submission fails with result-error-response and
an error-message of <some message>. The user can alternatively cancel the
dialog, in which case the submission fails with result-error-response and
an error-message of "cancelled".
* PUT
A file-save dialog is initiated with the user, initialised to the
location given in the URI. The user can accept this suggestion, or choose
another file location and name as replacement. If the chosen location is
writable, its contents are initialised or replaced with the serialized
data of the submission, and the submission succeeds; if the location is
not writable, the submission fails with result-error-response and an
error-message of <some error message>. The user can alternatively cancel
the dialog, in which case the submission fails with result-error-response
and an error-message of "cancelled".
* DELETE
All serialized data, if any, is ignored. A file delete dialog is
initiated with the user, initialised to the location given in the file
URI. The user can accept this suggestion, and if the file is deletable, it
is deleted, and the submission succeeds; if the file is not deletable, the
submission fails with result-error-response and an error-message of <some
error message>. The user can alternatively cancel the dialog, in which
case the submission fails with result-error-response and an error-message
of "cancelled".
A submission using any other method with a file: URI fails with
result-error-response and an error-message of "Method not supported".
11.3.2 The mailto: protocol
Processors may support the mailto: protocol [RFC 6068].
It supports four methods: post, multipart-post, form-data-post, and
urlencoded-post. These are actually all the same method, POST, but with
different default serializations. That is to say:
<submission resource="mailto:person@example.com"
method="multipart-post"/>
is the same as
<submission resource="mailto:person@example.com" method="post"
serialization="multipart/related"/>
For that reason, we only define POST here:
* POST
If the serialization used is application/x-www-form-urlencoded, the
serialized data is delivered as part of the URI that is used during the
submit process; otherwise the serialized data is delivered as the body of
the submission.
Example
<instance id="mail">
<mail to="registrations@example.com" xmlns="">
<subject>Conference registration</subject>
<cc>secretariat@example.com</cc>
<body>Please register me for your conference.</body>
</mail>
</instance>
<bind ref="to|cc" type="iemail"/>
<submission ref="instance('mail')"
resource="mailto:{instance('mail')/@to}" method="urlencoded-post"/>
=============================================
Received on Tuesday, 14 April 2020 12:45:06 UTC