JEP-0093: Roster Item Exchange

This JEP provides canonical documentation of the existing 'jabber:x:roster' namespace currently used within the Jabber community.

NOTICE: This Historical JEP provides canonical documentation of a protocol that is in wide use within the Jabber community. This JEP is not a standards-track specification within the Jabber Software Foundation's standards process; therefore it may be converted to standards-track in the future or may be obsoleted by a more modern protocol.

JEP Information

Status: Active
Type: Historical
Number: 0093
Version: 1.1
Last Updated: 2004-02-24
JIG: Standards JIG
Approving Body: Jabber Council
Dependencies: XMPP Core, XMPP IM
Supersedes: None
Superseded By: None
Short Name: x-roster
Schema: <>

Author Information

Peter Saint-Andre


Legal Notice

This Jabber Enhancement Proposal is copyright 1999 - 2005 by the Jabber Software Foundation (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy <>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at <>).

Discussion Venue

The preferred venue for discussion of this document is the Standards-JIG discussion list: <>.

Relation to XMPP

The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 3920) and XMPP IM (RFC 3921) specifications contributed by the Jabber Software Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocols defined in this JEP have been developed outside the Internet Standards Process and are to be understood as extensions to XMPP rather than as an evolution, development, or modification of XMPP itself.

Conformance Terms

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Table of Contents

1. Introduction
2. Definition
3. Examples
4. Security Considerations
5. IANA Considerations
6. Jabber Registrar Considerations
7. XML Schema
Revision History

1. Introduction

The Jabber protocols have long included a method for sending roster items to another entity. This method makes use of the 'jabber:x:roster' namespace and has been documented variously in Internet-Drafts and elsewhere. Because this protocol is not required by RFC 2779 [1], the 'jabber:x:roster' namespace was removed from XMPP IM [2]. This JEP fills the void for canonical documentation.

2. Definition

The 'jabber:x:roster' namespace (which is not to be confused with the 'jabber:iq:roster' namespace) is used to send roster items from one Jabber entity to another. A roster item is sent by adding to the <message/> element an <x/> child scoped by the 'jabber:x:roster' namespace. This <x/> element MUST contain at least one <item/> child elements (one for each roster item to be sent).

Each <item/> element may possess the following attributes:

Each <item/> element MAY also contain one or more <group/> children specifying the natural-language name of a user-specified group, for the purpose of categorizing this contact into one or more roster groups.

3. Examples

Example 1. A Roster Item Sent to another Entity

<message to='hamlet@denmark' from='horatio@denmark'>
  <body>This message contains roster items.</body>
  <x xmlns='jabber:x:roster'> 
    <item jid='rosencrantz@denmark'
    <item jid='guildenstern@denmark'

4. Security Considerations

There are no security features or concerns related to this proposal.

5. IANA Considerations

This JEP requires no interaction with the Internet Assigned Numbers Authority (IANA) [3].

6. Jabber Registrar Considerations

The 'jabber:x:roster' namespace is registered in the protocol namespaces registry maintained by the Jabber Registrar [4].

7. XML Schema

<?xml version='1.0' encoding='UTF-8'?>


      The protocol documented by this schema is defined in

  <xs:element name='x'>
        <xs:element ref='item' minOccurs='1' maxOccurs='unbounded'/>

  <xs:element name='item'>
        <xs:element name='group' type='xs:string' minOccurs='0' maxOccurs='unbounded'/>
      <xs:attribute name='jid' type='xs:string' use='required'/>
      <xs:attribute name='name' type='xs:string' use='optional'/>



1. RFC 2779: A Model for Presence and Instant Messaging <>.

2. RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence <>.

3. The Internet Assigned Numbers Authority (IANA) is the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. For further information, see <>.

4. The Jabber Registrar maintains a list of reserved Jabber protocol namespaces as well as registries of parameters used in the context of protocols approved by the Jabber Software Foundation. For further information, see <>.

Revision History

Version 1.1 (2004-02-24)

Corrected several small textual errors. (psa)

Version 1.0 (2003-10-08)

Per a vote of the Jabber Council, changed status to Active. (psa)

Version 0.1 (2003-05-22)

Initial version. (psa)