RFC 4854 INFORMATIONAL XMPP · NAMING · IDENTIFIERS

A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP)

A permanent naming system for additions to the XMPP messaging protocol

On rfc-editor.org ↗
PUBLISHED
April 2007
AUTHORS
P. Saint-Andre
STREAM
IETF
URN NAMESPACE ID
xmpp
URN STRUCTURE
urn:xmpp:{ShortName}:{SubName}
REGISTRAR
XMPP Standards Foundation (XSF)
REGISTRY LOCATION
xmpp.org/registrar/namespaces.html
DOI
10.17487/RFC4854

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     P. Saint-Andre
Request for Comments: 4854                                           XSF
Category: Informational                                       April 2007


              A Uniform Resource Name (URN) Namespace for
  Extensions to the Extensible Messaging and Presence Protocol (XMPP)

Status of This Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   This document describes a Uniform Resource Name (URN) namespace for
   uniquely identifying Extensible Markup Language (XML) formats and
   protocols that provide extensions to the Extensible Messaging and
   Presence Protocol (XMPP) and are defined in specifications published
   by the XMPP Standards Foundation (XSF).

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Specification Template  . . . . . . . . . . . . . . . . . . . . 3
   3.  Namespace Considerations  . . . . . . . . . . . . . . . . . . . 6
   4.  Community Considerations  . . . . . . . . . . . . . . . . . . . 6
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 8
     7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 8
     7.2.  Informative References  . . . . . . . . . . . . . . . . . . 8

1.  Introduction

   While the Extensible Messaging and Presence Protocol (XMPP), as
   specified in [XMPP-CORE] and [XMPP-IM], provides basic messaging and
   presence functionality, the fact that XMPP is at root a technology
   for streaming Extensible Markup Language [XML] data makes it possible
   to include virtually any structured information within XMPP, as long
   as such information is qualified by appropriate XML namespaces
   [XML-NAMES].  When sent over XMPP, such structured data formats and
   protocols are generally referred to as "XMPP extensions".

   A large number of such XMPP extensions exist.  The main standards
   development organization in which such extensions are defined is the
   XMPP Standards Foundation (XSF) (formerly the Jabber Software
   Foundation), which contributed XMPP to the Internet Standards
   process.  Typically, such extensions are defined within the XSF's
   XMPP Extension Protocol (XEP) specification series.  To date, the XML
   namespaces defined within the Jabber/XMPP community have used names
   of the form "jabber:*" (deprecated since early 2002) and
   "http://jabber.org/protocol/*" (not including names of the form
   "urn:ietf:params:xml:ns:xmpp-*" specified in the XMPP RFCs).
   However, it is desirable that names associated with future XMPP
   extensions be both unique and persistent, which is not necessarily
   the case with names that are also HTTP URLs.  Therefore, in
   accordance with the process defined in [MECHANISMS], this document
   registers a formal namespace identifier (NID) for Uniform Resource
   Names [URN] associated with XMPP extensions published in the XSF's
   XEP series and for XML namespaces registered with the XSF's XMPP
   Registrar function [REGISTRAR].

2.  Specification Template

   Namespace ID:

      The Namespace ID "xmpp" is requested.

   Registration Information:

      Version 1
      Date: 2007-04-27

   Declared Registrant of the Namespace:

      Registering organization
         Organization: XMPP Standards Foundation
         Address: P.O. Box 1641, Denver, CO 80201 USA
      Designated contact
         Role: XMPP Registrar
         Email: registrar@xmpp.org

   Declaration of Syntactic Structure:

      The Namespace Specific String (NSS) of all URNs that use the
      "xmpp" NID shall have the following structure:

         urn:xmpp:{ShortName}:{SubName}

      The keywords have the following meaning:

         (1) the "ShortName" is a required US-ASCII string that
         conforms to the URN syntax requirements (see RFC 2141)
         and defines a particular protocol or format that is used
         as an XMPP extension.

         (2) the "SubName" is an optional US-ASCII string that
         conforms to the URN syntax requirements (see RFC 2141)
         and defines a particular subset of the relevant protocol
         or format.

      The XSF's XMPP Registrar function shall be responsible for
      managing the assignment of both "ShortName" and "SubName"
      strings and maintaining a registry of resulting namespaces
      at <http://www.xmpp.org/registrar/namespaces.html>.  The
      XMPP Registrar may also assign URNs in sub-trees below the
      level of the ShortName or SubName as needed for use in various
      XMPP extensions.

   Relevant Ancillary Documentation:

      Information about the XSF's XMPP Registrar function can be
      found at <http://www.xmpp.org/extensions/xep-0053.html>
      and <http://www.xmpp.org/registrar/>.

   Identifier Uniqueness Considerations:

      The XMPP Registrar is already responsible for managing
      the assignment of XML namespace names of the form
      "http://jabber.org/protocol/{ShortName}" and
      "http://jabber.org/protocol/{ShortName}#{SubName}"
      (e.g., "http://jabber.org/protocol/pubsub" and
      "http://jabber.org/protocol/disco#info").  In order to
      assign namespace names in the context of the "xmpp"
      NID, the XMPP Registrar shall simply modify the syntax
      of the namespace names it assigns from
      "http://jabber.org/protocol/{ShortName}" and
      "http://jabber.org/protocol/{ShortName}#{SubName}" to
      "urn:xmpp:{ShortName}" and "urn:xmpp:{ShortName}:{SubName}".

      The XMPP Registrar shall ensure the uniqueness of all
      XMPP URNs by checking such names against the list of
      existing namespace names, as documented in XEP-0053
      (the controlling specification for the XMPP Registrar
      function).  The XMPP Registrar shall, in all cases, directly
      ensure the uniqueness of the assigned strings and shall
      not assign secondary responsibility for management of any
      sub-trees.  However, the XMPP Registrar may assign URNs
      in sub-trees below the level of the ShortName or SubName
      as needed for use in various XMPP extensions.  The
      resulting URNs shall not be re-assigned.

   Identifier Persistence Considerations:

      The XMPP Registrar shall provide clear documentation of
      the registered uses of the "xmpp" NID in the form of
      XMPP Extension Protocol (XEP) specifications published
      at <http://www.xmpp.org/extensions/>, as well as a
      registry of the namespace names themselves at
      <http://www.xmpp.org/registrar/namespaces.html>.

   Process of Identifier Assignment:

      The XMPP Registrar's processes and procedures for
      identifier assignment are documented in XEP-0053,
      which is the controlling specification for the XMPP
      Registrar function.  In particular, identifiers shall
      be issued only upon advancement of the relevant protocol
      specification to a status of Draft within the standards
      process, followed by the XMPP Standards Foundation (as
      specified in XEP-0001).  The XMPP Registrar shall check
      all identifiers against the list of existing namespace
      names to ensure uniqueness and to encourage relevance
      and memorability.  Assignment of URNs within the "xmpp"
      tree is reserved to the XMPP Standards Foundation,
      specifically to its XMPP Registrar function.

   Process for Identifier Resolution:

      The namespace is not currently listed with a Resolution
      Discovery System (RDS), but nothing about the namespace
      prohibits the future definition of appropriate resolution
      methods or listing with an RDS.

   Rules for Lexical Equivalence:

      No special considerations; the rules for lexical
      equivalence specified in RFC 2141 apply.

   Conformance with URN Syntax:

      No special considerations.

   Validation Mechanism:

      None specified.

   Scope:

      Global.

3.  Namespace Considerations

   The XMPP Standards Foundation has been developing Internet protocols
   since August 2001 and that work is expected to continue for the
   foreseeable future.  The old-style "jabber:*" namespace names
   originally used in the Jabber open-source community were not proper
   URNs or URIs and thus were deprecated in early 2002.  Since then, the
   namespace names assigned by the XMPP Registrar function of the XMPP
   Standards Foundation have been (equivalent to) specialized HTTP URLs
   whose authority component is "jabber.org".  While that domain is
   currently under the control of the XMPP Standards Foundation, there
   is no guarantee that it will always remain so, thus potentially
   threatening the reliability and permanence of the assigned namespace
   names.  The use of Uniform Resource Names with an appropriate
   Namespace ID will enable the XMPP Standards Foundation to assign
   cleaner, more general, more permanent, more reliable, and more
   controllable namespace names related to the XMPP extensions it
   defines, while keeping the tree of XMPP extensions produced by the
   XMPP Standards Foundation properly separate from the IETF tree used
   to define some of the core XMPP namespaces as well as namespaces
   related to XMPP extensions that may be produced in the future by the
   IETF.

4.  Community Considerations

   The XMPP standards development community will benefit from
   publication of this namespace by having more permanent and reliable
   names for the XML namespaces defined in XMPP Extension Protocol
   specifications produced by the XMPP Standards Foundation.

   The standards process followed by the XSF is open to contributions
   from any interested individual; such a contribution takes the form of
   a proposal submitted to the XMPP Extensions Editor
   <mailto:editor@xmpp.org>, accepted by the XMPP Council
   <http://www.xmpp.org/council/>, and published in the XSF's XMPP
   Extension Protocol (XEP) series at <http://www.xmpp.org/extensions/>.
   Use of the proposed space for a particular XML format or protocol
   extension will be contingent upon advancement of the appropriate
   specification within the XSF's standards process (as documented in
   [XEP]) and issuance of a namespace name within the "xmpp" tree by the
   XMPP Registrar (as documented in [REGISTRAR]).

5.  Security Considerations

   This document introduces no additional security considerations beyond
   those associated with the use and resolution of URNs in general.

6.  IANA Considerations

   This document defines a URN NID registration of "xmpp", which has
   been entered into the IANA registry located at
   <http://www.iana.org/assignments/urn-namespaces>.

7.  References

7.1.  Normative References

   [MECHANISMS]  Daigle, L., van Gulik, D., Iannella, R., and P.
                 Faltstrom, "Uniform Resource Names (URN) Namespace
                 Definition Mechanisms", BCP 66, RFC 3406, October 2002.

   [URN]         Moats, R., "URN Syntax", RFC 2141, May 1997.

7.2.  Informative References

   [REGISTRAR]   Saint-Andre, P., "XMPP Registrar Function", XSF
                 XEP 0053, December 2006.

   [XEP]         Saint-Andre, P., "XMPP Extension Protocols", XSF
                 XEP 0001, December 2006.

   [XML]         Bray, T., Paoli, J., Sperberg-McQueen, C., and E.
                 Maler, "Extensible Markup Language (XML) 1.0 (2nd ed)",
                 W3C REC-xml, October 2000,
                 <http://www.w3.org/TR/REC-xml>.

   [XML-NAMES]   Bray, T., Hollander, D., and A. Layman, "Namespaces in
                 XML", W3C REC-xml-names, January 1999,
                 <http://www.w3.org/TR/REC-xml-names>.

   [XMPP-CORE]   Saint-Andre, P., "Extensible Messaging and Presence
                 Protocol (XMPP): Core", RFC 3920, October 2004.

   [XMPP-IM]     Saint-Andre, P., "Extensible Messaging and Presence
                 Protocol (XMPP): Instant Messaging and Presence",
                 RFC 3921, October 2004.

Author's Address

   Peter Saint-Andre
   XMPP Standards Foundation
   P.O. Box 1641
   Denver, CO  80201
   USA

   EMail: stpeter@jabber.org
   URI:   xmpp:stpeter@jabber.org

Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMXMPP extensions (additions to the core messaging protocol) were named using HTTP URLs, but these can become unreliable if domain control changes, threatening the permanence of extension names.
MECHANISMThe RFC registers a Uniform Resource Name (URN) namespace identifier "xmpp" that gives XMPP extensions stable, permanent names like urn:xmpp:pubsub or urn:xmpp:muc:user, managed by the XMPP Standards Foundation's registrar.
THE OUTCOMEXMPP extensions now have durable, reliable names independent of any single domain, improving interoperability and persistence.

§1Extensions to a Messaging Protocol

XMPP (Extensible Messaging and Presence Protocol) is a real-time messaging and chat protocol, the basis for Jabber and other services. The protocol itself provides basic messaging and presence (online status), but its design is modular: it is fundamentally a way to stream XML data, so developers can add virtually any structured information as extensions.

These extensions are numerous. Some add file transfer, others add multi-user chat or publish-subscribe systems. Each extension needs a unique XML namespace name—a label that identifies what kind of data is inside an XMPP message.

Historically, XMPP extensions used namespace names like http://jabber.org/protocol/pubsub (for a publish-subscribe extension). These are HTTP URLs, which are permanent as long as the domain jabber.org remains under control of the XMPP community. But domain control can change, URLs can become unreachable, and the semantics are tied to an external authority. This document registers a better solution: a Uniform Resource Name (URN) namespace that gives XMPP extensions permanent, unique identifiers.

XMPP is a chat system that lets people add features like group chats or file transfer. Each feature needs a unique name so messages using that feature are recognized correctly. The old names were web addresses, which could become unreliable.

§2What is a URN?

A Uniform Resource Name (URN) is an identifier with a specific syntax defined in RFC 2141. Unlike a URL, which points to a location on the web, a URN is a persistent, location-independent name for a resource. A URN consists of three parts:

urn: (the scheme), NID (Namespace ID, like "xmpp"), and NSS (Namespace Specific String, like "pubsub").

Examples: urn:isbn:0451450523 identifies a book; urn:xmpp:pubsub (after registration by this RFC) identifies the XMPP publish-subscribe extension.

The key advantage of URNs is permanence and independence. An ISBN number for a book remains the same no matter which bookstore sells it; a URN for an XMPP extension remains the same no matter which organization controls a domain. URNs are managed by registrars responsible for ensuring uniqueness and persistence within their namespace, without depending on DNS or any commercial domain.

A URN is a permanent ID like a Social Security number, not a location like a home address. Once assigned, it never changes and does not depend on any website.

§3The "xmpp" Namespace Registration

This RFC registers the URN Namespace ID "xmpp" for XMPP extensions and XML formats defined in specifications published by the XMPP Standards Foundation (XSF). The XSF is the standards body behind XMPP.

The structure of XMPP URNs is simple: urn:xmpp:{ShortName}:{SubName}. The ShortName is required and identifies the protocol or format (e.g., "pubsub" for publish-subscribe, "muc" for multi-user chat). The SubName is optional and identifies a particular subset or variant (e.g., "urn:xmpp:muc:user" for the user profile aspect of multi-user chat).

The XSF's XMPP Registrar function manages assignment of all ShortName and SubName strings, maintaining a public registry at the XSF website. This is the same registrar that previously assigned HTTP URL namespaces; it simply shifts to assigning URNs with the same process. Each registered URN is unique and permanent, never reassigned.

New XMPP extensions are only assigned URNs when the relevant extension specification reaches a standard status ("Draft") in the XSF's standards process. This ensures that only formally reviewed extensions receive URNs.

XMPP extensions get names like "urn:xmpp:pubsub" or "urn:xmpp:muc:user". The XMPP Standards Foundation keeps track of all these names and makes sure no two extensions get the same name.

§4Why URNs Are Better Than HTTP URLs

The shift from HTTP URL-based names to URN-based names solves several problems. First, permanence: an HTTP URL namespace like "http://jabber.org/protocol/..." depends on the jabber.org domain remaining under XSF control. If that domain were lost, sold, or transferred, the namespace URLs would become unreliable or meaningless. A URN, once registered, persists regardless of domain changes or domain transfers.

Second, clarity of intent. An HTTP URL looks like it might point to a web page describing the extension; in reality, it is just an opaque identifier. A URN makes it clear that this is a permanent, universal identifier, not a web address.

Third, separation from IETF standards. XMPP extensions developed by the XSF are distinct from the core XMPP specifications standardized by the IETF (which use IETF URNs like "urn:ietf:params:xml:ns:xmpp-*"). The separate "xmpp" namespace makes this distinction clear.

Finally, independence from any single authority. XMPP extensions are managed by the XSF, an independent standards organization. Using IETF namespaces would imply IETF governance; using a dedicated "xmpp" namespace preserves XSF independence.

If an extension's name is a web address, it depends on that website staying online. A permanent ID number (URN) never depends on a website, making it more reliable.

§5How the System Works Today

The XMPP Registrar manages a public registry of all assigned XMPP URNs, published at the XSF website. When someone proposes a new XMPP extension (submitted as an XMPP Extension Protocol or XEP specification), it goes through the XSF's open standards process: submitted to an editor, reviewed by the XSF Council, and advanced through stages (Experimental, Proposed, Draft, Final). Once an extension reaches Draft status, the XMPP Registrar assigns it a URN within the "xmpp" tree.

The registrar checks all proposed ShortNames and SubNames against the existing registry to ensure uniqueness. Developers and operators can look up extension names and their specifications on the XSF website, making it easy to discover which extensions are available and which versions are standardized.

For XML documents and data structures that use XMPP extensions, the namespace declaration in the XML simply references the URN (e.g., xmlns='urn:xmpp:pubsub'), making it clear which standardized extension applies. Tools and libraries can recognize these URNs without needing to fetch anything from the web.

When a new XMPP add-on gets approved, the XSF Registrar assigns it a URN name and adds it to a public list. Anyone building a chat program can look up that name to find out what the feature does.

§6References