xeps/xep-0182.xml

99 行
4.5 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<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>
<sig>Standards</sig>
<approver>Council</approver>
<dependencies>
<spec>XMPP Core</spec>
</dependencies>
<supersedes/>
<supersededby/>
<shortname>errors</shortname>
<registry/>
&stpeter;
<revision>
<version>1.1</version>
<date>2008-03-05</date>
<initials>psa</initials>
<remark><p>Changed namespace from http://jabber.org/protocol/errors to urn:xmpp:errors.</p></remark>
</revision>
<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 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 'urn:xmpp: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='XMPP Registrar Considerations' anchor='registrar'>
<section2 topic='Application-Specific Error Conditions Registry' anchor='registrar-conditions'>
<p>The XMPP Registrar maintains a registry of application-specific error conditions (see &APPERRORS;).</p>
<p>All application-specific error conditions that are defined in XMPP Extension Protocol specifications MUST be included in this registry. Application-specific error conditions that are defined outside of the XMPP Standards Foundation's standards process (see &xep0001;) 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; includes 'urn:xmpp: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 document requires no interaction with &IANA;.</p>
</section1>
</xep>