xeps/xep-0182.xml

93 lines
4.3 KiB
XML
Raw Normal View History

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<header>
<title>Application-Specific Error Conditions</title>
<abstract>This document defines a registry of application-specific error conditions.</abstract>
&LEGALNOTICE;
<number>0182</number>
<status>Active</status>
<type>Procedural</type>
<jig>Standards JIG</jig>
<approver>Council</approver>
<dependencies>
<spec>XMPP Core</spec>
</dependencies>
<supersedes/>
<supersededby/>
<shortname>errors</shortname>
<registry/>
&stpeter;
<revision>
<version>1.0</version>
<date>2006-05-16</date>
<initials>psa</initials>
<remark><p>Per a vote of the Jabber Council, advanced status to Active; also added example.</p></remark>
</revision>
<revision>
<version>0.2</version>
<date>2006-04-28</date>
<initials>psa</initials>
<remark><p>Added note about scope of registry.</p></remark>
</revision>
<revision>
<version>0.1</version>
<date>2006-03-23</date>
<initials>psa</initials>
<remark><p>Initial JEP version.</p></remark>
</revision>
<revision>
<version>0.0.1</version>
<date>2006-03-21</date>
<initials>psa</initials>
<remark><p>First draft.</p></remark>
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>&xmppcore; specifies that an XMPP error stanza may include a child element qualified by an XML namespace other than 'urn:ietf:params:xml:ns:xmpp-stanzas'. This enables any XMPP protocol extension to define its own application-specific error conditions, such as the following:</p>
<example caption='An Application-Specific Error Condition (invalid-jid)'><![CDATA[
<iq type='error' from='pubsub.shakespeare.lit' to='francisco@denmark.lit/barracks' id='sub1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe node='blogs/princely_musings' jid='bernardo@denmark.lit'/>
</pubsub>
<error type='modify'>
<bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
<invalid-jid xmlns='http://jabber.org/protocol/pubsub#errors'/>
</error>
</iq>
]]></example>
<p>Although the inclusion of application-specific error conditions introduces a great deal of flexibility, it may also lead to confusion regarding possible conditions. Therefore, this document defines a registry of application-specific error conditions, to be maintained by the &REGISTRAR;. In addition, this document registers a namespace of 'http://jabber.org/protocol/errors' as a fallback namespace for generalized error conditions that are not specific to a particular protocol (e.g., &lt;stanza-too-big/&gt; as a particular form of the &notacceptable; condition).</p>
</section1>
<section1 topic='Jabber Registrar Considerations' anchor='registrar'>
<section2 topic='Application-Specific Error Conditions Registry' anchor='registrar-conditions'>
<p>The Jabber Registrar maintains a registry of application-specific error conditions (see &APPERRORS;).</p>
<p>All application-specific error conditions that are defined in Jabber Enhancement Proposals MUST be included in this registry. Application-specific error conditions that are defined outside of the JEP process MAY be included in this registry, but it is not required for them to be so registered.</p>
<section3 topic='Registration Process' anchor='registrar-conditions-process'>
&REGPROCESS;
<code><![CDATA[
<condition>
<ns>the XML namespace that qualifies the condition</ns>
<element>the XML element of the error condition</element>
<desc>a natural-language description of the error condition</desc>
<doc>the document in which the condition is specified</doc>
</condition>
]]></code>
<p>The registrant may register more than one condition at a time, each contained in a separate &lt;condition/&gt; element.</p>
</section3>
</section2>
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
<p>The &REGISTRAR; shall include 'http://jabber.org/protocol/errors' in its registry of protocol namespaces.</p>
</section2>
</section1>
<section1 topic='Security Considerations' anchor='security'>
<p>This document introduces no known security vulnerabilities.</p>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>
<p>This JEP requires no interaction with &IANA;.</p>
</section1>
</jep>