From e6f2db3841c637fc41ebf62d403912a76ab022c1 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 27 Jun 2017 17:50:30 +0200 Subject: [PATCH] XEP-0060: Clarify behaviour of publish-options. Fields must be registered --- xep-0060.xml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/xep-0060.xml b/xep-0060.xml index 8c099df9..9a02d401 100644 --- a/xep-0060.xml +++ b/xep-0060.xml @@ -49,6 +49,12 @@ &stpeter; &ralphm; + + 1.13.6 + 2017-06-22 + dg +

Clarify behaviour of publish-options. Fields must be registered

+
1.13.5 2016-12-21 @@ -2940,11 +2946,11 @@ And by opposing end them? ]]> -

The <publish-options/> element SHOULD contain a data form (see XEP-0004), whose FORM_TYPE SHOULD be "http://jabber.org/protocol/pubsub#publish-options" (see XEP-0068).

-

How the fields are to be handled is up to the the pubsub service, which in the language of XEP-0004 functions as a form-processing entity.

-

For example, the service may treat the field as a precondition, in which case the service should proceed as follows:

+

The <publish-options/> element MUST contain a data form (see XEP-0004), whose FORM_TYPE MUST be "http://jabber.org/protocol/pubsub#publish-options" (see XEP-0068).

+

Fields and their behaviour MUST be registered with the XMPP Registrar. Each field MUST specify whether it defines METADATA to be attached to the item, a per-item OVERRIDE of the node configuration, or a PRECONDITION to be checked against the node configuration. A pubsub service advertising support for publishing options MUST reject publications with unknown fields.

+

A field defined as a precondition MUST be processed as follows:

    -
  1. If the node exists and the precondition is not met, then the publish shall fail with a &conflict; error condition and a pubsub-specific condition of <precondition-not-met/>.
  2. +
  3. If the node exists and the precondition is not met, then the publish MUST fail with a &conflict; error condition and a pubsub-specific condition of <precondition-not-met/>.
  4. If the node exists and the precondition is met, then the publish succeeds.
  5. If the node does not exist and the service supports the "auto-create" feature, then the service shall auto-create the node with default configuration in all respects except those specified in the preconditions, and the publish succeeds.
  6. If the node does not exist and the service does not support the "auto-create" feature, then the publish shall fail.