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
Saint-Andre, P., "A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP)", RFC 4854, DOI 10.17487/RFC4854, April 2007, <https://www.rfc-editor.org/info/rfc4854>.
@misc{rfc4854,
series = {Request for Comments},
number = 4854,
howpublished = {RFC 4854},
publisher = {RFC Editor},
doi = {10.17487/RFC4854},
url = {https://www.rfc-editor.org/info/rfc4854},
author = {P. Saint-Andre},
title = {{A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP)}},
pagetotal = 9,
year = 2007,
month = apr,
} RFC text
Contents
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
§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.