RFC 4854

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

πŸ“… published April 2007, from ietf

RFC 4854 πŸ’– A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP)

Part 1 of 2 ✨

Okay bestie, here's the vibe check on this one 🫢

  • Number and title: RFC 4854, "A Uniform Resource Name (URN) Namespace for Extensions to the Extensible Messaging and Presence Protocol (XMPP)"
  • Author: P. Saint-Andre, from the XMPP Standards Foundation (XSF)
  • Series: Network Working Group
  • Category: Informational πŸŽ€
  • Date: April 2007
  • Obsoletes: nothing listed
  • Updates: nothing listed

Status of This Memo 🌸

This memo gives information to the Internet community. It doesn't set any kind of Internet standard, and it's totally fine to share it everywhere, because distribution is unlimited πŸ¦‹

Copyright (C) The IETF Trust (2007).

Abstract 🧚

This doc describes a Uniform Resource Name (URN) namespace so you can uniquely identify Extensible Markup Language (XML) formats and protocols. These are the ones that extend the Extensible Messaging and Presence Protocol (XMPP), and they're defined in specs published by the XMPP Standards Foundation (XSF). Basically, it's a unique ID system for XMPP extensions πŸ”₯

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 🌈

Okay so XMPP, which is defined in [XMPP-CORE] and [XMPP-IM], already does basic messaging and presence stuff. But XMPP is at its core a way to stream Extensible Markup Language [XML] data. That means you can stuff basically any structured info into it, as long as it's tagged with the right XML namespaces [XML-NAMES]. When that structured data travels over XMPP, people call it "XMPP extensions" πŸ’œ

There are a LOT of these extensions. The main standards body where they get defined is the XMPP Standards Foundation (XSF), which used to be the Jabber Software Foundation. The XSF also brought XMPP into the Internet Standards process πŸŽ€ Most of the extensions live in the XSF's XMPP Extension Protocol (XEP) series. So far, the XML namespaces from the Jabber/XMPP community have used names like jabber:* (which got deprecated back in early 2002) and http://jabber.org/protocol/*. The second kind doesn't include the urn:ietf:params:xml:ns:xmpp-* names that are specified in the XMPP RFCs.

Here's the problem, though. We want names for future XMPP extensions to be unique and to last, and names that are also HTTP URLs don't always promise that. So, following the process in [MECHANISMS], this doc registers a formal namespace identifier (NID) for Uniform Resource Names [URN]. It covers XMPP extensions published in the XSF's XEP series, plus XML namespaces registered with the XSF's XMPP Registrar function [REGISTRAR] ✨

2. Specification Template πŸ’–

This is the registration form for the new namespace, filled out with all the details.

Namespace ID

The Namespace ID xmpp is requested πŸ¦‹

Registration Information

Version 1
Date: 2007-04-27

Declared Registrant of the Namespace

The registering organization is the XMPP Standards Foundation, at P.O. Box 1641, Denver, CO 80201 USA.

The designated contact is the XMPP Registrar, reachable at registrar@xmpp.org.

Declaration of Syntactic Structure

Every URN that uses the xmpp NID has a Namespace Specific String (NSS) that looks like this, and it has to follow this shape:

urn:xmpp:{ShortName}:{SubName}

Here's what each piece means:

  • ShortName: This one is required. It's a US-ASCII string that follows the URN syntax rules in RFC 2141, and it names a specific protocol or format used as an XMPP extension.
  • SubName: This one is optional. It's also a US-ASCII string that follows the URN syntax rules in RFC 2141, and it names a particular subset of that protocol or format.

The XSF's XMPP Registrar function is in charge of assigning both the ShortName and SubName strings, and it keeps a registry of the resulting namespaces at <http://www.xmpp.org/registrar/namespaces.html>. The XMPP Registrar may also assign URNs in sub-trees below the ShortName or SubName level when various XMPP extensions need them πŸ‘‘

Relevant Ancillary Documentation

You can find info about the XSF's XMPP Registrar function at <http://www.xmpp.org/extensions/xep-0053.html> and <http://www.xmpp.org/registrar/> 🌸

Identifier Uniqueness Considerations

The XMPP Registrar already manages XML namespace names in the form http://jabber.org/protocol/{ShortName} and http://jabber.org/protocol/{ShortName}#{SubName}. Examples are http://jabber.org/protocol/pubsub and http://jabber.org/protocol/disco#info. To assign names in the xmpp NID, the XMPP Registrar just changes the syntax of the names it already assigns. http://jabber.org/protocol/{ShortName} becomes urn:xmpp:{ShortName}, and http://jabber.org/protocol/{ShortName}#{SubName} becomes urn:xmpp:{ShortName}:{SubName} πŸ”₯

The XMPP Registrar has to make sure every XMPP URN is unique. It does that by checking each name against the list of existing namespace names, which is documented in XEP-0053 (the controlling spec for the Registrar function). In every case, the Registrar has to make sure the assigned strings are unique itself, and it shall not hand off responsibility for managing any sub-trees to anyone else. It may still assign URNs in sub-trees below the ShortName or SubName level when various XMPP extensions need them. Once a URN is assigned, it shall not be re-assigned 🧚

Identifier Persistence Considerations

The XMPP Registrar has to clearly document every registered use of the xmpp NID. That documentation lives in XMPP Extension Protocol (XEP) specs published at <http://www.xmpp.org/extensions/>, and in a registry of the namespace names at <http://www.xmpp.org/registrar/namespaces.html> πŸ’œ

Process of Identifier Assignment

The Registrar's processes and procedures for assigning identifiers are written up in XEP-0053, which is the controlling spec for the Registrar function. Identifiers only get issued after the relevant protocol spec has moved up to Draft status in the standards process, and that happens under the XMPP Standards Foundation (as XEP-0001 describes). The XMPP Registrar also checks every identifier against the existing namespace names. That keeps them unique, and it helps them be relevant and easy to remember. Assigning URNs within the xmpp tree is reserved for the XMPP Standards Foundation, and specifically for its XMPP Registrar function πŸŽ€

Process for Identifier Resolution

The namespace isn't listed with a Resolution Discovery System (RDS) right now. But nothing about the namespace stops anyone from defining resolution methods or listing it with an RDS later πŸ¦‹

Rules for Lexical Equivalence

Nothing special here. The rules for lexical equivalence in RFC 2141 apply ✨

Conformance with URN Syntax

Nothing special here either πŸ’…

Validation Mechanism

None specified 🌈

Scope

Global 🌍


Part 1 ends here. Part 2 covers Sections 3 through 7 and the References. 🫢

7.2. Informative References ✨

okay bestie, this is the optional reading list πŸ“š these aren't required to implement the thing, but they're the background docs. XEP stuff, the XML specs, and the XMPP core and IM RFCs. πŸ€“

  • [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 πŸ’Œ

Meet the author, Peter Saint-Andre, with the XMPP Standards Foundation. πŸ¦‹

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

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

the legal bit, kept complete and exact 🫢

   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 IPR stuff, also complete. the IETF doesn't take a position on whether any patents or rights apply here, and you can find the procedures in BCP 78 and BCP 79.

   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. 🌈 thank you to them for keeping the RFC library running! πŸ‘‘

πŸ“¦ where this page comes from