<?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>XMPP Registrar Function</title>
  <abstract>This document defines the roles and processes of the XMPP Registrar function within the XMPP Standards Foundation.</abstract>
  &LEGALNOTICE;
  <number>0053</number>
  <status>Active</status>
  <type>Procedural</type>
  <sig>None</sig>
  <approver>Board</approver>
  <dependencies/>
  <supersedes/>
  <supersededby/>
  <shortname>N/A</shortname>
  &stpeter;
  <revision>
    <version>1.4</version>
    <date>2008-10-29</date>
    <initials>psa</initials>
    <remark><p>Adjusted namespace issuance process to employ namespace versioning.</p></remark>
  </revision>
  <revision>
    <version>1.3</version>
    <date>2006-12-07</date>
    <initials>psa</initials>
    <remark><p>Specified process for namespace issuance (i.e., XMPP URNs).</p></remark>
  </revision>
  <revision>
    <version>1.2</version>
    <date>2006-10-04</date>
    <initials>psa</initials>
    <remark><p>As approved by the members of the XMPP Standards Foundation, changed Jabber Registrar to XMPP Registrar.</p></remark>
  </revision>
  <revision>
    <version>1.1</version>
    <date>2004-05-20</date>
    <initials>psa</initials>
    <remark>Updated to reflect experience.</remark>
  </revision>
  <revision>
    <version>1.0</version>
    <date>2003-03-20</date>
    <initials>psa</initials>
    <remark>Per a vote of the XMPP Council, advanced status to Active.</remark>
  </revision>
  <revision>
    <version>0.5</version>
    <date>2003-01-21</date>
    <initials>psa</initials>
    <remark>Changed name to XMPP Registrar in response to feedback from the XSF Board of Directors.</remark>
  </revision>
  <revision>
    <version>0.4</version>
    <date>2003-01-20</date>
    <initials>psa</initials>
    <remark>Added reference to jana@jabber.org mailing list.</remark>
  </revision>
  <revision>
    <version>0.3</version>
    <date>2002-11-22</date>
    <initials>psa</initials>
    <remark>Simplified to reflect discussion in the XMPP Council; in particular, reserved JANA functions to the XMPP Extensions Editor until there is a perceived need for a more formal governing body.</remark>
  </revision>
  <revision>
    <version>0.2</version>
    <date>2002-10-27</date>
    <initials>psa</initials>
    <remark>Clarified JANA composition, panel member requirements, and JANA process.</remark>
  </revision>
  <revision>
    <version>0.1</version>
    <date>2002-10-24</date>
    <initials>psa</initials>
    <remark>Initial version.</remark>
  </revision>
</header>
<section1 topic='Introduction and Purpose' anchor='intro'>
  <p>Because the &XSF; publishes a relatively large number of protocol specifications (see &xep0001;), it is important to keep track of the namespaces defined by those specifications as well as the parameters used in the context of the relevant protocols. (Examples of such parameters include the features and options used in &xep0020; and the identities and features used in &xep0030;.) In particular, the common use of protocols published by the XSF requires that namespaces and particular parameter values be assigned uniquely. It is the role of the XMPP Registrar to make those unique assignments and to maintain registries of the currently assigned values. The XMPP Registrar shall also function as a single point of contact between the XMPP Standards Foundation and &IANA;.</p>
</section1>
<section1 topic='Composition' anchor='composition'>
  <p>Until there is a perceived need for a more formal governing body, the functions of the XMPP Registrar shall be managed by the &EDITOR;. In the future, the &COUNCIL; and/or the &BOARD; may decide to create a more formal panel to oversee the functions of the XMPP Registrar; if they do, this document shall be updated to reflect the change.</p>
</section1>
<section1 topic='Registry Creation and Maintenance' anchor='registries'>
  <p>Every XMPP Extension Protocol specification (XEP) must contain a section devoted to "XMPP Registrar Considerations", detailing the namespaces and parameters to be registered with the XMPP Registrar, as well as any new registries to be created as a result of the XEP.</p>
  <p>The registry additions or creations specified in a XEP shall not take effect until the document advances to a status of Draft (Standards-Track XEPs) or Active (Informational and Historical XEPs). Registration of namespaces shall be handled as described in the <link url='#namespaces'>Namespace Issuance</link> section of this document. Registration of particular parameters used within a specification shall be initiated by the XMPP Extensions Editor if specified in the XEP, and may also be initiated by implementors of the XEP after it has advanced to Active, Draft, or Final. Creation of new registries shall be initiated by the XMPP Registrar; if a document specifies the creation of a new registry, the author is strongly encouraged to consult with the XMPP Registrar before seeking a Last Call on the XEP.</p>
  <p>Requests for parameter assignments must be sent to the XMPP Registrar in accordance with the process specified in the document (usually a XEP) that defines the relevant registry, normally by sending an appropriately formatted email message to the URI &lt;mailto:registrar&#64;xmpp.org&gt;. If, in the Registrar's judgment, discussion of a request is required, the Registrar shall initiate such discussion within the &SSIG;. The Registrar shall add registry items at its discretion based on discussion within the Standards SIG if necessary, but shall not unduly restrict registration of parameter values. If a document author or implementor thinks that a request was unfairly denied by the Registrar, an appeal of the decision may be directed to the XMPP Council.</p>
  <p>The XMPP Registrar shall maintain registries of assigned namespaces and parameters at &lt;<link url="http://www.xmpp.org/registrar/">http://www.xmpp.org/registrar/</link>&gt; and shall update those registries in a timely fashion. Changes to the registries shall be announced on the &lt;standards&#64;xmpp.org&gt; mailing list.</p>
</section1>
<section1 topic='Namespace Issuance' anchor='namespaces'>
  <p>The XMPP Registrar shall be responsible for issuing namespaces to be used in XMPP Extension Protocols (XEPs) developed through the XMPP Standards Foundation's standards process as specified in <cite>XEP-0001</cite>. The policies and procedures for namespace issuance shall be as follows:</p>
  <ol start='1'>
    <li>
      <p>When a XEP is first published in the Experimental state, the XMPP Registrar shall work with the author(s) to mint an appropriate namespace name, which shall be of the form "urn:xmpp:ShortName:0" or, where appropriate, "urn:xmpp:ShortName:SubName:0". The following considerations apply:</p>
      <ol style='list-style: lower-alpha'>
        <li>Each name shall adhere to the format defined in &rfc4854;.</li>
        <li>Each name shall be of the form "urn:xmpp:ShortName[:SubName]".</li>
        <li>The "ShortName" string shall be unique within the XMPP URN tree and any "SubName" strings shall be unique within the scope of the ShortName.</li>
        <li>Each name should be relevant and memorable. Names may be determined in consultation with the author(s) of the XEP and may be requested by the author(s) in the XMPP Registrar Considerations section of the XEP; however, the issuance of namespace names is the sole responsibility of the XMPP Registrar, which may modify or ignore any names requested.</li>
        <li>To ensure that no duplicate names are issued, each name to be minted shall be checked against the registry of registered names issued in relation to Draft and Final XEPs (see &NAMESPACES;) and against the list of minted but not yet registered names issued in relation to Experimental XEPs.</li>
        <li>The XMPP Registrar shall issue all XMPP URNs directly and shall not assign secondary responsibility for management of any sub-trees.</li>
      </ol>
    </li>
    <li><p>While the XEP is in the Experimental state, if appropriate and in consultation with the author(s), the XMPP Registrar shall update the namespace version number at the end of namespace (e.g., from "0" to "1"); the XMPP Registrar shall do so only if the protocol defined in the XEP has been modified in a way that is not backwards-compatible with an earlier version of the protocol.</p></li>
    <li><p>When the XMPP Council votes to advance the XEP to a status of Draft, the XMPP Registrar shall update the namespace registry in accordance with the procedures specified in the <link url='#registries'>Registry Creation and Maintenance</link> section of this document.</p></li>
    <li><p>Any namespaces defined after advancement of the relevant XEP to a status of Draft shall be handled in the same manner.</p></li>
    <li><p>While the XEP is in the Draft or Final state, if appropriate and in consultation with the author(s) and the XMPP Council, the XMPP Registrar shall update the namespace version number at the end of namespace (e.g., from "1" to "2"); the XMPP Registrar shall do so only if the protocol defined in the XEP has been modified in a way that is not backwards-compatible with an earlier version of the protocol, or if significant new features have been added to the protocol. The XMPP Council must approve any change to the namespace version while the XEP is in the Draft or Final state.</p></li>
  </ol>
  <p>The XMPP Registrar shall not issue XMPP URNs except as specified above (e.g., it shall not issue XMPP URNs to private parties or in relation to specifications that are not published in the XEP series). However, the XMPP Registrar may at its discretion add namespace names other than XMPP URNs to its namespace registry, e.g. to register "legacy" namespace names (of the form "jabber:iq:ShortName", "jabber:x:ShortName", and "http://jabber.org/protocol/ShortName" as well as namespace names produced by recognized standards development organizations (such as names issued in the IETF URN tree).</p>
</section1>
<section1 topic='Security Considerations' anchor='security'>
  <p>Security considerations are primarily the responsibility of the protocols in which specific parameters are used. The XMPP Registrar shall respect the security considerations defined in XMPP Extension Protocol specifications, and shall endeavor to ensure that registered parameter values do not compromise privacy or security in any way.</p>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>
  <p>The XMPP Registrar shall be responsible for interacting with the IANA on behalf of the XMPP Standards Foundation. If an XMPP Extension Protocol specification requires interaction with the IANA, that fact shall be noted by the document author(s) and discussed on the Standards mailing list along with normal discussion of the XEP. The XMPP Registrar shall collaborate with the author(s) to submit an appropriate request to the IANA.</p>
</section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
  <p>This entire document defines the processes and procedures of the XMPP Registrar.</p>
</section1>
</xep>
