<?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 ®ISTRAR;. 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., <stanza-too-big/> as a particular form of the ¬acceptable; 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'> ®PROCESS; <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 <condition/> element.</p> </section3> </section2> <section2 topic='Protocol Namespaces' anchor='registrar-ns'> <p>The ®ISTRAR; 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>