JEP to XEP in progress

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@6 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2006-10-03 03:51:29 +00:00
parent 2ac91f50c8
commit c04cfd6d39
18 changed files with 492 additions and 497 deletions

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>Message Expiration</title>
<abstract>This JEP documents an historical protocol that was used to specify expiration dates for messages; this protocol has been deprecated in favor of JEP-0079: Advanced Message Processing.</abstract>
<abstract>This specification documents an historical protocol that was used to specify expiration dates for messages; this protocol has been deprecated in favor of JEP-0079: Advanced Message Processing.</abstract>
&LEGALNOTICE;
<number>0023</number>
<status>Deprecated</status>

View File

@ -62,7 +62,7 @@
<section1 topic="Introduction">
<p><em>Note Well: This protocol specified in this document has been superseded by the protocol specified in &jep0124;.</em></p>
<p>
This JEP documents a method to allow Jabber clients to access Jabber
This specification documents a method to allow Jabber clients to access Jabber
servers from behind existing firewalls. Although several similar methods
have been proposed, this approach should work through all known firewall
configurations which allow outbound HTTP access.

View File

@ -60,7 +60,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>The Jabber community has long acknowledged the need for privacy and security features in a well-rounded instant messaging system. Unfortunately, finding a consensus solution to the problem of end-to-end encryption during the community's younger days was not easy. Eventually, early contributors created a quick solution using OpenPGP. This JEP documents the OpenPGP solution as it is used today, so that others may interoperate with clients that support it. This JEP is not intended to present a standard, because more complete solutions are being investigated.</p>
<p>The Jabber community has long acknowledged the need for privacy and security features in a well-rounded instant messaging system. Unfortunately, finding a consensus solution to the problem of end-to-end encryption during the community's younger days was not easy. Eventually, early contributors created a quick solution using OpenPGP. This specification documents the OpenPGP solution as it is used today, so that others may interoperate with clients that support it. This JEP is not intended to present a standard, because more complete solutions are being investigated.</p>
<p>All operations described here are done with standard OpenPGP software such as <link url='http://www.gnupg.org/'>GnuPG</link>. All program output is US-ASCII armored output with the headers removed. This allows for easy transportation of the program output directly in the XML. All keys are exchanged using OpenPGP key servers, and usually are retrieved when a signed &PRESENCE; stanza is received (key retrieval does not happen in-band).</p>
</section1>
<section1 topic='Signing' anchor='signing'>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>Bookmark Storage</title>
<abstract>This JEP documents a protocol for the storage of bookmarks to conference rooms and other entities in a Jabber user's account.</abstract>
<abstract>This specification documents a protocol for the storage of bookmarks to conference rooms and other entities in a Jabber user's account.</abstract>
&LEGALNOTICE;
<number>0048</number>
<status>Active</status>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>Private XML Storage</title>
<abstract>This JEP provides canonical documentation of the 'jabber:iq:private' namespace currently in common usage.</abstract>
<abstract>This specification provides canonical documentation of the 'jabber:iq:private' namespace currently in common usage.</abstract>
&LEGALNOTICE;
<number>0049</number>
<status>Active</status>
@ -80,7 +80,7 @@
</revision>
</header>
<section1 topic='Introduction'>
<p>The 'jabber:iq:private' namespace has previously been documented in the Jabber Programmers Guide, but not in a canonical form such as the Internet-Drafts or a JEP. This JEP documents the existing usage of jabber:iq:private.</p>
<p>The 'jabber:iq:private' namespace has previously been documented in the Jabber Programmers Guide, but not in a canonical form such as the Internet-Drafts or a JEP. This specification documents the existing usage of jabber:iq:private.</p>
</section1>
<section1 topic='jabber:iq:private Namespace'>
<section2 topic='Description'>

View File

@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>Jabber Registrar</title>
<abstract>This JEP defines the roles and processes of the Jabber Registrar within the Jabber Software Foundation.</abstract>
<title>XMPP Registrar</title>
<abstract>This document defines the roles and processes of the XMPP Registrar within the Jabber Software Foundation.</abstract>
&LEGALNOTICE;
<number>0053</number>
<status>Active</status>
@ -29,13 +29,13 @@
<version>1.0</version>
<date>2003-03-20</date>
<initials>psa</initials>
<remark>Per a vote of the Jabber Council, advanced status to Active.</remark>
<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 Jabber Registrar in response to feedback from the JSF Board of Directors.</remark>
<remark>Changed name to XMPP Registrar in response to feedback from the JSF Board of Directors.</remark>
</revision>
<revision>
<version>0.4</version>
@ -47,7 +47,7 @@
<version>0.3</version>
<date>2002-11-22</date>
<initials>psa</initials>
<remark>Simplified to reflect discussion in the Jabber Council; in particular, reserved JANA functions to the JEP Editor until there is a perceived need for a more formal governing body.</remark>
<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>
@ -63,24 +63,24 @@
</revision>
</header>
<section1 topic='Introduction and Purpose'>
<p>As the &JSF; publishes more protocol specifications (see &jep0001;), it becomes necessary to keep better 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 &jep0020; and the identities and features used in &jep0030;.) In particular, the common use of protocols published by the JSF requires that namespaces and particular parameter values be assigned uniquely. It is the role of the Jabber Registrar to make those unique assignments and to maintain registries of the currently assigned values. The Jabber Registrar shall also function as a single point of contact between the Jabber community and &IANA;.</p>
<p>As the &JSF; publishes more protocol specifications (see &xep0001;), it becomes necessary to keep better 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 JSF 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 Jabber/XMPP developer community and &IANA;.</p>
</section1>
<section1 topic='Composition'>
<p>Until there is a perceived need for a more formal governing body, the functions of the Jabber 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 Jabber Registrar; if they do, this JEP shall be updated to reflect the change.</p>
<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='Process'>
<p>Every Jabber Enhancement Proposal (JEP) must contain a section devoted to "Jabber Registrar Considerations", detailing the namespaces and parameters to be registered with the Jabber Registrar, as well as any new registries to be created as a result of the JEP.</p>
<p>The registry additions or creations specified in a JEP shall not take effect until the JEP advances to a status of Draft (Standards-Track JEPs) or Active (Informational and Historical JEPs). Registration of namespaces shall be initiated by the JEP Editor when a JEP advances to Draft or Active and shall not require the involvement of the JEP author. Registration of particular parameters used within a specification shall be initiated by the JEP Editor if specified in the JEP, and may also be initiated by implementers of the JEP after it has advanced to Active, Draft, or Final. Creation of new registries shall be initiated by the Jabber Registrar; if a JEP specifies the creation of a new registry, the JEP author is strongly encouraged to consult with the Jabber Registrar before seeking a Last Call on the JEP.</p>
<p>Requests for namespace and parameter assignments must be sent to the Jabber Registrar in accordance with the process specified in the document (usually a JEP) that defines the relevant registry, normally by sending an appropriately formatted email message to &lt;registrar@jabber.org&gt;. If, in the Registrar's judgment, discussion of a request is required, the Registrar shall initiate such discussion within the &SJIG;. The Registrar shall add registry items at his discretion based on discussion within the Standards JIG if necessary, but shall not unduly restrict registration of parameter values. If a JEP author or implementer thinks that a request was unfairly denied by the Registrar, an appeal of the decision may be directed to the Jabber Council.</p>
<p>The Jabber Registrar shall maintain registries of assigned namespaces and parameters at &lt;<link url="http://www.jabber.org/registrar/">http://www.jabber.org/registrar/</link>&gt; and shall update those registries in a timely fashion. Changes to JSF registries shall be announced on the Standards-JIG mailing list.</p>
<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 an XMPP Extension Protocol specification 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 initiated by the XMPP Extensions Editor when a XEP advances to Draft or Active and shall not require the involvement of the document author. 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 XMPP Extension Protocol document 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 namespace and 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 &lt;registrar@jabber.org&gt;. If, in the Registrar's judgment, discussion of a request is required, the Registrar shall initiate such discussion within the &SJIG;. The Registrar shall add registry items at his discretion based on discussion within the Standards JIG if necessary, but shall not unduly restrict registration of parameter values. If a document author or implementer 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 JSF registries shall be announced on the Standards-JIG mailing list.</p>
</section1>
<section1 topic='Security Considerations'>
<p>Security considerations are primarily the responsibility of the protocols in which specific parameters are used. The Jabber Registrar shall respect the security considerations defined in JSF protocol specifications, and shall endeavor to ensure that registered parameter values do not compromise privacy or security in any way.</p>
<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 JSF 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'>
<p>The Jabber Registrar shall be responsible for interacting with the IANA on behalf of the Jabber community. If a JEP requires interaction with the IANA, that fact shall be noted by the JEP author in the JEP and discussed on the Standards-JIG mailing list along with normal discussion of the JEP. The Jabber Registrar shall collaborate with the JEP author to present an appropriate request to the IANA.</p>
<p>The XMPP Registrar shall be responsible for interacting with the IANA on behalf of the Jabber Software Foundation and Jabber/XMPP developer community. If an XMPP Extension Protocol document requires interaction with the IANA, that fact shall be noted by the document author and discussed on the Standards-JIG mailing list along with normal discussion of the XEP. The XMPP Registrar shall collaborate with the author to present an appropriate request to the IANA.</p>
</section1>
<section1 topic='Jabber Registrar Considerations'>
<p>This entire document defines the processes and procedures of the Jabber Registrar.</p>
<section1 topic='XMPP Registrar Considerations'>
<p>This entire document defines the processes and procedures of the XMPP Registrar.</p>
</section1>
</jep>
</xep>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>vcard-temp</title>
<abstract>This JEP provides canonical documentation of the vCard-XML format currently in use within the Jabber community.</abstract>
<abstract>This specification provides canonical documentation of the vCard-XML format currently in use within the Jabber community.</abstract>
&LEGALNOTICE;
<number>0054</number>
<status>Active</status>
@ -46,7 +46,7 @@
</revision>
</header>
<section1 topic='Introduction'>
<p>This JEP documents the vCard-XML format currently in use within the Jabber community. A future JEP will recommend a standards-track protocol to supersede this informational document.</p>
<p>This specification documents the vCard-XML format currently in use within the Jabber community. A future JEP will recommend a standards-track protocol to supersede this informational document.</p>
<p>The basic functionality is for a user to store and retrieve an XML representation of his or her vCard using the data storage capabilities native to all existing Jabber server implementations. This is done by by sending an &lt;iq/&gt; of type "set" (storage) or "get" (retrieval) to one's Jabber server containing a &lt;vCard/&gt; child scoped by the 'vcard-temp' namespace, with the &lt;vCard/&gt; element containing the actual vCard-XML elements as defined by the vCard-XML DTD. Other users may then view one's vCard information.</p>
</section1>
<section1 topic='History'>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>Jabber Search</title>
<abstract>This JEP provides canonical documentation of the 'jabber:iq:search' namespace currently in use within the Jabber community.</abstract>
<abstract>This specification provides canonical documentation of the 'jabber:iq:search' namespace currently in use within the Jabber community.</abstract>
&LEGALNOTICE;
<number>0055</number>
<status>Active</status>
@ -50,7 +50,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>This JEP documents a protocol currently used to search information repositories on the Jabber network. To date, the jabber:iq:search protocol has been used mainly to search for people who have registered with user directories (e.g., the "Jabber User Directory" hosted at users.jabber.org). However, the jabber:iq:search protocol is not limited to user directories, and could be used to search other Jabber information repositories (such as chatroom directories) or even to provide a Jabber interface to conventional search engines.</p>
<p>This specification documents a protocol currently used to search information repositories on the Jabber network. To date, the jabber:iq:search protocol has been used mainly to search for people who have registered with user directories (e.g., the "Jabber User Directory" hosted at users.jabber.org). However, the jabber:iq:search protocol is not limited to user directories, and could be used to search other Jabber information repositories (such as chatroom directories) or even to provide a Jabber interface to conventional search engines.</p>
<p>The basic functionality is to query an information repository regarding the possible search fields, to send a search query, and to receive search results. Note well that there is currently no mechanism for paging through results or limiting the number of "hits", and that the allowable search fields are limited to those defined in the XML schema; however, extensibility MAY be provided via the &jep0004; protocol, as described below.</p>
</section1>
<section1 topic='Use Cases' anchor='usecases'>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>In-Band Registration</title>
<abstract>This JEP documents a protocol for in-band registration with instant messaging servers and associated services using the jabber:iq:register namespace.</abstract>
<abstract>This specification documents a protocol for in-band registration with instant messaging servers and associated services using the jabber:iq:register namespace.</abstract>
&LEGALNOTICE;
<number>0077</number>
<status>Final</status>

View File

@ -7,7 +7,7 @@
<jep>
<header>
<title>Jabber Component Protocol</title>
<abstract>This JEP documents the existing protocol used for communication between servers and "external" components over the Jabber network.</abstract>
<abstract>This specification documents the existing protocol used for communication between servers and "external" components over the Jabber network.</abstract>
&LEGALNOTICE;
<number>0114</number>
<status>Active</status>

View File

@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>Invisibility</title>
<abstract>This JEP describes best practices regarding implementation of invisible presence by means of XMPP privacy lists.</abstract>
<abstract>This specification defines best practices regarding implementation of invisible presence by means of XMPP privacy lists.</abstract>
&LEGALNOTICE;
<number>0126</number>
<status>Active</status>
@ -59,7 +59,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>Several popular instant messaging services implement a feature known as invisibility: the ability to remain online yet appear offline to some or all of one's contacts. A number of Jabber servers and clients have also implemented such a feature, using special values of the &PRESENCE; element's 'type' attribute (e.g., &lt;presence type='invisible'/&gt;). Unfortunately, such implementations are not compliant with &xmppcore; and &xmppim;, which specify that only the 'type' attribute values defined in the XML schema for the 'jabber:client' and 'jabber:server' namespaces are allowed in XMPP (and those values do not include "invisible"). However, <cite>RFC 3921</cite> also defines a privacy lists protocol (i.e., the 'jabber:iq:privacy' namespace) that can be used to implement invisibility in an XMPP-compliant manner. This JEP documents how to do just that.</p>
<p>Several popular instant messaging services implement a feature known as invisibility: the ability to remain online yet appear offline to some or all of one's contacts. A number of Jabber servers and clients have also implemented such a feature, using special values of the &PRESENCE; element's 'type' attribute (e.g., &lt;presence type='invisible'/&gt;). Unfortunately, such implementations are not compliant with &xmppcore; and &xmppim;, which specify that only the 'type' attribute values defined in the XML schema for the 'jabber:client' and 'jabber:server' namespaces are allowed in XMPP (and those values do not include "invisible"). However, <cite>RFC 3921</cite> also defines a privacy lists protocol (i.e., the 'jabber:iq:privacy' namespace) that can be used to implement invisibility in an XMPP-compliant manner. This specification documents how to do just that.</p>
</section1>
<section1 topic='Requirements' anchor='reqs'>
<p>This document addresses the following requirements:</p>
@ -70,7 +70,7 @@
</ul>
</section1>
<section1 topic='Use Cases' anchor='usecases'>
<p>This JEP addresses the following use cases:</p>
<p>This document addresses the following use cases:</p>
<ol>
<li>Log In as Globally Invisible</li>
<li>Become Selectively Visible</li>
@ -410,15 +410,15 @@
</section1>
<section1 topic='Security Considerations' anchor='impl'>
<p>For security concerns related to privacy lists, refer to <cite>RFC 3921</cite>. Care must be taken regarding privacy lists, especially so that visibility/invisibility rules do not overwrite existing rules the user has set for the sake of security and privacy; for details, see the <link url='#impl'>Implementation Notes</link> section of this document.</p>
<p>It is important to recognize that invisibility can be defeated without more advanced privacy lists than those defined above and an awareness of context on the part of a client. For example, if a user usually logs in as the same resource (e.g., "Home"), a contact can send an IQ request to that resource's full JID using &jep0012;, &jep0030;, &jep0090;, or &jep0092; and receive a reply, thus providing information that reveals the user's availability. In addition, <cite>Last Activity</cite> requests sent by a subscribed contact to the user's bare JID will normally reveal the user's availability as well. To help ensure that the user's invisibility cannot be defeated in this way, the user's client SHOULD add IQ blocking to the relevant privacy list. Finally, the user's client SHOULD NOT return "is-composing" events as defined in &jep0022; or &jep0085;.</p>
<p>It is important to recognize that invisibility can be defeated without more advanced privacy lists than those defined above and an awareness of context on the part of a client. For example, if a user usually logs in as the same resource (e.g., "Home"), a contact can send an IQ request to that resource's full JID using &xep0012;, &xep0030;, &xep0090;, or &xep0092; and receive a reply, thus providing information that reveals the user's availability. In addition, <cite>Last Activity</cite> requests sent by a subscribed contact to the user's bare JID will normally reveal the user's availability as well. To help ensure that the user's invisibility cannot be defeated in this way, the user's client SHOULD add IQ blocking to the relevant privacy list. Finally, the user's client SHOULD NOT return "is-composing" events as defined in &xep0022; or &xep0085;.</p>
</section1>
<section1 topic='IANA Considerations' anchor='impl'>
<p>This JEP requires no interaction with &IANA;.</p>
<p>This document requires no interaction with &IANA;.</p>
</section1>
<section1 topic='Jabber Registrar Considerations' anchor='impl'>
<p>No namespaces or parameters need to be registered with the &REGISTRAR; as a result of this JEP.</p>
<p>No namespaces or parameters need to be registered with the &REGISTRAR; as a result of this specification.</p>
</section1>
<section1 topic='XML Schema' anchor='schema'>
<p>The XML schema for the 'jabber:iq:privacy' namespace is defined in <cite>RFC 3921</cite>.</p>
</section1>
</jep>
</xep>

View File

@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<jep>
<header>
<title>Guidelines for JEP Authors</title>
<abstract>This JEP provides information intended to assist authors of Jabber Enhancement Proposals.</abstract>
<title>Guidelines for Authors of XMPP Extension Protocols</title>
<abstract>This document provides information intended to assist authors of XMPP Extension Protocols.</abstract>
&LEGALNOTICE;
<number>0143</number>
<status>Active</status>
@ -15,7 +15,7 @@
<jig>Standards JIG</jig>
<approver>Council</approver>
<dependencies>
<spec>JEP-0001</spec>
<spec>XEP-0001</spec>
</dependencies>
<supersedes/>
<supersededby/>
@ -25,7 +25,7 @@
<version>1.0</version>
<date>2004-12-09</date>
<initials>psa</initials>
<remark><p>Per a vote of the Jabber Council, advanced status to Active.</p></remark>
<remark><p>Per a vote of the XMPP Council, advanced status to Active.</p></remark>
</revision>
<revision>
<version>0.4</version>
@ -43,81 +43,81 @@
<version>0.2</version>
<date>2004-09-16</date>
<initials>psa</initials>
<remark><p>Described JEP metadata elements.</p></remark>
<remark><p>Described document metadata elements.</p></remark>
</revision>
<revision>
<version>0.1</version>
<date>2004-09-15</date>
<initials>psa</initials>
<remark><p>Initial version (adapted from JEP template).</p></remark>
<remark><p>Initial version.</p></remark>
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>The &JSF; receives a significant number of proposals for defining extensions to the core XMPP protocols specified in &xmppcore;. However, it is not always clear to authors how to best structure a proposal in order for it to be accepted as a Jabber Enhancement Proposal (JEP) and then advance through the JSF's standards process. Therefore, this JEP provides guidelines that are intended to help authors write better JEPs.</p>
<p>These guidelines assume that the reader is familiar with the JEP series of documents and the processes for handling them within the JSF, as defined in &jep0001;.</p>
<p>The &JSF; receives a significant number of proposals for defining extensions to the core XMPP protocols specified in &xmppcore;. However, it is not always clear to authors how to best structure a proposal in order for it to be accepted as an XMPP Extension Protocol (XEP) and then advance through the JSF's standards process. Therefore, this document provides guidelines that are intended to help authors write better XMPP Extension Protocol specifications.</p>
<p>These guidelines assume that the reader is familiar with the XEP series of documents and the processes for handling them within the JSF, as defined in &xep0001;.</p>
</section1>
<section1 topic='Preparation' anchor='prep'>
<p>The prospective author is strongly encouraged to complete some research before submitting a proposal for consideration as a JEP. In particular, the author should do the following:</p>
<p>The prospective author is strongly encouraged to complete some research before submitting a proposal for consideration as an XMPP Extension Protocol. In particular, the author should do the following:</p>
<ul>
<li>Review the XMPP RFCs and experimental or approved JSF JEPs to determine if the proposed protocol extension is truly needed in order to fill a gap in existing Jabber/XMPP technologies and protocols.</li>
<li>Review rejected and deferred JEPs to determine if similar extensions have been proposed in the past but not approved by the &COUNCIL;.</li>
<li>Review the XMPP RFCs and experimental or approved XMPP Extension Protocols to determine if the proposed protocol extension is truly needed in order to fill a gap in existing Jabber/XMPP technologies and protocols.</li>
<li>Review rejected and deferred XMPP Extension Protocol specifications to determine if similar extensions have been proposed in the past but not approved by the &COUNCIL;.</li>
<li>Review protocols developed within other standards development organizations, such as the &IETF; and &W3C;, to determine if they might be more appropriate than a new XMPP extension.</li>
<li>Review discussions within the &SJIG; to determine if similar functionality has been discussed in the past or is currently under discussion.</li>
</ul>
<p>After completing this research, the prospective author may conclude that a new protocol extension is needed. If so, the author is strongly advised to do the following:</p>
<ol>
<li>Review JEP-0001 and the &jep0134;.</li>
<li>Review XEP-0001 and the &xep0134;.</li>
<li>Understand the <link url='#submit'>Submission Process</link>.</li>
<li>Become familiar with the <link url='#format'>JEP XML Format</link>.</li>
<li>Then and only then write a proposal that includes all of the appropriate <link url='#sections'>Sections of a JEP</link>.</li>
<li>Review the content to ensure that it conforms to the <link url='#styleguide'>JEP Styleguide</link>.</li>
<li>Become familiar with the <link url='#format'>XEP XML Format</link>.</li>
<li>Then and only then write a proposal that includes all of the appropriate <link url='#sections'>Sections of a XEP</link>.</li>
<li>Review the content to ensure that it conforms to the <link url='#styleguide'>XEP Styleguide</link>.</li>
</ol>
</section1>
<section1 topic='Submission Process' anchor='submit'>
<p>The process for submitting a JEP is straightforward:</p>
<p>The process for submitting a proposal for consideration as an XMPP Extension Protocol is straightforward:</p>
<ol>
<li>Contact the &EDITOR; so that he knows to expect your submission.</li>
<li>Write your proposal following the guidelines described herein.</li>
<li>Make sure you read, understand, and agree to the &JSFIPR; before you submit your proposal.</li>
<li>Send your XML file (or a URL for the file) to the JEP Editor.</li>
<li>Send your XML file (or a URL for the file) to the XMPP Extensions Editor.</li>
</ol>
</section1>
<section1 topic='JEP XML Format' anchor='format'>
<p>The JEP XML format is substantially similar to a reduced set of XHTML. This is intentional: it makes authoring JEPs easier. In fact, if you use the JEP template file with its associated XSLT stylesheet, you should be able to view your proposal in most modern web browsers (see below). The following subsections explain how to get started with JEP authoring and describe the XML format used for JEPs (see the jep.xsd or jep.dtd file for a formal description).</p>
<section2 topic='Working With JEP Files' anchor='format-work'>
<p>The best way to start working on your proposal is to retrieve all of the existing JEPs and associated stylesheets from source control. These files are stored using the CVS system, in a CVS module labelled 'jeps' at the jabberstudio.org CVS repository. Instructions for accessing these files are provided at &lt;<link url='http://www.jabberstudio.org/cvs.php'>http://www.jabberstudio.org/cvs.php</link>&gt;. The document structure is formally defined by both a DTD and an XML schema, but you do not need to understand the formal descriptions in order to author a JEP. In addition, a handy template file is included under the 'templates/' directory in the 'jeps' module, providing a quick starting point for JEP authoring.</p>
<p>To create your proposal, do a CVS checkout of the 'jeps' module, create a new directory (e.g., 'tmp/') for your JEP within the existing 'jeps/' directory, copy the template file from the 'template/' directory to your new directory, and start editing the file using either a basic text editor or a specialized XML editing application such as XML Spy or XMLmind.</p>
<p>Even if you use a basic text editor, you should be able to view your JEP in most modern web browsers as an XML file as long as you have jep.xsl and jep.dtd in the 'jeps/' directory (i.e., the parent of the directory for your specific JEP). Because of inconsistencies in browser XSLT implementations, certain formatting (e.g., table layouts and the numbering of tables, examples, and footnotes) may not be perfect. Don't panic; it will look fine in the HTML output produced by the JEP Editor. If your XML file doesn't render at all (i.e., it's just one big text blob), you are using the wrong browser. If you see only the bare outline generated by jep.xsl but none of your text, you have an error in your XML. You can check your XML syntax at xml.com <note>&lt;<link url="http://www.xml.com/pub/a/tools/ruwf/check.html">http://www.xml.com/pub/a/tools/ruwf/check.html</link>&gt;</note>.</p>
<p>To programatically convert your XML file into HTML, we recommend using Daniel Veillard's <link url='http://xmlsoft.org/XSLT/'>xsltproc</link> program, which will give you helpful error messages regarding XML syntax problems. However, the JEP Editor will do the final rendering of XML into HTML as well as posting of your HTML file to the JSF website, so you do not need to generate HTML files for submission to the JEP Editor (in fact, the JEP Editor requires that you submit your proposal in the JEP XML format, not HTML).</p>
<p>Finally, the jep.ent file contains convenient "external entities" that provide shortcuts for including references to JEPs, RFCs, and other common strings. Unfortunately, most browsers do not correctly process external entities, so you cannot include entities from jep.ent if you need to view your XML source file in a browser. However, the JEP Editor reserves the right to convert your markup to external entities, since it makes his life easier. Also, please do not add items to the jep.ent file; instead, ask the JEP Editor to add them for you.</p>
<section1 topic='XEP XML Format' anchor='format'>
<p>The XEP XML format is substantially similar to a reduced set of XHTML. This is intentional: it makes authoring XMPP Extension Protocol specifications easier. In fact, if you use the template file with its associated XSLT stylesheet, you should be able to view your proposal in most modern web browsers (see below). The following subsections explain how to get started with XEP authoring and describe the XML format used for XMPP Extension Protocols (see the xep.xsd or xep.dtd file for a formal description).</p>
<section2 topic='Working With XEP Files' anchor='format-work'>
<p>The best way to start working on your proposal is to retrieve all of the existing XMPP Extension Protocol specifications and associated stylesheets from source control. These files are stored using the CVS system, in a CVS module labelled 'xmpp' and subdirectory labelled 'extensions' at the jabberstudio.org CVS repository. Instructions for accessing these files are provided at &lt;<link url='http://www.jabberstudio.org/cvs.php'>http://www.jabberstudio.org/cvs.php</link>&gt;. The document structure is formally defined by both a DTD and an XML schema, but you do not need to understand the formal descriptions in order to author an XMPP Extension Protocol. In addition, a handy template file is included as the 'xep-template.xml' file in the 'extensions' directory, providing a quick starting point for XEP authoring.</p>
<p>To create your proposal, do a CVS checkout of the 'xmpp' module, change directories to the 'extensions/' directory, copy the template file (e.g., 'cp xep-template.xml xep-foo.xml'), and start editing the file using either a basic text editor or a specialized XML editing application such as XML Spy or XMLmind.</p>
<p>Even if you use a basic text editor, you should be able to view your document in most modern web browsers as an XML file as long as you have xep.xsl and xep.dtd in the 'extensions/' directory. Because of inconsistencies in browser XSLT implementations, certain formatting (e.g., table layouts and the numbering of tables, examples, and footnotes) may not be perfect. Don't panic; it will look fine in the HTML output produced by the XMPP Extensions Editor. If your XML file doesn't render at all (i.e., it's just one big text blob), you are using a bad browser. If you see only the bare outline generated by xep.xsl but none of your text, you have an error in your XML. You can check your XML syntax at xml.com <note>&lt;<link url="http://www.xml.com/pub/a/tools/ruwf/check.html">http://www.xml.com/pub/a/tools/ruwf/check.html</link>&gt;</note>.</p>
<p>To programatically convert your XML file into HTML, we recommend using Daniel Veillard's <link url='http://xmlsoft.org/XSLT/'>xsltproc</link> program, which will give you helpful error messages regarding XML syntax problems. However, the XMPP Extensions Editor will do the final rendering of XML into HTML as well as posting of your HTML file to www.xmpp.org, so you do not need to generate HTML files for submission to the XMPP Extensions Editor (in fact, the XMPP Extensions Editor requires that you submit your proposal in the XEP XML format, not HTML).</p>
<p>Finally, the jep.ent file contains convenient "external entities" that provide shortcuts for including references to XMPP Extension Protocols, RFCs, and other common strings. Unfortunately, most browsers do not correctly process external entities, so you cannot include entities from jep.ent if you need to view your XML source file in a browser. However, the XMPP Extensions Editor reserves the right to convert your markup to external entities, since it makes his life easier. Also, please do not add items to the jep.ent file; instead, ask the XMPP Extensions Editor to add them for you.</p>
</section2>
<section2 topic='File Metadata' anchor='format-metadata'>
<p>This section describes the metadata elements contained in the &lt;header/&gt; element of a JEP file (see below for the file contents).</p>
<p>The XML character data of the &lt;title/&gt; element is the title of your JEP. Choose a descriptive title that is less than five words long. The JEP Editor may change this in consultation with the author.</p>
<p>The XML character data of the &lt;abstract/&gt; element SHOULD be one sentence that captures the essence of your proposal (usually beginning "This JEP defines a protocol that..."). The JEP Editor has been known to modify the abstract so that it accurately describes the proposal.</p>
<p>This section describes the metadata elements contained in the &lt;header/&gt; element of a XEP file (see below for the file contents).</p>
<p>The XML character data of the &lt;title/&gt; element is the title of your XEP. Choose a descriptive title that is less than five words long. The XMPP Extensions Editor may change this in consultation with the author.</p>
<p>The XML character data of the &lt;abstract/&gt; element SHOULD be one sentence that captures the essence of your proposal (usually beginning "This document defines a protocol that..."). The XMPP Extensions Editor has been known to modify the abstract so that it accurately describes the proposal.</p>
<p>The XML character data of the &lt;legal/&gt; element MUST be as follows:</p>
<p class='indent'>This Jabber Enhancement Proposal is copyright 1999 - 2006 by the Jabber Software Foundation (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy (http://jabber.org/jsf/ipr-policy.php). 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 http://www.opencontent.org/openpub/).</p>
<p>The XML character data of the &lt;number/&gt; element SHOULD be "xxxx"; this will be changed to the next sequential JEP number by the JEP Editor if the Jabber Council accepts the proposal as a JEP.</p>
<p>The XML character data of the &lt;status/&gt; element SHOULD be "ProtoJEP" since all proposals start out as "proto-JEPs"; this will be changed to "Experimental" if the Jabber Council accepts the proposal as a JEP.</p>
<p>The XML character data of the &lt;type/&gt; element SHOULD be either "Standards Track" or "Informational" (there are also Historical, Humorous, and Procedural JEPs, but these are uncommon and usually written by the JEP Editor). A Standards Track JEP is basically any JEP that defines a protocol to be used in the Jabber community. An Informational JEP defines best practices or a usage profile related to an existing protocol (e.g., &jep0126;).</p>
<p class='indent'>This XMPP Extension Protocol is copyright 1999 - 2006 by the Jabber Software Foundation (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy (&lt;http://www.xmpp.org/extensions/ipr-policy.shtml&gt;). This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution License (&lt;http://creativecommons.org/licenses/by/2.5/&gt;).</p>
<p>The XML character data of the &lt;number/&gt; element SHOULD be "xxxx"; this will be changed to the next sequential XEP number by the XMPP Extensions Editor if the XMPP Council accepts the proposal as an XMPP Extensions Protocol.</p>
<p>The XML character data of the &lt;status/&gt; element SHOULD be "ProtoXEP" since all proposals start out as "proto-XEPs"; this will be changed to "Experimental" if the XMPP Council accepts the proposal as an XMPP Extensions Protocol.</p>
<p>The XML character data of the &lt;type/&gt; element SHOULD be either "Standards Track" or "Informational" (there are also Historical, Humorous, and Procedural XEPs, but these are uncommon and usually written by the XMPP Extensions Editor). A Standards Track XEP defines a XMPP extension intended to be used as a common part of Jabber/XMPP technologies. An Informational XEP defines best practices or a usage profile related to XMPP or an XMPP Extension Protocol (e.g., &xep0175;).</p>
<p>The XML character data of the &lt;approver/&gt; element SHOULD be "Council".</p>
<p>The &lt;dependencies/&gt; element is used to specify JEPs, RFCs, and other specifications on which your proposal depends in a normative fashion (i.e., specifications that MUST or SHOULD be understood in order to implement your proposed protocol). Each specification MUST be identified by a distinct &lt;spec/&gt; child element (see existing JEPs for clues regarding document identifiers, or consult with the JEP Editor).</p>
<p>The &lt;supersedes/&gt;, &lt;supersededby/&gt;, &lt;shortname/&gt;, and &lt;schemaloc/&gt; elements are for use by the JEP Editor; however, if your JEP supersedes an existing JEP, feel free to include a &lt;spec/&gt; child element specifying the document identifier (e.g., JEP-0093) for the protocol that is being superseded.</p>
<p>Include one &lt;author/&gt; element for each co-author. Note well that the &lt;firstname/&gt;, &lt;surname/&gt;, &lt;email/&gt;, and &lt;jid/&gt; elements are all REQUIRED per JEP-0001.</p>
<p>Include one &lt;revision/&gt; element for each revision of your JEP. The XML character data of the &lt;version/&gt; element SHOULD be "0.0.1" for your initial submission to the JEP Editor, and the &lt;remark/&gt; SHOULD be "Initial version."; for each revision, you will include another &lt;revision/&gt; element (place it before the existing &lt;revision/&gt; elements) and iterate the &lt;version/&gt; element (e.g., "0.2" after "0.1"). The format for the &lt;date/&gt; element is yyyy-mm-dd. Please do not include the characters &apos; or &quot; in your revision remarks.</p>
<p>The &lt;dependencies/&gt; element is used to specify RFCs, XMPP Extension Protocols, and other specifications on which your proposal depends in a normative fashion (i.e., specifications that MUST or SHOULD be understood in order to implement your proposed protocol). Each specification MUST be identified by a distinct &lt;spec/&gt; child element (see existing XEP specifications for clues regarding document identifiers, or consult with the XMPP Extensions Editor).</p>
<p>The &lt;supersedes/&gt;, &lt;supersededby/&gt;, &lt;shortname/&gt;, and &lt;schemaloc/&gt; elements are for use by the XMPP Extensions Editor; however, if your document supersedes an existing XMPP Extension Protocol, feel free to include a &lt;spec/&gt; child element specifying the document identifier (e.g., XEP-0093) for the protocol that is being superseded.</p>
<p>Include one &lt;author/&gt; element for each co-author. Note well that the &lt;firstname/&gt;, &lt;surname/&gt;, &lt;email/&gt;, and &lt;jid/&gt; elements are all REQUIRED per XEP-0001.</p>
<p>Include one &lt;revision/&gt; element for each revision of your document. The XML character data of the &lt;version/&gt; element SHOULD be "0.0.1" for your initial submission to the XMPP Extensions Editor, and the &lt;remark/&gt; SHOULD be "Initial version."; for each revision, you will include another &lt;revision/&gt; element (place it before the existing &lt;revision/&gt; elements) and iterate the &lt;version/&gt; element (e.g., "0.2" after "0.1"). The format for the &lt;date/&gt; element is yyyy-mm-dd. Please do not include the characters &apos; or &quot; in your revision remarks.</p>
</section2>
<section2 topic='File Contents' anchor='format-contents'>
<p>Aside from the metadata in the JEP &lt;header/&gt; element (see above), a JEP file is a series of sections, arranged in a hierarchy (&lt;section1/&gt; is a top-level section, within which you can nest &lt;section2/&gt; sections, and so on down to &lt;section4/&gt;). The title of a section is captured in the 'topic' attribute. You should also include an 'anchor' element so that you can link to page fragments from within your JEP. The allowable elements within a section element probably look familiar from XHTML: &lt;p/&gt; for paragraphs, &lt;ol/&gt; and &lt;ul/&gt; for ordered and unordered lists, and so on.</p>
<p>The &lt;example/&gt; and &lt;code/&gt; elements are used to show protocol snippets; the &lt;example/&gt; element SHOULD possess a 'caption' attribute that describes the example, whereas the &lt;code/&gt; element does not. Define an XML CDATA section within both of these elements so that you do not need to escape the '&lt;' and '&gt;' characters in your sample XML stanzas, since this makes life much easier for author and editor alike (see the markup in existing JEPs).</p>
<p>Aside from the metadata in the &lt;header/&gt; element (see above), a XEP file is a series of sections, arranged in a hierarchy (&lt;section1/&gt; is a top-level section, within which you can nest &lt;section2/&gt; sections, and so on down to &lt;section4/&gt;). The title of a section is captured in the 'topic' attribute. You should also include an 'anchor' element so that you can link to page fragments from within your document. The allowable elements within a section element probably look familiar from XHTML: &lt;p/&gt; for paragraphs, &lt;ol/&gt; and &lt;ul/&gt; for ordered and unordered lists, and so on.</p>
<p>The &lt;example/&gt; and &lt;code/&gt; elements are used to show protocol snippets; the &lt;example/&gt; element SHOULD possess a 'caption' attribute that describes the example, whereas the &lt;code/&gt; element does not. Define an XML CDATA section within both of these elements so that you do not need to escape the '&lt;' and '&gt;' characters in your sample XML stanzas, since this makes life much easier for author and editor alike (see the markup in existing XEP specifications).</p>
<p>The &lt;p/&gt; and &lt;li/&gt; elements can also contain more markup that is familiar from XHTML, such as the &lt;img/&gt; element. Note that hyperlinks are of the form &lt;link url='foo'&gt;bar&lt;/link&gt; rather than &lt;a href='foo'&gt;bar&lt;/a&gt;; the reasons for this are lost in the mists of time and it is too late to change it now, so you'll just have to adjust. If needed, you can also use inline structural and presentational markup such as &lt;em/&gt;, &lt;strong/&gt;, &lt;tt/&gt;, &lt;cite/&gt;, and &lt;span/&gt; within the &lt;p/&gt; and &lt;li/&gt; elements. </p>
<p>You may also include tables (these are helpful for listing error codes and such). The &lt;table/&gt; element SHOULD possess a 'caption' attribute that describes the table's contents. Standard XHTML table structure applies (&lt;tr/&gt; defines a row, which contains &lt;th/&gt; elements for header rows and &lt;td/&gt; elements for data rows), and the 'colspan' and 'rowspan' attributes are also available if you need them. Table presentation (such as cellpadding and cellspacing) is handled by the XSLT and CSS stylesheets.</p>
<p>In fact, the jep.xsl file performs all sorts of magic in converting your XML file into HTML, including creation of the front matter, table of contents, section numbering, notes, and revision history. Feel free to submit patches for this file, but do not commit your modified version to CVS.</p>
</section2>
</section1>
<section1 topic='The Sections of a JEP' anchor='sections'>
<p>Most JEPs will have most of the following sections, usually in something like the order shown. Other sections may be appropriate (e.g., &jep0071; has a section for W3C Considerations). Use your best judgment regarding the sections you need in order to make your argument, or consult with the JEP Editor regarding your needs.</p>
<section1 topic='The Sections of a XEP Document' anchor='sections'>
<p>Most XEP specifications will have most of the following sections, usually in something like the order shown. Other sections may be appropriate (e.g., &xep0071; has a section for W3C Considerations). Use your best judgment regarding the sections you need in order to make your argument, or consult with the XMPP Extensions Editor regarding your needs.</p>
<section2 topic='Introduction' anchor='sections-intro'>
<p>The introduction to a JEP is quite important since it provides the rationale for considering the proposal. In particular, the introduction SHOULD include information such as the following:</p>
<p>The introduction to a XEP document is quite important since it provides the rationale for considering the proposal. In particular, the introduction SHOULD include information such as the following:</p>
<ol>
<li>Tasks that users currently cannot complete because we are lacking the protocol you propose. (Note: Users are not just IM users, but any person, system, or application that could gain value from interacting with other entities over Jabber/XMPP networks.)</li>
<li>Other projects or protocols and how Jabber/XMPP technologies could interface with them because of your proposed protocol (e.g., XML-RPC, SOAP).</li>
@ -127,20 +127,20 @@
</ol>
</section2>
<section2 topic='Requirements' anchor='sections-reqs'>
<p>Every JEP SHOULD include a section describing the requirements being addressed by the JEP. This information is critically important, because it clearly defines the scope of the proposal as well as any relevant constraints on the protocol design.</p>
<p>Every XEP document SHOULD include a section describing the requirements being addressed by the document. This information is critically important, because it clearly defines the scope of the proposal as well as any relevant constraints on the protocol design.</p>
</section2>
<section2 topic='Glossary' anchor='sections-glossary'>
<p>If your JEP uses terms that may not be familiar to the reader, please define them in a glossary.</p>
<p>If your XEP document uses terms that may not be familiar to the reader, please define them in a glossary.</p>
</section2>
<section2 topic='Use Cases' anchor='sections-usecases'>
<p>It is recommended that JEP authors structure their proposals according to the use cases that the proposal will address. <note>A good introduction to use cases may be found at &lt;<link url="http://www.pols.co.uk/usecasezone/">http://www.pols.co.uk/usecasezone/</link>&gt;.</note> We have found that use cases force JEP authors to focus on functionality rather than "protocol for the sake of protocol". It is also helpful to sort use cases by actor, as is done in &jep0045;, for example. Include one subsection for each use case.</p>
<p>It is recommended that document authors structure their proposals according to the use cases that the proposal will address. <note>A good introduction to use cases may be found at &lt;<link url="http://www.pols.co.uk/usecasezone/">http://www.pols.co.uk/usecasezone/</link>&gt;.</note> We have found that use cases force authors to focus on functionality rather than "protocol for the sake of protocol". It is also helpful to sort use cases by actor, as is done in &xep0045;, for example. Include one subsection for each use case.</p>
<p>When writing use cases and the associated protocols, make sure to:</p>
<ul>
<li>Clearly define the success scenarios, alternate flows, and possible errors.</li>
<li>Describe the expected behavior of Jabber clients, servers, and components when using this protocol.</li>
<li>Describe the expected behavior of Jabber/XMPP clients, servers, and components when using this protocol.</li>
<li>Include lots of protocol examples.</li>
</ul>
<p>We just said so, but we will repeat ourselves: include lots of protocol examples. Examples help not only implementors but also those who will review your proposal in the Standards JIG and Jabber Council. You get extra credit with the JEP Editor if you follow Jabber tradition by using characters and situations from the plays of Shakespeare:</p>
<p>We just said so, but we will repeat ourselves: include lots of protocol examples. Examples help not only implementors but also those who will review your proposal in the Standards JIG and XMPP Council. You get extra credit with the XMPP Extensions Editor if you follow Jabber tradition by using characters and situations from the plays of Shakespeare:</p>
<example caption='An Example from Shakespeare'><![CDATA[
<message
from='juliet@capulet.com/balcony'
@ -151,7 +151,7 @@
]]></example>
</section2>
<section2 topic='Error Codes' anchor='sections-errors'>
<p>If your proposal defines a number of error and status codes (as is done in JEP-0045), it is a good idea to include a table of all the codes defined in your document.</p>
<p>If your proposal defines a number of error and status codes (as is done in XEP-0045), it is a good idea to include a table of all the codes defined in your document.</p>
</section2>
<section2 topic='Business Rules' anchor='sections-bizrules'>
<p>You may want to include a section describing various business rules (essentially, a variety of MUSTs, SHOULDs, and MAYs regarding application behavior). This is not required but can be helpful to implementors.</p>
@ -166,22 +166,22 @@
<p>Your proposal MUST include a section entitled "Security Considerations". Even if there are no security features or concerns related to your proposal, you MUST note that fact. For helpful guidelines, refer to &rfc3552;.</p>
</section2>
<section2 topic='IANA Considerations' anchor='sections-iana'>
<p>This section is REQUIRED. The IANA is the Internet Assigned Numbers Authority, the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. Most proposals do not require interaction with the IANA, in which case the text of this section SHOULD read "This JEP requires no interaction with the Internet Assigned Numbers Authority (IANA)." If your proposal requires interaction with the IANA, discuss the matter with the JEP Editor. Do not contact the IANA on your own!</p>
<p>This section is REQUIRED. The IANA is the Internet Assigned Numbers Authority, the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. Most proposals do not require interaction with the IANA, in which case the text of this section SHOULD read "This document requires no interaction with the Internet Assigned Numbers Authority (IANA)." If your proposal requires interaction with the IANA, discuss the matter with the XMPP Extensions Editor. Do not contact the IANA on your own!</p>
</section2>
<section2 topic='Jabber Registrar Considerations' anchor='sections-registrar'>
<p>This section is REQUIRED. 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. If your proposal does not require interaction with the Jabber Registrar, the text of this section SHOULD read "No namespaces or parameters need to be registered with the Jabber Registrar as a result of this JEP." Refer to Draft or Final JEPs for appropriate text in other cases, or consult with the JEP Editor.</p>
<section2 topic='XMPP Registrar Considerations' anchor='sections-registrar'>
<p>This section is REQUIRED. The XMPP 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. If your proposal does not require interaction with the XMPP Registrar, the text of this section SHOULD read "No namespaces or parameters need to be registered with the XMPP Registrar as a result of this document." Refer to Draft or Final XEPs for appropriate text in other cases, or consult with the XMPP Extensions Editor.</p>
</section2>
<section2 topic='XML Schema' anchor='sections-schema'>
<p>An XML Schema is required in order for a protocol JEP to be approved by the Jabber Council. The JEP Editor can assist you in defining an XML Schema for the protocol you are proposing.</p>
<p>An XML Schema is required in order for protocols to be approved by the XMPP Council. The XMPP Extensions Editor can assist you in defining an XML Schema for the protocol you are proposing.</p>
</section2>
<section2 topic='Acknowledgements' anchor='sections-ack'>
<p>Some JEPs end with a section thanking non-authors who have made significant contributions to the specification; if that is true of your JEP, feel free to include this section.</p>
<p>Some XEP documents end with a section thanking non-authors who have made significant contributions to the specification; if that is true of your document, feel free to include this section.</p>
</section2>
</section1>
<section1 topic='JEP Styleguide' anchor='styleguide'>
<p><em>Note: JEP authors can consider this section as a kind of "Implementation Notes". :-)</em></p>
<p>JEPs are written in English. It is not expected that you will be a fine prose writer, but try to write in a clear, easily-understood fashion. The JEP Editor will correct any errors of grammar, spelling <note>With all due respect to authors in other parts of the world, JEPs follow American spelling conventions; thus "authorisation" will be changed to "authorization" and such.</note>, punctuation, and usage he may find in your proposal, but may not do so until your proposal is in the Jabber Council's queue for consideration. In addition, the JEP Editor reserves the right to improve phrases that are unclear or infelicitous, move sections around, modify examples to use Shakespearean characters, and otherwise improve the argument and logical flow of your proposal (naturally, without changing the meaning).</p>
<p>The following styleguide is provided to supplement the standard English styleguides, such as <cite>The Elements of Style</cite> <note>See &lt;<link url='http://en.wikipedia.org/wiki/The_Elements_of_Style'>http://en.wikipedia.org/wiki/The_Elements_of_Style</link>&gt;.</note> and <cite>The Chicago Manual of Style</cite> <note>See &lt;<link url='http://en.wikipedia.org/wiki/The_Chicago_Manual_of_Style'>http://en.wikipedia.org/wiki/The_Chicago_Manual_of_Style</link>&gt;.</note>; please refer to those resources for information about common English (especially American English) usage and to this styleguide for JEP-specific guidelines.</p>
<section1 topic='XEP Styleguide' anchor='styleguide'>
<p><em>Note: Authors of XMPP Extension Protocol specifications can consider this section as a kind of "Implementation Notes". :-)</em></p>
<p>XMPP Extension Protocols are written in English. It is not expected that you will be a fine prose writer, but try to write in a clear, easily-understood fashion. The XMPP Extensions Editor will correct any errors of grammar, spelling <note>With all due respect to authors in other parts of the world, XMPP Extension Protocols follow American spelling conventions; thus "authorisation" will be changed to "authorization" and such.</note>, punctuation, and usage he may find in your proposal, but may not do so until your proposal is in the XMPP Council's queue for consideration. In addition, the XMPP Extensions Editor reserves the right to improve phrases that are unclear or infelicitous, move sections around, modify examples to use Shakespearean characters, and otherwise improve the argument and logical flow of your proposal (naturally, without changing the meaning).</p>
<p>The following styleguide is provided to supplement the standard English styleguides, such as <cite>The Elements of Style</cite> <note>See &lt;<link url='http://en.wikipedia.org/wiki/The_Elements_of_Style'>http://en.wikipedia.org/wiki/The_Elements_of_Style</link>&gt;.</note> and <cite>The Chicago Manual of Style</cite> <note>See &lt;<link url='http://en.wikipedia.org/wiki/The_Chicago_Manual_of_Style'>http://en.wikipedia.org/wiki/The_Chicago_Manual_of_Style</link>&gt;.</note>; please refer to those resources for information about common English (especially American English) usage and to this styleguide for XEP-specific guidelines.</p>
<section2 topic='Attributes' anchor='style-attr'>
<p>When talking about an attribute by name, refer to it in single quotes. Example: the 'to' attribute.</p>
<p>When talking about the value of an attribute, refer to it in double quotes. Example: the value of the 'subscription' attribute is "both".</p>
@ -238,7 +238,7 @@
<p>An element or attribute is <em>qualified by</em> (rather than "scoped by" or "in") a particular namespace.</p>
</section2>
<section2 topic='Quotes' anchor='style-quot'>
<p>For precision, the JSF follows IETF usage by placing all punctuation outside the quotation marks unless one is quoting text that includes the punctuation. Example: the port used for Jabber client communications is "5222".</p>
<p>For precision, the JSF follows IETF usage by placing all punctuation outside the quotation marks unless one is quoting text that includes the punctuation. Example: the port used for client communications is "5222".</p>
</section2>
</section1>
</jep>
</xep>

View File

@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>JEP Editor README</title>
<abstract>This document describes work processes followed by the JEP Editor.</abstract>
<title>XMPP Extensions Editor README</title>
<abstract>This document describes work processes followed by the XMPP Extensions Editor.</abstract>
&LEGALNOTICE;
<number>README</number>
<status>Experimental</status>
@ -15,29 +15,24 @@
<jig>N/A</jig>
<approver>N/A</approver>
<dependencies>
<spec>JEP-0001</spec>
<spec>JEP-0053</spec>
<spec>XEP-0001</spec>
<spec>XEP-0053</spec>
</dependencies>
<supersedes/>
<supersededby/>
<shortname>N/A</shortname>
<author>
<firstname>Peter</firstname>
<surname>Saint-Andre</surname>
<email>stpeter@jabber.org</email>
<jid>stpeter@jabber.org</jid>
</author>
&stpeter;
<revision>
<version>0.5</version>
<date>2005-05-26</date>
<initials>psa</initials>
<remark>Adjusted to reflect ProtoJEP status.</remark>
<remark>Adjusted to reflect ProtoXEP status.</remark>
</revision>
<revision>
<version>0.4</version>
<date>2005-03-16</date>
<initials>psa</initials>
<remark>Converted to JEP format; adjusted to reflect server move.</remark>
<remark>Converted to XEP format; adjusted to reflect server move.</remark>
</revision>
<revision>
<version>0.3</version>
@ -49,7 +44,7 @@
<version>0.2</version>
<date>2004-10-11</date>
<initials>psa</initials>
<remark>Defined Jabber Registrar processes.</remark>
<remark>Defined XMPP Registrar processes.</remark>
</revision>
<revision>
<version>0.1</version>
@ -62,69 +57,69 @@
<section1 topic='Overview' anchor='overview'>
<p>Since the inception of the &JSF;, the &EDITOR; has been Peter Saint-Andre. However, if he gets hit by a bus or is replaced by someone else, this document may prove useful.</p>
<p>The JEP Editor manages the JEP process as defined in &jep0001;. In addition, the JEP Editor functions as the Jabber Registrar as defined in &jep0053;. Read those documents first, since this README focuses on mechanics rather than philosophy.</p>
<p>The XMPP Extensions Editor manages the XMPP extensions process as defined in &xep0001;. In addition, the XMPP Extensions Editor functions as the XMPP Registrar as defined in &xep0053;. Read those documents first, since this README focuses on mechanics rather than philosophy.</p>
</section1>
<section1 topic='JEP Processes' anchor='edprocesses'>
<section1 topic='Processes' anchor='edprocesses'>
<p>There are several JEP-related functions performed by the JEP Editor:</p>
<p>There are several XEP-related functions performed by the XMPP Extensions Editor:</p>
<ol>
<li>Accepting a JEP</li>
<li>Updating a JEP</li>
<li>Deferring a JEP</li>
<li>Retracting a JEP</li>
<li>Accepting a XEP</li>
<li>Updating a XEP</li>
<li>Deferring a XEP</li>
<li>Retracting a XEP</li>
<li>Issuing a Last Call</li>
<li>Counting Council Votes</li>
<li>Advancing a JEP</li>
<li>Advancing a XEP</li>
</ol>
<p>These functions are specified below.</p>
<section2 topic='Accepting a JEP' anchor='accepting'>
<section2 topic='Accepting a XEP' anchor='accepting'>
<p>Periodically, people send mail to editor@jabber.org with new proposals. Here is how to process such submissions.</p>
<ol>
<li>Receive proposal from author.</li>
<li>Give it a descriptive filename that does <em>not</em> include the string 'jep' or a JEP number.</li>
<li>Give it a descriptive filename that does <em>not</em> include the string 'xep' or a XEP number.</li>
<li>Set the version to 0.0.1 if no version found.</li>
<li>Set the status to ProtoJEP.</li>
<li>Set the status to ProtoXEP.</li>
<li>Convert XML to HTML and check the results for accuracy.</li>
<li>Place HTML at http://www.jabber.org/jeps/inbox/ (/var/www/jabber.org/jeps/inbox/)</li>
<li>Place XML in the editor's working CVS directory on webserver (e.g., ~/cvs/jeps/inbox/docname.xml) </li>
<li>Send a note to the Standards-JIG list by running the "protojep.py" script.</li>
<li>Wait until the Council decides whether to accept the proposal as a JEP (this may involve poking the Council Chair).</li>
<li>Place HTML at http://www.xmpp.org/extensions/inbox/ (/var/www/xmpp.org/extensions/inbox/)</li>
<li>Place XML in the editor's working CVS directory on webserver (e.g., ~/cvs/xmpp/extensions/inbox/docname.xml) </li>
<li>Send a note to the Standards-JIG list by running the "protoxep.py" script.</li>
<li>Wait until the Council decides whether to accept the proposal as a XEP (this may involve poking the Council Chair).</li>
<li>If rejected, retain in the "inbox".</li>
<li>
<p>If accepted, do the following:</p>
<ol>
<li>Assign the JEP the next available number in the JEP series.</li>
<li>Assign the XEP the next available number in the XEP series.</li>
<li>Modify the &lt;number/&gt; element in the XML file.</li>
<li>Set the version to 0.1.</li>
<li>Set the status to Experimental.</li>
<li>Check the file for egregious errors.</li>
<li>Add the directory and XML file to the "jeps" CVS module.</li>
<li>Add a reference for the new JEP in the jep.ent file.</li>
<li>Add the directory and XML file to the "xmpp/extensions" CVS module.</li>
<li>Add a reference for the new XEP in the xep.ent file.</li>
<li>Update CVS on the server.</li>
<li>Run the "gen.sh" script.</li>
<li>Run the "announce.py" script (see below), which updates the database and sends a message to the Standards-JIG list.</li>
<li>Redirect the "inbox" file to the new JEP URL.</li>
<li>Redirect the "inbox" file to the new XEP URL.</li>
</ol>
</li>
</ol>
</section2>
<section2 topic='Updating a JEP' anchor='updating'>
<p>Once a JEP has been published, it will be periodically updated in CVS, and sometimes those changes are significant enough to warrant a new version (e.g., version 0.2 after 0.1). Often a request to release a new version will come from the JEP author, sometimes from the Council (e.g., after the JEP has reached version 1.0 or version 2.0). Here is how to update JEPs.</p>
<section2 topic='Updating a XEP' anchor='updating'>
<p>Once a XEP has been published, it will be periodically updated in CVS, and sometimes those changes are significant enough to warrant a new version (e.g., version 0.2 after 0.1). Often a request to release a new version will come from the document author, sometimes from the Council (e.g., after the XEP has reached version 1.0 or version 2.0). Here is how to update a XEP.</p>
<ol>
<li>Compile the file locally and check the content for accuracy (including the correct date and version number).</li>
<li>Check your changes into CVS.</li>
<li>Update CVS on the server.</li>
<li>Run the "archive.sh" script to put the previous JEP version in the "attic".</li>
<li>Run the "archive.sh" script to put the previous XEP version in the "attic".</li>
<li>Run the "gen.sh" script.</li>
<li>Run the "announce.py" script.</li>
</ol>
</section2>
<section2 topic='Deferring a JEP' anchor='deferring'>
<p>The status of a JEP shall be automatically changed to Deferred if a new version has not been released in 6 months, except if the JEP is actively in the Council queue for consideration of issuance of a Last Call. Here is the process.</p>
<section2 topic='Deferring a XEP' anchor='deferring'>
<p>The status of a XEP shall be automatically changed to Deferred if a new version has not been released in 6 months, except if the XEP is actively in the Council queue for consideration of issuance of a Last Call. Here is the process.</p>
<ol>
<li>Change the &lt;status/&gt; element to "Deferred" in the XML file.</li>
<li>Check your changes into CVS (note: do not modify the version number!).</li>
@ -134,12 +129,12 @@
</ol>
</section2>
<section2 topic='Retracting a JEP' anchor='retracting'>
<p>Sometimes an author retracts a JEP because it is no longer worthy of consideration. Here is the process.</p>
<section2 topic='Retracting a XEP' anchor='retracting'>
<p>Sometimes an author retracts a XEP because it is no longer worthy of consideration. Here is the process.</p>
<ol>
<li>Change the &lt;status/&gt; element to "Retracted" in the XML file.</li>
<li>Modify the &lt;abstract/&gt; element with appropriate content (see existing Retracted JEPs).</li>
<li>Add a new revision block with an incremented version number, explaining that the JEP has been Retracted and why (see existing Retracted JEPs).</li>
<li>Modify the &lt;abstract/&gt; element with appropriate content (see existing Retracted XEPs).</li>
<li>Add a new revision block with an incremented version number, explaining that the XEP has been Retracted and why (see existing Retracted XEPs).</li>
<li>Check your changes into CVS.</li>
<li>Update CVS on the server.</li>
<li>Run the "gen.sh" script.</li>
@ -148,7 +143,7 @@
</section2>
<section2 topic='Issuing a Last Call' anchor='lastcall'>
<p>The Jabber Council determines whether and when to issue a Last Call on an Experimental JEP. Here is the process.</p>
<p>The XMPP Council determines whether and when to issue a Last Call on an Experimental XEP. Here is the process.</p>
<ol>
<li>Receive notice from the Council Chair that a Last Call shall be issued.</li>
<li>Determine the ending date, which must be at least 10 days in the future and usually is 2 weeks (sometimes 3 weeks if much discussion is expected).</li>
@ -156,74 +151,72 @@
<li>Check your changes into CVS.</li>
<li>Update CVS on the server.</li>
<li>Run the "lastcall.py" script, which updates the database and sends a message to the Standards-JIG list.</li>
<li>Review the Jabber Registrar Considerations section to ensure accuracy.</li>
<li>Review the XMPP Registrar Considerations section to ensure accuracy.</li>
</ol>
</section2>
<section2 topic='Counting Council Votes' anchor='councilvotes'>
<p>The JEP Editor is responsible for counting the votes of Council members. The process is as follows.</p>
<p>The XMPP Extensions Editor is responsible for counting the votes of Council members. The process is as follows.</p>
<ol>
<li>Inform the Council of the vote (see examples in the council@jabber.org archives).</li>
<li>Monitor the Council list and Council meetings for votes.</li>
<li>Update the votes XML file contained in the "council" CVS module.</li>
<li>Check your changes into CVS.</li>
<li>Update CVS on the server.</li>
<li>Run the "gen.sh" script in the "council" module (don't confuse this with the JEP gen.sh script).</li>
<li>When all Council members have voted, update the JEP accordingly (see below on Advancing a JEP).</li>
<li>Run the "gen.sh" script in the "council" module (don't confuse this with the XEP gen.sh script).</li>
<li>When all Council members have voted, update the XEP accordingly (see below on Advancing a XEP).</li>
</ol>
</section2>
<section2 topic='Advancing a JEP' anchor='advancing'>
<p>When the Council approves a JEP, it advances to either Draft (Standards Track JEPs) or Active (other JEP types). Here is the process.</p>
<section2 topic='Advancing a XEP' anchor='advancing'>
<p>When the Council approves a XEP, it advances to either Draft (Standards Track XEPs) or Active (other XEP types). Here is the process.</p>
<ol>
<li>Change the &lt;status/&gt; element to "Active" or "Draft" as appropriate.</li>
<li>Add a new revision block with a version number of "1.0" (see existing JEPs for appropriate remarks).</li>
<li>If there are any XML schemas associated with the JEP, do the following:
<li>Add a new revision block with a version number of "1.0" (see existing XEPs for appropriate remarks).</li>
<li>If there are any XML schemas associated with the XEP, do the following:
<ol>
<li>Add an annotation to each schema (see existing examples).</li>
<li>In the directory for this JEP, create one .xsd file for each schema.</li>
<li>For each schema, add a &lt;schemaloc/&gt; element to the JEP file.</li>
<li>Create a /var/www/jabber.org/protocol/shortname/ directory on the server (replace "shortname" with the short name of the JEP).</li>
<li>In the 'schemas/' directory, create one .xsd file for each schema.</li>
<li>For each schema, add a &lt;schemaloc/&gt; element to the XEP file.</li>
<li>Update the "schemagen.sh" script.</li>
</ol>
</li>
<li>Add the protocol namespace (if any) to the protocol namespaces registry and complete any other Jabber Registrar actions called for in the JEP (see below).</li>
<li>Add the protocol namespace (if any) to the protocol namespaces registry and complete any other XMPP Registrar actions called for in the XEP (see below).</li>
<li>Check your changes into CVS.</li>
<li>Update CVS on the server.</li>
<li>Run the "archive.sh" script to put the previous JEP version in the "attic".</li>
<li>Run the "archive.sh" script to put the previous XEP version in the "attic".</li>
<li>Run the "schemagen.sh" script if appropriate.</li>
<li>Run the "gen.sh" script.</li>
<li>Run the "announce.py" script.</li>
<li>Add a link to JEP from the appropriate section of the http://www.jabber.org/protocol/ page.</li>
</ol>
</section2>
</section1>
<section1 topic='Jabber Registrar Processes' anchor='regprocesses'>
<section1 topic='XMPP Registrar Processes' anchor='regprocesses'>
<section2 topic='Advancing a JEP' anchor='reg-advance'>
<p>Registry files are contained in the "registry" CVS module. In general, there are several files that may need to be updated when a JEP advances to Active or Draft. In particular, most JEPs specify one or more protocol namespaces, which need to be added to the namespaces.xml file in the "registry" module. Refer to the list of registries at http://www.jabber.org/registrar/ in order to determine which other registries may need to be updated. The reg.ent file will probably need to be updated as well. Once the Registrar actions have been completed, update the text of the JEP's Jabber Registrar Considerations section accordingly (e.g., to change "shall include" to "includes").</p>
<section2 topic='Advancing a XEP' anchor='reg-advance'>
<p>Registry files are contained in the "registry" CVS module. In general, there are several files that may need to be updated when a XEP advances to Active or Draft. In particular, most XEPs specify one or more protocol namespaces, which need to be added to the namespaces.xml file in the "registry" module. Refer to the list of registries at http://www.xmpp.org/registrar/ in order to determine which other registries may need to be updated. The reg.ent file will probably need to be updated as well. Once the Registrar actions have been completed, update the text of the XEP's XMPP Registrar Considerations section accordingly (e.g., to change "shall include" to "includes").</p>
</section2>
<section2 topic='Creating a New Registry' anchor='reg-newreg'>
<p>A JEP may call for one or more new registries to be created. If so, carefully review the Jabber Registrar Considerations section of the JEP before it advances to Draft or Active in order to provide appropriate feedback to the JEP author. (Alternatively, make the changes directly in the JEP file in consultation with the author.)</p>
<p>When creating a new registry, it is best to copy the DTD, XML, and XSL files for an existing registry, then modify them in accordance with the definition of the new registry in the relevant JEP. The gen.sh script will need to be updated to reflect the existence of the new registry, as will the index file for the http://www.jabber.org/registrar/ web page.</p>
<p>Check all your changes into CVS, update your CVS directory on the web server, and run the gen.sh script to update the Jabber Registrar web pages.</p>
<p>A XEP may call for one or more new registries to be created. If so, carefully review the XMPP Registrar Considerations section of the XEP before it advances to Draft or Active in order to provide appropriate feedback to the XEP author. (Alternatively, make the changes directly in the XEP file in consultation with the author.)</p>
<p>When creating a new registry, it is best to copy the DTD, XML, and XSL files for an existing registry, then modify them in accordance with the definition of the new registry in the relevant XEP. The gen.sh script will need to be updated to reflect the existence of the new registry, as will the index file for the http://www.xmpp.org/registrar/ web page.</p>
<p>Check all your changes into CVS, update your CVS directory on the web server, and run the gen.sh script to update the XMPP Registrar web pages.</p>
</section2>
</section1>
<section1 topic='Tools' anchor='tools'>
<section2 topic='XML Processing' anchor='tools-xml'>
<p>In order to convert XML files into HTML and other formats, the JEP Editor currently uses the xsltproc tool, which is part of libxml2 (created by Daniel Veillard). This tool is extremely handy and it is recommended that use of xsltproc be continued, especially since the shell scripts (described below) make calls to xsltproc.</p>
<p>In order to convert XML files into HTML and other formats, the XMPP Extensions Editor currently uses the xsltproc tool, which is part of libxml2 (created by Daniel Veillard). This tool is extremely handy and it is recommended that use of xsltproc be continued, especially since the shell scripts (described below) make calls to xsltproc.</p>
</section2>
<section2 topic='XSL Transformations' anchor='tools-xsl'>
<p>Most the "magic" behind creating the HTML-formatted JEPs, as well as the IETF-style reference files, is perfomed by XSL stylesheets. The main file here is jep.xsl, although ref.xsl is used to create the reference files. A future version of this README may explain these files in more depth.</p>
<p>Most the "magic" behind creating the HTML-formatted XEPs, as well as the IETF-style reference files, is perfomed by XSL stylesheets. The main file here is xep.xsl, although ref.xsl is used to create the reference files. A future version of this README may explain these files in more depth.</p>
</section2>
<section2 topic='Entity References' anchor='tools-refs'>
<p>The jep.ent file contains handy references that can be incorporated into any JEP XML document, thus providing a centralized location for various document references. The JEP Editor must keep this file up to date (e.g., by adding all new JEPs to it), and should be the only person who makes changes to the file.</p>
<p>The xep.ent file contains handy references that can be incorporated into any XEP XML document, thus providing a centralized location for various document references. The XMPP Extensions Editor must keep this file up to date (e.g., by adding all new XEPs to it), and should be the only person who makes changes to the file.</p>
</section2>
<section2 topic='Python Scripts' anchor='tools-python'>
@ -231,19 +224,19 @@
<ol>
<li>
<p>announce.py</p>
<p>This script announces a new version of a JEP by updating the database and sending a message to standards-jig@jabber.org.</p>
<p>This script announces a new version of a XEP by updating the database and sending a message to standards-jig@jabber.org.</p>
</li>
<li>
<p>deferrred.py</p>
<p>This script updates the database and sends a message to standards-jig@jabber.org when the status of a JEP is changed to Deferred. Before running this script, make sure that you modify the &lt;status/&gt; element in the JEP itself and run the gen.sh shell script.</p>
<p>This script updates the database and sends a message to standards-jig@jabber.org when the status of a XEP is changed to Deferred. Before running this script, make sure that you modify the &lt;status/&gt; element in the XEP itself and run the gen.sh shell script.</p>
</li>
<li>
<p>lastcall.py</p>
<p>This script announces a Last Call for a JEP by updating the database and sending a message to standards-jig@jabber.org.</p>
<p>This script announces a Last Call for a XEP by updating the database and sending a message to standards-jig@jabber.org.</p>
</li>
<li>
<p>protojep.py</p>
<p>This script announces availability of a new "proto-JEP" (i.e., a document not yet accepted as a JEP by the Jabber Council) by sending a message to standards-jig@jabber.org. Before running this script, place the new proto-JEP so that it is available at http://www.jabber.org/jeps/inbox/ (normally this is done by running 'xsltproc inbox/docname.xml > /var/www/jabber.org/jeps/inbox/docname.html' from the editor's working CVS directory on the web server).</p>
<p>protoxep.py</p>
<p>This script announces availability of a new "proto-XEP" (i.e., a document not yet accepted as a XEP by the XMPP Council) by sending a message to standards-jig@jabber.org. Before running this script, place the new proto-XEP so that it is available at http://www.xmpp.org/extensions/inbox/ (normally this is done by running 'xsltproc inbox/docname.xml > /var/www/xmpp.org/extensions/inbox/docname.html' from the editor's working CVS directory on the web server).</p>
</li>
</ol>
@ -253,22 +246,22 @@
<ol>
<li>
<p>all.sh</p>
<p>This script converts all JEP XML files into HTML. Use this if the jep.xsl file changes in ways that affect all JEPs. But make sure that CVS is synced up first -- you don't want to be publishing interim versions of JEPs!</p>
<p>This script converts all XEP XML files into HTML. Use this if the xep.xsl file changes in ways that affect all XEPs. But make sure that CVS is synced up first -- you don't want to be publishing interim versions of XEPs!</p>
</li>
<li>
<p>archive.sh</p>
<p>This script archives the version of a JEP currently on the website. Run this script before publishing a new version!</p>
<p>This script archives the version of a XEP currently on the website. Run this script before publishing a new version!</p>
</li>
<li>
<p>gen.sh</p>
<p>This script converts one JEP XML file into HTML. Run this script before announcing a new version. This script can also be used for minor edits to the current version.</p>
<p>This script converts one XEP XML file into HTML. Run this script before announcing a new version. This script can also be used for minor edits to the current version.</p>
</li>
<li>
<p>schemagen.sh</p>
<p>This script updates all of the XML schemas located at http://www.jabber.org/protocol/ (more accurately, the subdirectories there). Update this file every time a protocol JEP with an associated schema advances to Active or Draft.</p>
<p>This script updates all of the XML schemas located at &lt;http://www.xmpp.org/schemas/&gt;. Update this file every time a protocol XEP with an associated schema advances to Active or Draft.</p>
</li>
</ol>
</section2>
</section1>
</jep>
</xep>

View File

@ -1,22 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>JEP Template</title>
<abstract>An example of the format for Jabber Enhancement Proposals.</abstract>
<legal>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 (http://jabber.org/jsf/ipr-policy.php). 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 http://www.opencontent.org/openpub/).</legal>
<title>XEP Template</title>
<abstract>An example of the format for XMPP Extension Protocols.</abstract>
<legal>This XMPP Extension Protocol is copyright 1999 - 2006 by the Jabber Software Foundation (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy (&lt;http://www.xmpp.org/extensions/ipr-policy.shtml&gt;). This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution License (&lt;<link url='http://creativecommons.org/licenses/by/2.5/'>http://creativecommons.org/licenses/by/2.5/</link>&gt;).</legal>
<number>xxxx</number>
<status>ProtoJEP</status>
<status>ProtoXEP</status>
<type>Standards Track</type>
<jig>Standards JIG</jig>
<approver>Council</approver>
<dependencies>
<spec>XMPP Core</spec>
<spec>JEP-0001</spec>
<spec>XEP-0001</spec>
<spec>Etc.</spec>
</dependencies>
<supersedes/>
@ -36,7 +36,7 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>This is a template for use in writing Jabber Enhancement Proposals. For detailed information about the JEP process and how to write a JEP, refer to "JEP-0001: Jabber Enhancement Proposals" and "JEP-0143: Guidelines for JEP Authors".</p>
<p>This is a template for use in writing Jabber Enhancement Proposals. For detailed information about the XEP process and how to write an XMPP Extension Protocol specification, refer to "XEP-0001: XMPP Extension Protocols" and "XEP-0143: Guidelines for Authors of XMPP Extension Protocols".</p>
</section1>
<section1 topic='Requirements' anchor='reqs'>
<p>STRONGLY RECOMMENDED.</p>
@ -66,6 +66,6 @@
<p>REQUIRED.</p>
</section1>
<section1 topic='XML Schema' anchor='schema'>
<p>REQUIRED for protocol JEPs.</p>
<p>REQUIRED for protocol XEPs.</p>
</section1>
</jep>
</xep>

View File

@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<!ELEMENT jep ( header, section1* ) >
<!ELEMENT xep ( header, section1* ) >
<!ELEMENT header ( title, abstract, legal, number, status, type, jig, approver, dependencies, supersedes, supersededby, shortname, schemaloc*, registry?, expires?, author+, revision+ ) >
<!ELEMENT title (#PCDATA)* >
<!ELEMENT abstract (#PCDATA)* >

452
xep.ent
View File

@ -1,11 +1,13 @@
<!--
This file contains common entities for use in JEPs.
It is maintained by the JEP Editor:
This file contains common entities for use in XEPs.
It is maintained by the XMPP Extensions Editor:
http://www.jabber.org/jeps/editor.shtml
http://www.xmpp.org/extensions/editor.shtml
Please do not add entities to this file; instead,
ask the JEP Editor to add them for you. Thanks!
ask the XMPP Extensions Editor to add them for you.
Thanks!
-->
<!-- HTML entities -->
@ -36,22 +38,22 @@
<!-- shortcuts for registries -->
<!ENTITY AMPACTIONS "&lt;<link url='http://www.jabber.org/registrar/amp-actions.html'>http://www.jabber.org/registrar/amp-actions.html</link>&gt;">
<!ENTITY AMPCONDITIONS "&lt;<link url='http://www.jabber.org/registrar/amp-conditions.html'>http://www.jabber.org/registrar/amp-conditions.html</link>&gt;">
<!ENTITY APPERRORS "&lt;<link url='http://www.jabber.org/registrar/errors.html'>http://www.jabber.org/registrar/errors.html</link>&gt;">
<!ENTITY COMPRESSMETHODS "&lt;<link url='http://www.jabber.org/registrar/compress.html'>http://www.jabber.org/registrar/compress.html</link>&gt;">
<!ENTITY DISCOCATEGORIES "&lt;<link url='http://www.jabber.org/registrar/disco-categories.html'>http://www.jabber.org/registrar/disco-categories.html</link>&gt;">
<!ENTITY DISCOFEATURES "&lt;<link url='http://www.jabber.org/registrar/disco-features.html'>http://www.jabber.org/registrar/disco-features.html</link>&gt;">
<!ENTITY DISCONODES "&lt;<link url='http://www.jabber.org/registrar/disco-nodes.html'>http://www.jabber.org/registrar/disco-nodes.html</link>&gt;">
<!ENTITY FORMTYPES "&lt;<link url='http://www.jabber.org/registrar/formtypes.html'>http://www.jabber.org/registrar/formtypes.html</link>&gt;">
<!ENTITY MUCSTATUS "&lt;<link url='http://www.jabber.org/registrar/mucstatus.html'>http://www.jabber.org/registrar/mucstatus.html</link>&gt;">
<!ENTITY NAMESPACES "&lt;<link url='http://www.jabber.org/registrar/namespaces.html'>http://www.jabber.org/registrar/namespaces.html</link>&gt;">
<!ENTITY QUERYTYPES "&lt;<link url='http://www.jabber.org/registrar/querytypes.html'>http://www.jabber.org/registrar/querytypes.html</link>&gt;">
<!ENTITY SHIMHEADERS "&lt;<link url='http://www.jabber.org/registrar/shim.html'>http://www.jabber.org/registrar/shim.html</link>&gt;">
<!ENTITY SIPROFILES "&lt;<link url='http://www.jabber.org/registrar/si-profiles.html'>http://www.jabber.org/registrar/si-profiles.html</link>&gt;">
<!ENTITY STREAMFEATURES "&lt;<link url='http://www.jabber.org/registrar/stream-features.html'>http://www.jabber.org/registrar/stream-features.html</link>&gt;">
<!ENTITY XDVPREFIXES "&lt;<link url='http://www.jabber.org/registrar/xdv-prefixes.html'>http://www.jabber.org/registrar/xdv-prefixes.html</link>&gt;">
<!ENTITY XDVTYPES "&lt;<link url='http://www.jabber.org/registrar/xdv-datatypes.html'>http://www.jabber.org/registrar/xdv-datatypes.html</link>&gt;">
<!ENTITY AMPACTIONS "&lt;<link url='http://www.xmpp.org/registrar/amp-actions.html'>http://www.xmpp.org/registrar/amp-actions.html</link>&gt;">
<!ENTITY AMPCONDITIONS "&lt;<link url='http://www.xmpp.org/registrar/amp-conditions.html'>http://www.xmpp.org/registrar/amp-conditions.html</link>&gt;">
<!ENTITY APPERRORS "&lt;<link url='http://www.xmpp.org/registrar/errors.html'>http://www.xmpp.org/registrar/errors.html</link>&gt;">
<!ENTITY COMPRESSMETHODS "&lt;<link url='http://www.xmpp.org/registrar/compress.html'>http://www.xmpp.org/registrar/compress.html</link>&gt;">
<!ENTITY DISCOCATEGORIES "&lt;<link url='http://www.xmpp.org/registrar/disco-categories.html'>http://www.xmpp.org/registrar/disco-categories.html</link>&gt;">
<!ENTITY DISCOFEATURES "&lt;<link url='http://www.xmpp.org/registrar/disco-features.html'>http://www.xmpp.org/registrar/disco-features.html</link>&gt;">
<!ENTITY DISCONODES "&lt;<link url='http://www.xmpp.org/registrar/disco-nodes.html'>http://www.xmpp.org/registrar/disco-nodes.html</link>&gt;">
<!ENTITY FORMTYPES "&lt;<link url='http://www.xmpp.org/registrar/formtypes.html'>http://www.xmpp.org/registrar/formtypes.html</link>&gt;">
<!ENTITY MUCSTATUS "&lt;<link url='http://www.xmpp.org/registrar/mucstatus.html'>http://www.xmpp.org/registrar/mucstatus.html</link>&gt;">
<!ENTITY NAMESPACES "&lt;<link url='http://www.xmpp.org/registrar/namespaces.html'>http://www.xmpp.org/registrar/namespaces.html</link>&gt;">
<!ENTITY QUERYTYPES "&lt;<link url='http://www.xmpp.org/registrar/querytypes.html'>http://www.xmpp.org/registrar/querytypes.html</link>&gt;">
<!ENTITY SHIMHEADERS "&lt;<link url='http://www.xmpp.org/registrar/shim.html'>http://www.xmpp.org/registrar/shim.html</link>&gt;">
<!ENTITY SIPROFILES "&lt;<link url='http://www.xmpp.org/registrar/si-profiles.html'>http://www.xmpp.org/registrar/si-profiles.html</link>&gt;">
<!ENTITY STREAMFEATURES "&lt;<link url='http://www.xmpp.org/registrar/stream-features.html'>http://www.xmpp.org/registrar/stream-features.html</link>&gt;">
<!ENTITY XDVPREFIXES "&lt;<link url='http://www.xmpp.org/registrar/xdv-prefixes.html'>http://www.xmpp.org/registrar/xdv-prefixes.html</link>&gt;">
<!ENTITY XDVTYPES "&lt;<link url='http://www.xmpp.org/registrar/xdv-datatypes.html'>http://www.xmpp.org/registrar/xdv-datatypes.html</link>&gt;">
<!-- Jingle elements -->
@ -118,7 +120,7 @@
<!-- legal notice required by the JSF's IPR Policy -->
<!ENTITY LEGALNOTICE "<legal>This Jabber Enhancement Proposal is copyright 1999 - 2006 by the <link url='http://www.jabber.org/jsf/'>Jabber Software Foundation</link> (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy &lt;<link url='http://www.jabber.org/jsf/ipr-policy.shtml'>http://www.jabber.org/jsf/ipr-policy.shtml</link>&gt;. This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution License (&lt;<link url='http://creativecommons.org/licenses/by/2.5/'>http://creativecommons.org/licenses/by/2.5/</link>&gt;).</legal>" >
<!ENTITY LEGALNOTICE "<legal>This XMPP Extension Protocol is copyright 1999 - 2006 by the <link url='http://www.jabber.org/jsf/'>Jabber Software Foundation</link> (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy &lt;<link url='http://www.xmpp.org/extensions/ipr-policy.shtml'>http://www.xmpp.org/extensions/ipr-policy.shtml</link>&gt;. This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution License (&lt;<link url='http://creativecommons.org/licenses/by/2.5/'>http://creativecommons.org/licenses/by/2.5/</link>&gt;).</legal>" >
<!-- other JSF-related text shortcuts -->
@ -126,7 +128,7 @@
<!ENTITY BOOLEANNOTE "<note>In accordance with Section 3.2.2.1 of <cite>XML Schema Part 2: Datatypes</cite>, the allowable lexical representations for the xs:boolean datatype are the strings &quot;0&quot; and &quot;false&quot; for the concept 'false' and the strings &quot;1&quot; and &quot;true&quot; for the concept 'true'; implementations MUST support both styles of lexical representation.</note>" >
<!ENTITY REGPROCESS "<p>In order to submit new values to this registry, the registrant must define an XML fragment of the following form and either include it in the relevant Jabber Enhancement Proposal or send it to the email address &lt;registrar@jabber.org&gt;:</p>" >
<!ENTITY REGPROCESS "<p>In order to submit new values to this registry, the registrant must define an XML fragment of the following form and either include it in the relevant XMPP Extension Protocol or send it to the email address &lt;registrar@jabber.org&gt;:</p>" >
<!-- RFC 2119 reference -->
@ -136,17 +138,17 @@
<!ENTITY BOARD "<span class='ref'>JSF Board of Directors</span> <note>The JSF Board of Directors is an elected body that possesses overall responsibility for the affairs of the Jabber Software Foundation. For further information, see &lt;<link url='http://www.jabber.org/board/'>http://www.jabber.org/board/</link>&gt;.</note>" >
<!ENTITY BYLAWS "<span class='ref'>JSF Bylaws</span> <note>The Bylaws of the Jabber Software Foundation (JSF) define the legal basis and operating procedures of the JSF. For further information, see &lt;<link url='http://www.jabber.org/jsf/bylaws.shtml'>http://www.jabber.org/jsf/bylaws.shtml</link>&gt;.</note>" >
<!ENTITY COUNCIL "<span class='ref'>Jabber Council</span> <note>The Jabber Council is a technical steering committee, authorized by the JSF Board of Directors and elected by JSF members, that approves of new Jabber protocols and oversees the JSF's standards process. For further information, see &lt;<link url='http://www.jabber.org/council/'>http://www.jabber.org/council/</link>&gt;.</note>" >
<!ENTITY EDITOR "<span class='ref'>JEP Editor</span> <note>The JEP Editor is the individual appointed by the JSF Board of Directors to handle protocol submissions and provide day-to-day management of the JSF's standards process. For further information, see &lt;<link url='http://www.jabber.org/jeps/editor.shtml'>http://www.jabber.org/jeps/editor.shtml</link>&gt;.</note>" >
<!ENTITY JSF "<span class='ref'>Jabber Software Foundation (JSF)</span> <note>The Jabber Software Foundation (JSF) is an independent, non-profit organization that develops open application protocols on top of the IETF's Extensible Messaging and Presence Protocol (XMPP). For further information, see &lt;<link url='http://www.jabber.org/jsf/'>http://www.jabber.org/jsf/</link>&gt;.</note>" >
<!ENTITY JSFIETF "<span class='ref'>JSF-IETF list</span> <note>The JSF-IETF list is for discussion of matters of mutual interest to the Jabber Software Foundation and the Internet Engineering Task Force. The primary focus of the list is technical, mainly regarding JSF use of IETF technologies (e.g., references to RFCs in JEPs) and IETF use of JSF technologies (e.g., references to JEPs in Internet-Drafts and RFCs). To subscribe to the list or view the list archives, visit &lt;<link url='http://mail.jabber.org/mailman/listinfo/jsf-ietf/'>http://mail.jabber.org/mailman/listinfo/jsf-ietf/</link>&gt;.</note>" >
<!ENTITY JSFIPR "<span class='ref'>JSF IPR Policy</span> <note>The JSF IPR Policy defines the Jabber Software Foundation's official policy regarding intellectual property rights (IPR) as they pertain to Jabber Enhancement Proposals (JEPs). For further information, see &lt;<link url='http://www.jabber.org/jsf/ipr-policy.shtml'>http://www.jabber.org/jsf/ipr-policy.shtml</link>&gt;.</note>" >
<!ENTITY REGISTRAR "<span class='ref'>Jabber Registrar</span> <note>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 &lt;<link url='http://www.jabber.org/registrar/'>http://www.jabber.org/registrar/</link>&gt;.</note>" >
<!ENTITY SJIG "<span class='ref'>Standards JIG</span> <note>The Standards JIG is a standing Jabber Interest Group devoted to discussion of Jabber Enhancement Proposals. The discussion list of the Standards JIG is the primary venue for discussion of Jabber protocol development, as well as for announcements by the JEP Editor and Jabber Registrar. To subscribe to the list or view the list archives, visit &lt;<link url='http://mail.jabber.org/mailman/listinfo/standards-jig/'>http://mail.jabber.org/mailman/listinfo/standards-jig/</link>&gt;.</note>" >
<!ENTITY COUNCIL "<span class='ref'>XMPP Council</span> <note>The XMPP Council is a technical steering committee, authorized by the JSF Board of Directors and elected by JSF members, that approves of new XMPP Extensions Protocols and oversees the JSF's standards process. For further information, see &lt;<link url='http://www.xmpp.org/council/'>http://www.xmpp.org/council/</link>&gt;.</note>" >
<!ENTITY EDITOR "<span class='ref'>XMPP Extensions Editor</span> <note>The XMPP Extensions Editor is the individual appointed by the JSF Board of Directors to handle protocol submissions and provide day-to-day management of the JSF's standards process. For further information, see &lt;<link url='http://www.xmpp.org/extensions/editor.shtml'>http://www.xmpp.org/extensions/editor.shtml</link>&gt;.</note>" >
<!ENTITY JSF "<span class='ref'>Jabber Software Foundation (JSF)</span> <note>The Jabber Software Foundation (JSF) is an independent, non-profit organization that develops open extensions to the IETF's Extensible Messaging and Presence Protocol (XMPP). For further information, see &lt;<link url='http://www.jabber.org/jsf/'>http://www.jabber.org/jsf/</link>&gt;.</note>" >
<!ENTITY JSFIETF "<span class='ref'>JSF-IETF list</span> <note>The JSF-IETF list is for discussion of matters of mutual interest to the Jabber Software Foundation and the Internet Engineering Task Force. The primary focus of the list is technical, mainly regarding JSF use of IETF technologies (e.g., references to RFCs in XMPP Extension Protocols) and IETF use of JSF technologies (e.g., references to XMPP Extension Protocols in Internet-Drafts and RFCs). To subscribe to the list or view the list archives, visit &lt;<link url='http://mail.jabber.org/mailman/listinfo/jsf-ietf/'>http://mail.jabber.org/mailman/listinfo/jsf-ietf/</link>&gt;.</note>" >
<!ENTITY JSFIPR "<span class='ref'>JSF IPR Policy</span> <note>The JSF IPR Policy defines the Jabber Software Foundation's official policy regarding intellectual property rights (IPR) as they pertain to XMPP Extension Protocols (XEPs). For further information, see &lt;<link url='http://www.xmpp.org/extensions/ipr-policy.shtml'>http://www.xmpp.org/extensions/ipr-policy.shtml</link>&gt;.</note>" >
<!ENTITY REGISTRAR "<span class='ref'>XMPP Registrar</span> <note>The XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the Jabber Software Foundation. For further information, see &lt;<link url='http://www.xmpp.org/registrar/'>http://www.xmpp.org/registrar/</link>&gt;.</note>" >
<!ENTITY SJIG "<span class='ref'>Standards JIG</span> <note>The Standards JIG is a standing Jabber Interest Group devoted to development of XMPP Extension Protocols. The discussion list of the Standards JIG is the primary venue for discussion of Jabber/XMPP protocols, as well as for announcements by the XMPP Extensions Editor and XMPP Registrar. To subscribe to the list or view the list archives, visit &lt;<link url='http://mail.jabber.org/mailman/listinfo/standards-jig/'>http://mail.jabber.org/mailman/listinfo/standards-jig/</link>&gt;.</note>" >
<!-- various code projects -->
<!ENTITY jabberd "<span class='ref'>jabberd</span> <note>The jabberd server is the original server implementation of the Jabber protocols, first developed by Jeremie Miller, inventor of Jabber. For further information, see &lt;<link url='http://jabberd.jabberstudio.org/'>http://jabberd.jabberstudio.org/</link>&gt;.</note>" >
<!ENTITY jabberd "<span class='ref'>jabberd</span> <note>The jabberd server is the original server implementation of the Jabber/XMPP protocols, first developed by Jeremie Miller, inventor of Jabber. For further information, see &lt;<link url='http://jabberd.jabberstudio.org/'>http://jabberd.jabberstudio.org/</link>&gt;.</note>" >
<!-- source code licenses -->
@ -426,7 +428,7 @@
<!ENTITY xmppsimple "<span class='ref'>draft-saintandre-xmpp-simple</span> <note>Basic Messaging and Presence Interoperability between the Extensible Messaging and Presence Protocol (XMPP) and Session Initiation Protocol (SIP) for Instant Messaging and Presence Leveraging Extensions (SIMPLE) &lt;<link url='http://www.ietf.org/internet-drafts/draft-saintandre-xmpp-simple-05.txt'>http://www.ietf.org/internet-drafts/draft-saintandre-xmpp-simple-05.txt</link>&gt; (work in progress).</note>" >
<!ENTITY xmppuri "<span class='ref'>XMPP URI</span> <note>A Uniform Resource Identifier (URI) Scheme for the Extensible Messaging and Presence Protocol (XMPP) &lt;<link url='http://www.ietf.org/internet-drafts/draft-saintandre-xmpp-uri-08.txt'>http://www.ietf.org/internet-drafts/draft-saintandre-xmpp-uri-08.txt</link>&gt; (work in progress).</note>" >
<!-- Frequent JEP Authors -->
<!-- Frequent Extension Authors -->
<!ENTITY stpeter "
<author>
@ -564,198 +566,198 @@
</author>
" >
<!-- JEPs -->
<!-- XMPP Extension Protocols -->
<!ENTITY jep0001 "<span class='ref'>Jabber Enhancement Proposals</span> <note>JEP-0001: Jabber Enhancement Proposals &lt;<link url='http://www.jabber.org/jeps/jep-0001.html'>http://www.jabber.org/jeps/jep-0001.html</link>&gt;.</note>" >
<!ENTITY jep0002 "<span class='ref'>Jabber Interest Groups</span> <note>JEP-0002: Jabber Interest Groups &lt;<link url='http://www.jabber.org/jeps/jep-0002.html'>http://www.jabber.org/jeps/jep-0002.html</link>&gt;.</note>" >
<!ENTITY jep0003 "<span class='ref'>Proxy Accept Socket Service</span> <note>JEP-0002: Proxy Accept Socket Service &lt;<link url='http://www.jabber.org/jeps/jep-0003.html'>http://www.jabber.org/jeps/jep-0003.html</link>&gt;.</note>" >
<!ENTITY jep0004 "<span class='ref'>Data Forms</span> <note>JEP-0004: Data Forms &lt;<link url='http://www.jabber.org/jeps/jep-0004.html'>http://www.jabber.org/jeps/jep-0004.html</link>&gt;.</note>" >
<!ENTITY jep0008 "<span class='ref'>IQ-Based Avatars</span> <note>JEP-0008: IQ-Based Avatars &lt;<link url='http://www.jabber.org/jeps/jep-0008.html'>http://www.jabber.org/jeps/jep-0008.html</link>&gt;.</note>" >
<!ENTITY jep0009 "<span class='ref'>Jabber-RPC</span> <note>JEP-0009: Jabber-RPC &lt;<link url='http://www.jabber.org/jeps/jep-0009.html'>http://www.jabber.org/jeps/jep-0009.html</link>&gt;.</note>" >
<!ENTITY jep0011 "<span class='ref'>Jabber Browsing</span> <note>JEP-0011: Jabber Browsing &lt;<link url='http://www.jabber.org/jeps/jep-0011.html'>http://www.jabber.org/jeps/jep-0011.html</link>&gt;.</note>" >
<!ENTITY jep0012 "<span class='ref'>Last Activity</span> <note>JEP-0012: Last Activity &lt;<link url='http://www.jabber.org/jeps/jep-0012.html'>http://www.jabber.org/jeps/jep-0012.html</link>&gt;.</note>" >
<!ENTITY jep0013 "<span class='ref'>Flexible Offline Message Retrieval</span> <note>JEP-0013: Flexible Offline Message Retrieval &lt;<link url='http://www.jabber.org/jeps/jep-0013.html'>http://www.jabber.org/jeps/jep-0013.html</link>&gt;.</note>" >
<!-- JEP-0014 was rejected -->
<!-- JEP-0015 was rejected -->
<!ENTITY jep0016 "<span class='ref'>Server-Based Privacy Rules</span> <note>JEP-0016: Server-Based Privacy Rules &lt;<link url='http://www.jabber.org/jeps/jep-0016.html'>http://www.jabber.org/jeps/jep-0016.html</link>&gt;.</note>" >
<!-- JEP-0017 was rejected -->
<!ENTITY jep0018 "<span class='ref'>Invisible Presence</span> <note>JEP-0018: Invisible Presence &lt;<link url='http://www.jabber.org/jeps/jep-0018.html'>http://www.jabber.org/jeps/jep-0018.html</link>&gt;.</note>" >
<!ENTITY jep0019 "<span class='ref'>Streamlining the JIGs</span> <note>JEP-0019: Streamlining the JIGs &lt;<link url='http://www.jabber.org/jeps/jep-0019.html'>http://www.jabber.org/jeps/jep-0019.html</link>&gt;.</note>" >
<!ENTITY jep0020 "<span class='ref'>Feature Negotiation</span> <note>JEP-0020: Feature Negotiation &lt;<link url='http://www.jabber.org/jeps/jep-0020.html'>http://www.jabber.org/jeps/jep-0020.html</link>&gt;.</note>" >
<!ENTITY jep0021 "<span class='ref'>Jabber Event Notification Service</span> <note>JEP-0021: Jabber Event Notification Service &lt;<link url='http://www.jabber.org/jeps/jep-0021.html'>http://www.jabber.org/jeps/jep-0021.html</link>&gt;.</note>" >
<!ENTITY jep0022 "<span class='ref'>Message Events</span> <note>JEP-0022: Message Events &lt;<link url='http://www.jabber.org/jeps/jep-0022.html'>http://www.jabber.org/jeps/jep-0022.html</link>&gt;.</note>" >
<!ENTITY jep0023 "<span class='ref'>Message Expiration</span> <note>JEP-0023: Message Expiration &lt;<link url='http://www.jabber.org/jeps/jep-0023.html'>http://www.jabber.org/jeps/jep-0023.html</link>&gt;.</note>" >
<!ENTITY jep0024 "<span class='ref'>Publish/Subscribe</span> <note>JEP-0024: Publish/Subscribe &lt;<link url='http://www.jabber.org/jeps/jep-0024.html'>http://www.jabber.org/jeps/jep-0024.html</link>&gt;.</note>" >
<!ENTITY jep0025 "<span class='ref'>Jabber HTTP Polling</span> <note>JEP-0025: Jabber HTTP Polling &lt;<link url='http://www.jabber.org/jeps/jep-0025.html'>http://www.jabber.org/jeps/jep-0025.html</link>&gt;.</note>" >
<!ENTITY jep0026 "<span class='ref'>Internationalization</span> <note>JEP-0026: Internationalization &lt;<link url='http://www.jabber.org/jeps/jep-0026.html'>http://www.jabber.org/jeps/jep-0026.html</link>&gt;.</note>" >
<!ENTITY jep0027 "<span class='ref'>Current Jabber OpenPGP Usage</span> <note>JEP-0027: Current Jabber OpenPGP Usage &lt;<link url='http://www.jabber.org/jeps/jep-0027.html'>http://www.jabber.org/jeps/jep-0027.html</link>&gt;.</note>" >
<!-- there is no JEP-0028 -->
<!ENTITY jep0029 "<span class='ref'>Definition of Jabber Identifiers</span> <note>JEP-0029: Definition of Jabber Identifiers &lt;<link url='http://www.jabber.org/jeps/jep-0029.html'>http://www.jabber.org/jeps/jep-0029.html</link>&gt;.</note>" >
<!ENTITY jep0030 "<span class='ref'>Service Discovery</span> <note>JEP-0030: Service Discovery &lt;<link url='http://www.jabber.org/jeps/jep-0030.html'>http://www.jabber.org/jeps/jep-0030.html</link>&gt;.</note>" >
<!ENTITY jep0031 "<span class='ref'>A Framework for Securing Jabber Conversations</span> <note>JEP-0031: A Framework for Securing Jabber Conversations &lt;<link url='http://www.jabber.org/jeps/jep-0031.html'>http://www.jabber.org/jeps/jep-0031.html</link>&gt;.</note>" >
<!ENTITY jep0032 "<span class='ref'>Jabber URI Scheme</span> <note>JEP-0032: Jabber URI Scheme &lt;<link url='http://www.jabber.org/jeps/jep-0032.html'>http://www.jabber.org/jeps/jep-0032.html</link>&gt;.</note>" >
<!ENTITY jep0033 "<span class='ref'>Extended Stanza Addressing</span> <note>JEP-0033: Extended Stanza Addressing &lt;<link url='http://www.jabber.org/jeps/jep-0033.html'>http://www.jabber.org/jeps/jep-0033.html</link>&gt;.</note>" >
<!ENTITY jep0034 "<span class='ref'>SASL Integration</span> <note>JEP-0034: SASL Integration &lt;<link url='http://www.jabber.org/jeps/jep-0034.html'>http://www.jabber.org/jeps/jep-0034.html</link>&gt;.</note>" >
<!ENTITY jep0035 "<span class='ref'>SSL/TLS Integration</span> <note>JEP-0035: SSL/TLS Integration &lt;<link url='http://www.jabber.org/jeps/jep-0035.html'>http://www.jabber.org/jeps/jep-0035.html</link>&gt;.</note>" >
<!ENTITY jep0036 "<span class='ref'>Pub-sub Subscriptions</span> <note>JEP-0036: Pub-sub Subscriptions &lt;<link url='http://www.jabber.org/jeps/jep-0036.html'>http://www.jabber.org/jeps/jep-0036.html</link>&gt;.</note>" >
<!-- JEP-0037 was rejected -->
<!ENTITY jep0038 "<span class='ref'>Icon Styles</span> <note>JEP-0038: Icon Styles &lt;<link url='http://www.jabber.org/jeps/jep-0038.html'>http://www.jabber.org/jeps/jep-0038.html</link>&gt;.</note>" >
<!ENTITY jep0039 "<span class='ref'>Statistics Gathering</span> <note>JEP-0039: Statistics Gathering &lt;<link url='http://www.jabber.org/jeps/jep-0039.html'>http://www.jabber.org/jeps/jep-0039.html</link>&gt;.</note>" >
<!ENTITY jep0040 "<span class='ref'>Robust Publish-Subscribe</span> <note>JEP-0040: Robust Publish-Subscribe &lt;<link url='http://www.jabber.org/jeps/jep-0040.html'>http://www.jabber.org/jeps/jep-0040.html</link>&gt;.</note>" >
<!ENTITY jep0041 "<span class='ref'>Jidlink</span> <note>JEP-0041: Jidlink &lt;<link url='http://www.jabber.org/jeps/jep-0041.html'>http://www.jabber.org/jeps/jep-0041.html</link>&gt;.</note>" >
<!ENTITY jep0042 "<span class='ref'>Jabber OOB Broadcast Service</span> <note>JEP-0042: Jabber OOB Broadcast Service &lt;<link url='http://www.jabber.org/jeps/jep-0042.html'>http://www.jabber.org/jeps/jep-0042.html</link>&gt;.</note>" >
<!ENTITY jep0043 "<span class='ref'>Jabber Database Access</span> <note>JEP-0043: Jabber Database Access &lt;<link url='http://www.jabber.org/jeps/jep-0043.html'>http://www.jabber.org/jeps/jep-0043.html</link>&gt;.</note>" >
<!ENTITY jep0044 "<span class='ref'>Full Namespace Support in XML Streams</span> <note>JEP-0044: Full Namespace Support in XML Streams &lt;<link url='http://www.jabber.org/jeps/jep-0044.html'>http://www.jabber.org/jeps/jep-0044.html</link>&gt;.</note>" >
<!ENTITY jep0045 "<span class='ref'>Multi-User Chat</span> <note>JEP-0045: Multi-User Chat &lt;<link url='http://www.jabber.org/jeps/jep-0045.html'>http://www.jabber.org/jeps/jep-0045.html</link>&gt;.</note>" >
<!ENTITY jep0046 "<span class='ref'>Direct TCP</span> <note>JEP-0046: Direct TCP &lt;<link url='http://www.jabber.org/jeps/jep-0046.html'>http://www.jabber.org/jeps/jep-0046.html</link>&gt;.</note>" >
<!ENTITY jep0047 "<span class='ref'>In-Band Bytestreams</span> <note>JEP-0047: In-Band Bytestreams &lt;<link url='http://www.jabber.org/jeps/jep-0047.html'>http://www.jabber.org/jeps/jep-0047.html</link>&gt;.</note>" >
<!ENTITY jep0048 "<span class='ref'>Bookmark Storage</span> <note>JEP-0048: Bookmark Storage &lt;<link url='http://www.jabber.org/jeps/jep-0048.html'>http://www.jabber.org/jeps/jep-0048.html</link>&gt;.</note>" >
<!ENTITY jep0049 "<span class='ref'>Private XML Storage</span> <note>JEP-0049: Private XML Storage &lt;<link url='http://www.jabber.org/jeps/jep-0049.html'>http://www.jabber.org/jeps/jep-0049.html</link>&gt;.</note>" >
<!ENTITY jep0050 "<span class='ref'>Ad-Hoc Commands</span> <note>JEP-0050: Ad-Hoc Commands &lt;<link url='http://www.jabber.org/jeps/jep-0050.html'>http://www.jabber.org/jeps/jep-0050.html</link>&gt;.</note>" >
<!ENTITY jep0051 "<span class='ref'>Redirect and Connection Transfer</span> <note>JEP-0051: Redirect and Connection Transfer &lt;<link url='http://www.jabber.org/jeps/jep-0051.html'>http://www.jabber.org/jeps/jep-0051.html</link>&gt;.</note>" >
<!ENTITY jep0052 "<span class='ref'>File Transfer</span> <note>JEP-0052: File Transfer &lt;<link url='http://www.jabber.org/jeps/jep-0052.html'>http://www.jabber.org/jeps/jep-0052.html</link>&gt;.</note>" >
<!ENTITY jep0053 "<span class='ref'>Jabber Registrar</span> <note>JEP-0053: Jabber Registrar &lt;<link url='http://www.jabber.org/jeps/jep-0053.html'>http://www.jabber.org/jeps/jep-0053.html</link>&gt;.</note>" >
<!ENTITY jep0054 "<span class='ref'>vcard-temp</span> <note>JEP-0054: vcard-temp &lt;<link url='http://www.jabber.org/jeps/jep-0054.html'>http://www.jabber.org/jeps/jep-0054.html</link>&gt;.</note>" >
<!ENTITY jep0055 "<span class='ref'>Jabber Search</span> <note>JEP-0055: Jabber Search &lt;<link url='http://www.jabber.org/jeps/jep-0055.html'>http://www.jabber.org/jeps/jep-0055.html</link>&gt;.</note>" >
<!ENTITY jep0056 "<span class='ref'>Business Data Interchange</span> <note>JEP-0056: Business Data Interchange &lt;<link url='http://www.jabber.org/jeps/jep-0056.html'>http://www.jabber.org/jeps/jep-0056.html</link>&gt;.</note>" >
<!ENTITY jep0057 "<span class='ref'>Extended Roster</span> <note>JEP-0057: Extended Roster &lt;<link url='http://www.jabber.org/jeps/jep-0057.html'>http://www.jabber.org/jeps/jep-0057.html</link>&gt;.</note>" >
<!ENTITY jep0058 "<span class='ref'>Multi-User Text Editing</span> <note>JEP-0058: Multi-User Text Editing &lt;<link url='http://www.jabber.org/jeps/jep-0058.html'>http://www.jabber.org/jeps/jep-0058.html</link>&gt;.</note>" >
<!ENTITY jep0059 "<span class='ref'>Result Set Management</span> <note>JEP-0059: Result Set Management &lt;<link url='http://www.jabber.org/jeps/jep-0059.html'>http://www.jabber.org/jeps/jep-0059.html</link>&gt;.</note>" >
<!ENTITY jep0060 "<span class='ref'>Publish-Subscribe</span> <note>JEP-0060: Publish-Subscribe &lt;<link url='http://www.jabber.org/jeps/jep-0060.html'>http://www.jabber.org/jeps/jep-0060.html</link>&gt;.</note>" >
<!ENTITY jep0061 "<span class='ref'>Shared Notes</span> <note>JEP-0061: Shared Notes &lt;<link url='http://www.jabber.org/jeps/jep-0061.html'>http://www.jabber.org/jeps/jep-0061.html</link>&gt;.</note>" >
<!ENTITY jep0062 "<span class='ref'>Packet Filtering</span> <note>JEP-0062: Packet Filtering &lt;<link url='http://www.jabber.org/jeps/jep-0062.html'>http://www.jabber.org/jeps/jep-0062.html</link>&gt;.</note>" >
<!ENTITY jep0063 "<span class='ref'>Basic Filtering Operations</span> <note>JEP-0063: Basic Filtering Operations &lt;<link url='http://www.jabber.org/jeps/jep-0063.html'>http://www.jabber.org/jeps/jep-0063.html</link>&gt;.</note>" >
<!ENTITY jep0064 "<span class='ref'>XPath Filtering</span> <note>JEP-0064: XPath Filtering &lt;<link url='http://www.jabber.org/jeps/jep-0064.html'>http://www.jabber.org/jeps/jep-0064.html</link>&gt;.</note>" >
<!ENTITY jep0065 "<span class='ref'>SOCKS5 Bytestreams</span> <note>JEP-0065: SOCKS5 Bytestreams &lt;<link url='http://www.jabber.org/jeps/jep-0065.html'>http://www.jabber.org/jeps/jep-0065.html</link>&gt;.</note>" >
<!ENTITY jep0066 "<span class='ref'>Out-of-Band Data</span> <note>JEP-0066: Out of Band Data &lt;<link url='http://www.jabber.org/jeps/jep-0066.html'>http://www.jabber.org/jeps/jep-0066.html</link>&gt;.</note>" >
<!ENTITY jep0067 "<span class='ref'>Stock Data Transmission</span> <note>JEP-0067: Stock Data Transmission &lt;<link url='http://www.jabber.org/jeps/jep-0067.html'>http://www.jabber.org/jeps/jep-0067.html</link>&gt;.</note>" >
<!ENTITY jep0068 "<span class='ref'>Field Standardization for Data Forms</span> <note>JEP-0068: Field Data Standardization for Data Forms &lt;<link url='http://www.jabber.org/jeps/jep-0068.html'>http://www.jabber.org/jeps/jep-0068.html</link>&gt;.</note>" >
<!ENTITY jep0069 "<span class='ref'>Compliance JIG</span> <note>JEP-0069: Compliance JIG &lt;<link url='http://www.jabber.org/jeps/jep-0069.html'>http://www.jabber.org/jeps/jep-0069.html</link>&gt;.</note>" >
<!ENTITY jep0070 "<span class='ref'>Verifying HTTP Requests via XMPP</span> <note>JEP-0070: Verifying HTTP Requests via XMPP &lt;<link url='http://www.jabber.org/jeps/jep-0070.html'>http://www.jabber.org/jeps/jep-0070.html</link>&gt;.</note>" >
<!ENTITY jep0071 "<span class='ref'>XHTML-IM</span> <note>JEP-0071: XHTML-IM &lt;<link url='http://www.jabber.org/jeps/jep-0071.html'>http://www.jabber.org/jeps/jep-0071.html</link>&gt;.</note>" >
<!ENTITY jep0072 "<span class='ref'>SOAP over XMPP</span> <note>JEP-0072: SOAP over XMPP &lt;<link url='http://www.jabber.org/jeps/jep-0072.html'>http://www.jabber.org/jeps/jep-0072.html</link>&gt;.</note>" >
<!ENTITY jep0073 "<span class='ref'>Basic IM Protocol Suite</span> <note>JEP-0073: Basic IM Protocol Suite &lt;<link url='http://www.jabber.org/jeps/jep-0073.html'>http://www.jabber.org/jeps/jep-0073.html</link>&gt;.</note>" >
<!ENTITY jep0074 "<span class='ref'>Simple Access Control</span> <note>JEP-0074: Simple Access Control &lt;<link url='http://www.jabber.org/jeps/jep-0074.html'>http://www.jabber.org/jeps/jep-0074.html</link>&gt;.</note>" >
<!ENTITY jep0075 "<span class='ref'>Jabber Object Access Protocol</span> <note>JEP-0075: Jabber Object Access Protocol &lt;<link url='http://www.jabber.org/jeps/jep-0075.html'>http://www.jabber.org/jeps/jep-0075.html</link>&gt;.</note>" >
<!ENTITY jep0076 "<span class='ref'>Malicious Stanzas</span> <note>JEP-0076: Malicious Stanzas &lt;<link url='http://www.jabber.org/jeps/jep-0076.html'>http://www.jabber.org/jeps/jep-0076.html</link>&gt;.</note>" >
<!ENTITY jep0077 "<span class='ref'>In-Band Registration</span> <note>JEP-0077: In-Band Registration &lt;<link url='http://www.jabber.org/jeps/jep-0077.html'>http://www.jabber.org/jeps/jep-0077.html</link>&gt;.</note>" >
<!ENTITY jep0078 "<span class='ref'>Non-SASL Authentication</span> <note>JEP-0078: Non-SASL Authentication &lt;<link url='http://www.jabber.org/jeps/jep-0078.html'>http://www.jabber.org/jeps/jep-0078.html</link>&gt;.</note>" >
<!ENTITY jep0079 "<span class='ref'>Advanced Message Processing</span> <note>JEP-0079: Advanced Message Processing &lt;<link url='http://www.jabber.org/jeps/jep-0079.html'>http://www.jabber.org/jeps/jep-0079.html</link>&gt;.</note>" >
<!ENTITY jep0080 "<span class='ref'>User Geolocation</span> <note>JEP-0080: User Geolocation &lt;<link url='http://www.jabber.org/jeps/jep-0080.html'>http://www.jabber.org/jeps/jep-0080.html</link>&gt;.</note>" >
<!ENTITY jep0081 "<span class='ref'>Jabber MIME Type</span> <note>JEP-0081: Jabber MIME Type &lt;<link url='http://www.jabber.org/jeps/jep-0081.html'>http://www.jabber.org/jeps/jep-0081.html</link>&gt;.</note>" >
<!ENTITY jep0082 "<span class='ref'>Jabber Date and Time Profiles</span> <note>JEP-0082: Jabber Date and Time Profiles &lt;<link url='http://www.jabber.org/jeps/jep-0082.html'>http://www.jabber.org/jeps/jep-0082.html</link>&gt;.</note>" >
<!ENTITY jep0083 "<span class='ref'>Nested Roster Groups</span> <note>JEP-0083: Nested Roster Groups &lt;<link url='http://www.jabber.org/jeps/jep-0083.html'>http://www.jabber.org/jeps/jep-0083.html</link>&gt;.</note>" >
<!ENTITY jep0084 "<span class='ref'>User Avatar</span> <note>JEP-0084: User Avatar &lt;<link url='http://www.jabber.org/jeps/jep-0084.html'>http://www.jabber.org/jeps/jep-0084.html</link>&gt;.</note>" >
<!ENTITY jep0085 "<span class='ref'>Chat State Notifications</span> <note>JEP-0085: Chat State Notifications &lt;<link url='http://www.jabber.org/jeps/jep-0085.html'>http://www.jabber.org/jeps/jep-0085.html</link>&gt;.</note>" >
<!ENTITY jep0086 "<span class='ref'>Error Condition Mappings</span> <note>JEP-0086: Error Condition Mappings &lt;<link url='http://www.jabber.org/jeps/jep-0086.html'>http://www.jabber.org/jeps/jep-0086.html</link>&gt;.</note>" >
<!ENTITY jep0087 "<span class='ref'>Stream Initiation</span> <note>JEP-0087: Stream Initiation &lt;<link url='http://www.jabber.org/jeps/jep-0087.html'>http://www.jabber.org/jeps/jep-0087.html</link>&gt;.</note>" >
<!ENTITY jep0088 "<span class='ref'>Client Webtabs</span> <note>JEP-0088: Client Webtabs &lt;<link url='http://www.jabber.org/jeps/jep-0088.html'>http://www.jabber.org/jeps/jep-0088.html</link>&gt;.</note>" >
<!ENTITY jep0089 "<span class='ref'>Generic Alerts</span> <note>JEP-0089: Generic Alerts &lt;<link url='http://www.jabber.org/jeps/jep-0089.html'>http://www.jabber.org/jeps/jep-0089.html</link>&gt;.</note>" >
<!ENTITY jep0090 "<span class='ref'>Entity Time</span> <note>JEP-0090: Entity Time &lt;<link url='http://www.jabber.org/jeps/jep-0090.html'>http://www.jabber.org/jeps/jep-0090.html</link>&gt;.</note>" >
<!ENTITY jep0091 "<span class='ref'>Delayed Delivery</span> <note>JEP-0091: Delayed Delivery &lt;<link url='http://www.jabber.org/jeps/jep-0091.html'>http://www.jabber.org/jeps/jep-0091.html</link>&gt;.</note>" >
<!ENTITY jep0092 "<span class='ref'>Software Version</span> <note>JEP-0092: Software Version &lt;<link url='http://www.jabber.org/jeps/jep-0092.html'>http://www.jabber.org/jeps/jep-0092.html</link>&gt;.</note>" >
<!ENTITY jep0093 "<span class='ref'>Roster Item Exchange</span> <note>JEP-0093: Roster Item Exchange &lt;<link url='http://www.jabber.org/jeps/jep-0093.html'>http://www.jabber.org/jeps/jep-0093.html</link>&gt;.</note>" >
<!ENTITY jep0094 "<span class='ref'>Agent Information</span> <note>JEP-0094: Agent Information &lt;<link url='http://www.jabber.org/jeps/jep-0094.html'>http://www.jabber.org/jeps/jep-0094.html</link>&gt;.</note>" >
<!ENTITY jep0095 "<span class='ref'>Stream Initiation</span> <note>JEP-0095: Stream Initiation &lt;<link url='http://www.jabber.org/jeps/jep-0095.html'>http://www.jabber.org/jeps/jep-0095.html</link>&gt;.</note>" >
<!ENTITY jep0096 "<span class='ref'>File Transfer</span> <note>JEP-0096: File Transfer &lt;<link url='http://www.jabber.org/jeps/jep-0096.html'>http://www.jabber.org/jeps/jep-0096.html</link>&gt;.</note>" >
<!ENTITY jep0097 "<span class='ref'>iCal Envelope</span> <note>JEP-0097: iCal Envelope &lt;<link url='http://www.jabber.org/jeps/jep-0097.html'>http://www.jabber.org/jeps/jep-0097.html</link>&gt;.</note>" >
<!ENTITY jep0098 "<span class='ref'>Enchanced Private XML Storage</span> <note>JEP-0098: Enchanced Private XML Storage &lt;<link url='http://www.jabber.org/jeps/jep-0098.html'>http://www.jabber.org/jeps/jep-0098.html</link>&gt;.</note>" >
<!ENTITY jep0099 "<span class='ref'>IQ Query Action Protocol</span> <note>JEP-0099: IQ Query Action Protocol &lt;<link url='http://www.jabber.org/jeps/jep-0099.html'>http://www.jabber.org/jeps/jep-0099.html</link>&gt;.</note>" >
<!ENTITY jep0100 "<span class='ref'>Gateway Interaction</span> <note>JEP-0100: Gateway Interaction &lt;<link url='http://www.jabber.org/jeps/jep-0100.html'>http://www.jabber.org/jeps/jep-0100.html</link>&gt;.</note>" >
<!ENTITY jep0101 "<span class='ref'>HTTP Authentication using Jabber Tickets</span> <note>JEP-0101: HTTP Authentication using Jabber Tickets &lt;<link url='http://www.jabber.org/jeps/jep-0101.html'>http://www.jabber.org/jeps/jep-0101.html</link>&gt;.</note>" >
<!ENTITY jep0102 "<span class='ref'>Security Extensions</span> <note>JEP-0102: Security Extensions &lt;<link url='http://www.jabber.org/jeps/jep-0102.html'>http://www.jabber.org/jeps/jep-0102.html</link>&gt;.</note>" >
<!ENTITY jep0103 "<span class='ref'>URL Address Information</span> <note>JEP-0103: URL Address Information &lt;<link url='http://www.jabber.org/jeps/jep-0103.html'>http://www.jabber.org/jeps/jep-0103.html</link>&gt;.</note>" >
<!ENTITY jep0104 "<span class='ref'>HTTP Scheme for URL Data</span> <note>JEP-0104: HTTP Scheme for URL Data &lt;<link url='http://www.jabber.org/jeps/jep-0104.html'>http://www.jabber.org/jeps/jep-0104.html</link>&gt;.</note>" >
<!ENTITY jep0105 "<span class='ref'>Tree Transfer Stream Initiation Profile</span> <note>JEP-0105: Tree Transfer Stream Initiation Profile &lt;<link url='http://www.jabber.org/jeps/jep-0105.html'>http://www.jabber.org/jeps/jep-0105.html</link>&gt;.</note>" >
<!ENTITY jep0106 "<span class='ref'>JID Escaping</span> <note>JEP-0106: JID Escaping &lt;<link url='http://www.jabber.org/jeps/jep-0106.html'>http://www.jabber.org/jeps/jep-0106.html</link>&gt;.</note>" >
<!ENTITY jep0107 "<span class='ref'>User Mood</span> <note>JEP-0107: User Mood &lt;<link url='http://www.jabber.org/jeps/jep-0107.html'>http://www.jabber.org/jeps/jep-0107.html</link>&gt;.</note>" >
<!ENTITY jep0108 "<span class='ref'>User Activity</span> <note>JEP-0108: User Activity &lt;<link url='http://www.jabber.org/jeps/jep-0108.html'>http://www.jabber.org/jeps/jep-0108.html</link>&gt;.</note>" >
<!ENTITY jep0109 "<span class='ref'>Vacation Messages</span> <note>JEP-0109: Vacation Messages &lt;<link url='http://www.jabber.org/jeps/jep-0109.html'>http://www.jabber.org/jeps/jep-0109.html</link>&gt;.</note>" >
<!ENTITY jep0110 "<span class='ref'>Generic Maps</span> <note>JEP-0110: Generic Maps &lt;<link url='http://www.jabber.org/jeps/jep-0110.html'>http://www.jabber.org/jeps/jep-0110.html</link>&gt;.</note>" >
<!ENTITY jep0111 "<span class='ref'>A Transport for Initiating and Negotiating Sessions</span> <note>JEP-0111: A Transport for Initiating and Negotiating Sessions &lt;<link url='http://www.jabber.org/jeps/jep-0111.html'>http://www.jabber.org/jeps/jep-0111.html</link>&gt;.</note>" >
<!ENTITY jep0112 "<span class='ref'>User Physical Location</span> <note>JEP-0112: User Physical Location &lt;<link url='http://www.jabber.org/jeps/jep-0112.html'>http://www.jabber.org/jeps/jep-0112.html</link>&gt;.</note>" >
<!ENTITY jep0113 "<span class='ref'>Simple Whiteboarding</span> <note>JEP-0113: Simple Whiteboarding &lt;<link url='http://www.jabber.org/jeps/jep-0113.html'>http://www.jabber.org/jeps/jep-0113.html</link>&gt;.</note>" >
<!ENTITY jep0114 "<span class='ref'>Jabber Component Protocol</span> <note>JEP-0114: Jabber Component Protocol &lt;<link url='http://www.jabber.org/jeps/jep-0114.html'>http://www.jabber.org/jeps/jep-0114.html</link>&gt;.</note>" >
<!ENTITY jep0115 "<span class='ref'>Entity Capabilities</span> <note>JEP-0115: Entity Capabilities &lt;<link url='http://www.jabber.org/jeps/jep-0115.html'>http://www.jabber.org/jeps/jep-0115.html</link>&gt;.</note>" >
<!ENTITY jep0116 "<span class='ref'>Encrypted Sessions</span> <note>JEP-0116: Encrypted Sessions &lt;<link url='http://www.jabber.org/jeps/jep-0116.html'>http://www.jabber.org/jeps/jep-0116.html</link>&gt;.</note>" >
<!ENTITY jep0117 "<span class='ref'>Intermediate IM Protocol Suite</span> <note>JEP-0117: Intermediate IM Protocol Suite &lt;<link url='http://www.jabber.org/jeps/jep-0117.html'>http://www.jabber.org/jeps/jep-0117.html</link>&gt;.</note>" >
<!ENTITY jep0118 "<span class='ref'>User Tune</span> <note>JEP-0118: User Tune &lt;<link url='http://www.jabber.org/jeps/jep-0118.html'>http://www.jabber.org/jeps/jep-0118.html</link>&gt;.</note>" >
<!ENTITY jep0119 "<span class='ref'>Extended Presence Protocol Suite</span> <note>JEP-0119: Extended Presence Protocol Suite &lt;<link url='http://www.jabber.org/jeps/jep-0119.html'>http://www.jabber.org/jeps/jep-0119.html</link>&gt;.</note>" >
<!ENTITY jep0120 "<span class='ref'>Infobits</span> <note>JEP-0120: Infobits &lt;<link url='http://www.jabber.org/jeps/jep-0120.html'>http://www.jabber.org/jeps/jep-0120.html</link>&gt;.</note>" >
<!ENTITY jep0121 "<span class='ref'>Dublin Core Infobits Mapping</span> <note>JEP-0121: Dublin Core Infobits Mapping &lt;<link url='http://www.jabber.org/jeps/jep-0121.html'>http://www.jabber.org/jeps/jep-0121.html</link>&gt;.</note>" >
<!ENTITY jep0122 "<span class='ref'>Data Forms Validation</span> <note>JEP-0122: Data Forms Validation &lt;<link url='http://www.jabber.org/jeps/jep-0122.html'>http://www.jabber.org/jeps/jep-0122.html</link>&gt;.</note>" >
<!ENTITY jep0123 "<span class='ref'>Entity Metadata</span> <note>JEP-0123: Entity Metadata &lt;<link url='http://www.jabber.org/jeps/jep-0123.html'>http://www.jabber.org/jeps/jep-0123.html</link>&gt;.</note>" >
<!ENTITY jep0124 "<span class='ref'>HTTP Binding</span> <note>JEP-0124: HTTP Binding &lt;<link url='http://www.jabber.org/jeps/jep-0124.html'>http://www.jabber.org/jeps/jep-0124.html</link>&gt;.</note>" >
<!ENTITY jep0125 "<span class='ref'>vCard Infobits Mapping</span> <note>JEP-0125: vCard Infobits Mapping &lt;<link url='http://www.jabber.org/jeps/jep-0125.html'>http://www.jabber.org/jeps/jep-0125.html</link>&gt;.</note>" >
<!ENTITY jep0126 "<span class='ref'>Invisibility</span> <note>JEP-0126: Invisibility &lt;<link url='http://www.jabber.org/jeps/jep-0126.html'>http://www.jabber.org/jeps/jep-0126.html</link>&gt;.</note>" >
<!ENTITY jep0127 "<span class='ref'>Common Alerting Protocol (CAP) over XMPP</span> <note>JEP-0127: Common Alerting Protocol (CAP) over XMPP &lt;<link url='http://www.jabber.org/jeps/jep-0127.html'>http://www.jabber.org/jeps/jep-0127.html</link>&gt;.</note>" >
<!ENTITY jep0128 "<span class='ref'>Service Discovery Extensions</span> <note>JEP-0128: Service Discovery Extensions &lt;<link url='http://www.jabber.org/jeps/jep-0128.html'>http://www.jabber.org/jeps/jep-0128.html</link>&gt;.</note>" >
<!ENTITY jep0129 "<span class='ref'>WebDAV File Transfers</span> <note>JEP-0129: WebDAV File Transfers &lt;<link url='http://www.jabber.org/jeps/jep-0129.html'>http://www.jabber.org/jeps/jep-0129.html</link>&gt;.</note>" >
<!ENTITY jep0130 "<span class='ref'>Waiting Lists</span> <note>JEP-0130: Waiting Lists &lt;<link url='http://www.jabber.org/jeps/jep-0130.html'>http://www.jabber.org/jeps/jep-0130.html</link>&gt;.</note>" >
<!ENTITY jep0131 "<span class='ref'>Stanza Headers and Internet Metadata</span> <note>JEP-0131: Stanza Headers and Internet Metadata &lt;<link url='http://www.jabber.org/jeps/jep-0131.html'>http://www.jabber.org/jeps/jep-0131.html</link>&gt;.</note>" >
<!ENTITY jep0132 "<span class='ref'>Presence Obtained via Kinesthetic Excitation (POKE)</span> <note>JEP-0132: Presence Obtained via Kinesthetic Excitation (POKE) &lt;<link url='http://www.jabber.org/jeps/jep-0132.html'>http://www.jabber.org/jeps/jep-0132.html</link>&gt;.</note>" >
<!ENTITY jep0133 "<span class='ref'>Service Administration</span> <note>JEP-0133: Service Administration &lt;<link url='http://www.jabber.org/jeps/jep-0133.html'>http://www.jabber.org/jeps/jep-0133.html</link>&gt;.</note>" >
<!ENTITY jep0134 "<span class='ref'>Protocol Design Guidelines</span> <note>JEP-0134: Protocol Design Guidelines &lt;<link url='http://www.jabber.org/jeps/jep-0134.html'>http://www.jabber.org/jeps/jep-0134.html</link>&gt;.</note>" >
<!ENTITY jep0135 "<span class='ref'>File Sharing</span> <note>JEP-0135: File Sharing &lt;<link url='http://www.jabber.org/jeps/jep-0135.html'>http://www.jabber.org/jeps/jep-0135.html</link>&gt;.</note>" >
<!ENTITY jep0136 "<span class='ref'>Message Archiving</span> <note>JEP-0136: Message Archiving &lt;<link url='http://www.jabber.org/jeps/jep-0136.html'>http://www.jabber.org/jeps/jep-0136.html</link>&gt;.</note>" >
<!ENTITY jep0137 "<span class='ref'>Publishing Stream Initiation Requests</span> <note>JEP-0137: Publishing Stream Initiation Requests &lt;<link url='http://www.jabber.org/jeps/jep-0137.html'>http://www.jabber.org/jeps/jep-0137.html</link>&gt;.</note>" >
<!ENTITY jep0138 "<span class='ref'>Stream Compression</span> <note>JEP-0138: Stream Compression &lt;<link url='http://www.jabber.org/jeps/jep-0138.html'>http://www.jabber.org/jeps/jep-0138.html</link>&gt;.</note>" >
<!ENTITY jep0139 "<span class='ref'>Security JIG</span> <note>JEP-0139: Security JIG &lt;<link url='http://www.jabber.org/jeps/jep-0139.html'>http://www.jabber.org/jeps/jep-0139.html</link>&gt;.</note>" >
<!ENTITY jep0140 "<span class='ref'>Shared Groups</span> <note>JEP-0140: Shared Groups &lt;<link url='http://www.jabber.org/jeps/jep-0140.html'>http://www.jabber.org/jeps/jep-0140.html</link>&gt;.</note>" >
<!ENTITY jep0141 "<span class='ref'>Data Forms Layout</span> <note>JEP-0141: Data Forms Layout &lt;<link url='http://www.jabber.org/jeps/jep-0141.html'>http://www.jabber.org/jeps/jep-0141.html</link>&gt;.</note>" >
<!ENTITY jep0142 "<span class='ref'>Workgroup Queues</span> <note>JEP-0142: Workgroup Queues &lt;<link url='http://www.jabber.org/jeps/jep-0142.html'>http://www.jabber.org/jeps/jep-0142.html</link>&gt;.</note>" >
<!ENTITY jep0143 "<span class='ref'>Guidelines for JEP Authors</span> <note>JEP-0143: Guidelines for JEP Authors &lt;<link url='http://www.jabber.org/jeps/jep-0143.html'>http://www.jabber.org/jeps/jep-0143.html</link>&gt;.</note>" >
<!ENTITY jep0144 "<span class='ref'>Roster Item Exchange</span> <note>JEP-0144: Roster Item Exchange &lt;<link url='http://www.jabber.org/jeps/jep-0144.html'>http://www.jabber.org/jeps/jep-0144.html</link>&gt;.</note>" >
<!ENTITY jep0145 "<span class='ref'>Annotations</span> <note>JEP-0145: Annotations &lt;<link url='http://www.jabber.org/jeps/jep-0145.html'>http://www.jabber.org/jeps/jep-0145.html</link>&gt;.</note>" >
<!ENTITY jep0146 "<span class='ref'>Remote Controlling Clients</span> <note>JEP-0146: Remote Controlling Clients &lt;<link url='http://www.jabber.org/jeps/jep-0146.html'>http://www.jabber.org/jeps/jep-0146.html</link>&gt;.</note>" >
<!ENTITY jep0147 "<span class='ref'>XMPP URI Query Components</span> <note>JEP-0147: XMPP URI Query Components &lt;<link url='http://www.jabber.org/jeps/jep-0147.html'>http://www.jabber.org/jeps/jep-0147.html</link>&gt;.</note>" >
<!ENTITY jep0148 "<span class='ref'>Instant Messaging Intelligence Quotient (IM IQ)</span> <note>JEP-0148: Instant Messaging Intelligence Quotient (IM IQ) &lt;<link url='http://www.jabber.org/jeps/jep-0148.html'>http://www.jabber.org/jeps/jep-0148.html</link>&gt;.</note>" >
<!ENTITY jep0149 "<span class='ref'>Time Periods</span> <note>JEP-0149: Time Periods &lt;<link url='http://www.jabber.org/jeps/jep-0149.html'>http://www.jabber.org/jeps/jep-0149.html</link>&gt;.</note>" >
<!ENTITY jep0150 "<span class='ref'>Use of Entity Tags in XMPP Extensions</span> <note>JEP-0150: Use of Entity Tags in XMPP Extensions &lt;<link url='http://www.jabber.org/jeps/jep-0150.html'>http://www.jabber.org/jeps/jep-0150.html</link>&gt;.</note>" >
<!ENTITY jep0151 "<span class='ref'>Virtual Presence</span> <note>JEP-0151: Virtual Presence &lt;<link url='http://www.jabber.org/jeps/jep-0151.html'>http://www.jabber.org/jeps/jep-0151.html</link>&gt;.</note>" >
<!ENTITY jep0152 "<span class='ref'>Reachability Addresses</span> <note>JEP-0152: Reachability Addresses &lt;<link url='http://www.jabber.org/jeps/jep-0152.html'>http://www.jabber.org/jeps/jep-0152.html</link>&gt;.</note>" >
<!ENTITY jep0153 "<span class='ref'>vCard-Based Avatars</span> <note>JEP-0153: vCard-Based Avatars &lt;<link url='http://www.jabber.org/jeps/jep-0153.html'>http://www.jabber.org/jeps/jep-0153.html</link>&gt;.</note>" >
<!ENTITY jep0154 "<span class='ref'>User Profile</span> <note>JEP-0154: User Profile &lt;<link url='http://www.jabber.org/jeps/jep-0154.html'>http://www.jabber.org/jeps/jep-0154.html</link>&gt;.</note>" >
<!ENTITY jep0155 "<span class='ref'>Chat Session Negotiation</span> <note>JEP-0155: Chat Session Negotiation &lt;<link url='http://www.jabber.org/jeps/jep-0155.html'>http://www.jabber.org/jeps/jep-0155.html</link>&gt;.</note>" >
<!ENTITY jep0156 "<span class='ref'>A DNS TXT Resource Record Format for XMPP Connection Methods</span> <note>JEP-0156: A DNS TXT Resource Record Format for XMPP Connection Methods &lt;<link url='http://www.jabber.org/jeps/jep-0156.html'>http://www.jabber.org/jeps/jep-0156.html</link>&gt;.</note>" >
<!ENTITY jep0157 "<span class='ref'>Contact Addresses for XMPP Services</span> <note>JEP-0157: Contact Addresses for XMPP Services &lt;<link url='http://www.jabber.org/jeps/jep-0157.html'>http://www.jabber.org/jeps/jep-0157.html</link>&gt;.</note>" >
<!ENTITY jep0158 "<span class='ref'>Robot Challenges</span> <note>JEP-0158: Robot Challenges &lt;<link url='http://www.jabber.org/jeps/jep-0158.html'>http://www.jabber.org/jeps/jep-0158.html</link>&gt;.</note>" >
<!ENTITY jep0159 "<span class='ref'>SPIM-Blocking Control</span> <note>JEP-0159: SPIM-Blocking Control &lt;<link url='http://www.jabber.org/jeps/jep-0159.html'>http://www.jabber.org/jeps/jep-0159.html</link>&gt;.</note>" >
<!ENTITY jep0160 "<span class='ref'>Best Practices for Handling Offline Messages</span> <note>JEP-0160: Best Practices for Handling Offline Messages &lt;<link url='http://www.jabber.org/jeps/jep-0160.html'>http://www.jabber.org/jeps/jep-0160.html</link>&gt;.</note>" >
<!ENTITY jep0161 "<span class='ref'>SPIM Reporting</span> <note>JEP-0161: SPIM Reporting &lt;<link url='http://www.jabber.org/jeps/jep-0161.html'>http://www.jabber.org/jeps/jep-0161.html</link>&gt;.</note>" >
<!ENTITY jep0162 "<span class='ref'>Best Practices for Roster and Subscription Management</span> <note>JEP-0162: Best Practices for Roster and Subscription Management &lt;<link url='http://www.jabber.org/jeps/jep-0162.html'>http://www.jabber.org/jeps/jep-0162.html</link>&gt;.</note>" >
<!ENTITY jep0163 "<span class='ref'>Personal Eventing via Pubsub</span> <note>JEP-0163: Personal Eventing via Pubsub &lt;<link url='http://www.jabber.org/jeps/jep-0163.html'>http://www.jabber.org/jeps/jep-0163.html</link>&gt;.</note>" >
<!ENTITY jep0164 "<span class='ref'>vCard Filtering</span> <note>JEP-0164: vCard Filtering &lt;<link url='http://www.jabber.org/jeps/jep-0164.html'>http://www.jabber.org/jeps/jep-0164.html</link>&gt;.</note>" >
<!ENTITY jep0165 "<span class='ref'>Prevention of JID Spoofing</span> <note>JEP-0165: Prevention of JID Spoofing &lt;<link url='http://www.jabber.org/jeps/jep-0165.html'>http://www.jabber.org/jeps/jep-0165.html</link>&gt;.</note>" >
<!ENTITY jep0166 "<span class='ref'>Jingle</span> <note>JEP-0166: Jingle &lt;<link url='http://www.jabber.org/jeps/jep-0166.html'>http://www.jabber.org/jeps/jep-0166.html</link>&gt;.</note>" >
<!ENTITY jep0167 "<span class='ref'>Jingle Audio Content Description Format</span> <note>JEP-0167: Jingle Audio Content Description Format &lt;<link url='http://www.jabber.org/jeps/jep-0167.html'>http://www.jabber.org/jeps/jep-0167.html</link>&gt;.</note>" >
<!ENTITY jep0168 "<span class='ref'>Resource Application Priority</span> <note>JEP-0168: Resource Application Priority &lt;<link url='http://www.jabber.org/jeps/jep-0168.html'>http://www.jabber.org/jeps/jep-0168.html</link>&gt;.</note>" >
<!ENTITY jep0169 "<span class='ref'>Twas The Night Before Christmas (Jabber Version)</span> <note>JEP-0169: Twas The Night Before Christmas (Jabber Version) &lt;<link url='http://www.jabber.org/jeps/jep-0169.html'>http://www.jabber.org/jeps/jep-0169.html</link>&gt;.</note>" >
<!ENTITY jep0170 "<span class='ref'>Recommended Order of Stream Feature Negotiation</span> <note>JEP-0170: Recommended Order of Stream Feature Negotiation &lt;<link url='http://www.jabber.org/jeps/jep-0170.html'>http://www.jabber.org/jeps/jep-0170.html</link>&gt;.</note>" >
<!ENTITY jep0171 "<span class='ref'>Language Translation</span> <note>JEP-0171: Language Translation &lt;<link url='http://www.jabber.org/jeps/jep-0171.html'>http://www.jabber.org/jeps/jep-0171.html</link>&gt;.</note>" >
<!ENTITY jep0172 "<span class='ref'>User Nickname</span> <note>JEP-0172: User Nickname &lt;<link url='http://www.jabber.org/jeps/jep-0172.html'>http://www.jabber.org/jeps/jep-0172.html</link>&gt;.</note>" >
<!ENTITY jep0173 "<span class='ref'>Pubsub Subscription Storage</span> <note>JEP-0173: Pubsub Subscription Storage &lt;<link url='http://www.jabber.org/jeps/jep-0173.html'>http://www.jabber.org/jeps/jep-0173.html</link>&gt;.</note>" >
<!ENTITY jep0174 "<span class='ref'>Link-Local Messaging</span> <note>JEP-0174: Link-Local Messaging &lt;<link url='http://www.jabber.org/jeps/jep-0174.html'>http://www.jabber.org/jeps/jep-0174.html</link>&gt;.</note>" >
<!ENTITY jep0175 "<span class='ref'>Best Practices for Use of SASL ANONYMOUS</span> <note>JEP-0175: Best Practices for Use of SASL ANONYMOUS &lt;<link url='http://www.jabber.org/jeps/jep-0175.html'>http://www.jabber.org/jeps/jep-0175.html</link>&gt;.</note>" >
<!ENTITY jep0176 "<span class='ref'>Jingle RTP-ICE Transport Method</span> <note>JEP-0176: Jingle RTP-ICE Transport Method &lt;<link url='http://www.jabber.org/jeps/jep-0176.html'>http://www.jabber.org/jeps/jep-0176.html</link>&gt;.</note>" >
<!ENTITY jep0177 "<span class='ref'>Jingle Raw UDP Transport Method </span> <note>JEP-0177: Jingle Raw UDP Transport Method &lt;<link url='http://www.jabber.org/jeps/jep-0177.html'>http://www.jabber.org/jeps/jep-0177.html</link>&gt;.</note>" >
<!ENTITY jep0178 "<span class='ref'>Best Practices for Use of SASL EXTERNAL</span> <note>JEP-0178: Best Practices for Use of SASL EXTERNAL &lt;<link url='http://www.jabber.org/jeps/jep-0178.html'>http://www.jabber.org/jeps/jep-0178.html</link>&gt;.</note>" >
<!ENTITY jep0179 "<span class='ref'>Jingle IAX Transport Method </span> <note>JEP-0179: Jingle IAX Transport Method &lt;<link url='http://www.jabber.org/jeps/jep-0179.html'>http://www.jabber.org/jeps/jep-0179.html</link>&gt;.</note>" >
<!ENTITY jep0180 "<span class='ref'>Jingle Video Content Description Format </span> <note>JEP-0180: Jingle Video Content Description Format &lt;<link url='http://www.jabber.org/jeps/jep-0180.html'>http://www.jabber.org/jeps/jep-0180.html</link>&gt;.</note>" >
<!ENTITY jep0181 "<span class='ref'>Jingle DTMF </span> <note>JEP-0181: Jingle DTMF &lt;<link url='http://www.jabber.org/jeps/jep-0181.html'>http://www.jabber.org/jeps/jep-0181.html</link>&gt;.</note>" >
<!ENTITY jep0182 "<span class='ref'>Application-Specific Error Conditions </span> <note>JEP-0182: Application-Specific Error Conditions &lt;<link url='http://www.jabber.org/jeps/jep-0182.html'>http://www.jabber.org/jeps/jep-0182.html</link>&gt;.</note>" >
<!ENTITY jep0183 "<span class='ref'>Jingle Telepathy Transport Method </span> <note>JEP-0183: Jingle Telepathy Transport Method &lt;<link url='http://www.jabber.org/jeps/jep-0183.html'>http://www.jabber.org/jeps/jep-0183.html</link>&gt;.</note>" >
<!ENTITY jep0184 "<span class='ref'>Message Receipts </span> <note>JEP-0184: Message Receipts &lt;<link url='http://www.jabber.org/jeps/jep-0184.html'>http://www.jabber.org/jeps/jep-0184.html</link>&gt;.</note>" >
<!ENTITY jep0185 "<span class='ref'>Dialback Key Generation and Validation </span> <note>JEP-0185: Dialback Key Generation and Validation &lt;<link url='http://www.jabber.org/jeps/jep-0185.html'>http://www.jabber.org/jeps/jep-0185.html</link>&gt;.</note>" >
<!ENTITY jep0186 "<span class='ref'>Invisible Command</span> <note>JEP-0186: Invisible Command &lt;<link url='http://www.jabber.org/jeps/jep-0186.html'>http://www.jabber.org/jeps/jep-0186.html</link>&gt;.</note>" >
<!ENTITY jep0187 "<span class='ref'>Offline Encrypted Sessions</span> <note>JEP-0187: Offline Encrypted Sessions &lt;<link url='http://www.jabber.org/jeps/jep-0187.html'>http://www.jabber.org/jeps/jep-0187.html</link>&gt;.</note>" >
<!ENTITY jep0188 "<span class='ref'>Cryptographic Design of Encrypted Sessions</span> <note>JEP-0188: Cryptographic Design of Encrypted Sessions &lt;<link url='http://www.jabber.org/jeps/jep-0188.html'>http://www.jabber.org/jeps/jep-0188.html</link>&gt;.</note>" >
<!ENTITY jep0189 "<span class='ref'>Public Key Publishing</span> <note>JEP-0189: Public Key Publishing &lt;<link url='http://www.jabber.org/jeps/jep-0189.html'>http://www.jabber.org/jeps/jep-0189.html</link>&gt;.</note>" >
<!ENTITY jep0190 "<span class='ref'>Best Practice for Closing Idle Streams</span> <note>JEP-0190: Best Practice for Closing Idle Streams &lt;<link url='http://www.jabber.org/jeps/jep-0190.html'>http://www.jabber.org/jeps/jep-0190.html</link>&gt;.</note>" >
<!ENTITY jep0191 "<span class='ref'>Simple Communications Blocking</span> <note>JEP-0191: Simple Communications Blocking &lt;<link url='http://www.jabber.org/jeps/jep-0191.html'>http://www.jabber.org/jeps/jep-0191.html</link>&gt;.</note>" >
<!ENTITY jep0192 "<span class='ref'>Proposed Stream Feature Improvements</span> <note>JEP-0192: Proposed Stream Feature Improvements &lt;<link url='http://www.jabber.org/jeps/jep-0192.html'>http://www.jabber.org/jeps/jep-0192.html</link>&gt;.</note>" >
<!ENTITY jep0193 "<span class='ref'>Proposed Resource Binding Improvements</span> <note>JEP-0193: Proposed Resource Binding Improvements &lt;<link url='http://www.jabber.org/jeps/jep-0193.html'>http://www.jabber.org/jeps/jep-0193.html</link>&gt;.</note>" >
<!ENTITY jep0194 "<span class='ref'>User Chatting</span> <note>JEP-0194: User Chatting &lt;<link url='http://www.jabber.org/jeps/jep-0194.html'>http://www.jabber.org/jeps/jep-0194.html</link>&gt;.</note>" >
<!ENTITY jep0195 "<span class='ref'>User Browsing</span> <note>JEP-0195: User Browsing &lt;<link url='http://www.jabber.org/jeps/jep-0195.html'>http://www.jabber.org/jeps/jep-0195.html</link>&gt;.</note>" >
<!ENTITY jep0196 "<span class='ref'>User Gaming</span> <note>JEP-0196: User Gaming &lt;<link url='http://www.jabber.org/jeps/jep-0196.html'>http://www.jabber.org/jeps/jep-0196.html</link>&gt;.</note>" >
<!ENTITY jep0197 "<span class='ref'>User Viewing</span> <note>JEP-0197: User Viewing &lt;<link url='http://www.jabber.org/jeps/jep-0197.html'>http://www.jabber.org/jeps/jep-0197.html</link>&gt;.</note>" >
<!ENTITY xep0001 "<span class='ref'>XMPP Extension Protocols</span> <note>XEP-0001: XMPP Extension Protocols &lt;<link url='http://www.xmpp.org/extensions/xep-0001.html'>http://www.xmpp.org/extensions/xep-0001.html</link>&gt;.</note>" >
<!ENTITY xep0002 "<span class='ref'>Jabber Interest Groups</span> <note>XEP-0002: Jabber Interest Groups &lt;<link url='http://www.xmpp.org/extensions/xep-0002.html'>http://www.xmpp.org/extensions/xep-0002.html</link>&gt;.</note>" >
<!ENTITY xep0003 "<span class='ref'>Proxy Accept Socket Service</span> <note>XEP-0002: Proxy Accept Socket Service &lt;<link url='http://www.xmpp.org/extensions/xep-0003.html'>http://www.xmpp.org/extensions/xep-0003.html</link>&gt;.</note>" >
<!ENTITY xep0004 "<span class='ref'>Data Forms</span> <note>XEP-0004: Data Forms &lt;<link url='http://www.xmpp.org/extensions/xep-0004.html'>http://www.xmpp.org/extensions/xep-0004.html</link>&gt;.</note>" >
<!ENTITY xep0008 "<span class='ref'>IQ-Based Avatars</span> <note>XEP-0008: IQ-Based Avatars &lt;<link url='http://www.xmpp.org/extensions/xep-0008.html'>http://www.xmpp.org/extensions/xep-0008.html</link>&gt;.</note>" >
<!ENTITY xep0009 "<span class='ref'>Jabber-RPC</span> <note>XEP-0009: Jabber-RPC &lt;<link url='http://www.xmpp.org/extensions/xep-0009.html'>http://www.xmpp.org/extensions/xep-0009.html</link>&gt;.</note>" >
<!ENTITY xep0011 "<span class='ref'>Jabber Browsing</span> <note>XEP-0011: Jabber Browsing &lt;<link url='http://www.xmpp.org/extensions/xep-0011.html'>http://www.xmpp.org/extensions/xep-0011.html</link>&gt;.</note>" >
<!ENTITY xep0012 "<span class='ref'>Last Activity</span> <note>XEP-0012: Last Activity &lt;<link url='http://www.xmpp.org/extensions/xep-0012.html'>http://www.xmpp.org/extensions/xep-0012.html</link>&gt;.</note>" >
<!ENTITY xep0013 "<span class='ref'>Flexible Offline Message Retrieval</span> <note>XEP-0013: Flexible Offline Message Retrieval &lt;<link url='http://www.xmpp.org/extensions/xep-0013.html'>http://www.xmpp.org/extensions/xep-0013.html</link>&gt;.</note>" >
<!-- XEP-0014 was rejected -->
<!-- XEP-0015 was rejected -->
<!ENTITY xep0016 "<span class='ref'>Server-Based Privacy Rules</span> <note>XEP-0016: Server-Based Privacy Rules &lt;<link url='http://www.xmpp.org/extensions/xep-0016.html'>http://www.xmpp.org/extensions/xep-0016.html</link>&gt;.</note>" >
<!-- XEP-0017 was rejected -->
<!ENTITY xep0018 "<span class='ref'>Invisible Presence</span> <note>XEP-0018: Invisible Presence &lt;<link url='http://www.xmpp.org/extensions/xep-0018.html'>http://www.xmpp.org/extensions/xep-0018.html</link>&gt;.</note>" >
<!ENTITY xep0019 "<span class='ref'>Streamlining the JIGs</span> <note>XEP-0019: Streamlining the JIGs &lt;<link url='http://www.xmpp.org/extensions/xep-0019.html'>http://www.xmpp.org/extensions/xep-0019.html</link>&gt;.</note>" >
<!ENTITY xep0020 "<span class='ref'>Feature Negotiation</span> <note>XEP-0020: Feature Negotiation &lt;<link url='http://www.xmpp.org/extensions/xep-0020.html'>http://www.xmpp.org/extensions/xep-0020.html</link>&gt;.</note>" >
<!ENTITY xep0021 "<span class='ref'>Jabber Event Notification Service</span> <note>XEP-0021: Jabber Event Notification Service &lt;<link url='http://www.xmpp.org/extensions/xep-0021.html'>http://www.xmpp.org/extensions/xep-0021.html</link>&gt;.</note>" >
<!ENTITY xep0022 "<span class='ref'>Message Events</span> <note>XEP-0022: Message Events &lt;<link url='http://www.xmpp.org/extensions/xep-0022.html'>http://www.xmpp.org/extensions/xep-0022.html</link>&gt;.</note>" >
<!ENTITY xep0023 "<span class='ref'>Message Expiration</span> <note>XEP-0023: Message Expiration &lt;<link url='http://www.xmpp.org/extensions/xep-0023.html'>http://www.xmpp.org/extensions/xep-0023.html</link>&gt;.</note>" >
<!ENTITY xep0024 "<span class='ref'>Publish/Subscribe</span> <note>XEP-0024: Publish/Subscribe &lt;<link url='http://www.xmpp.org/extensions/xep-0024.html'>http://www.xmpp.org/extensions/xep-0024.html</link>&gt;.</note>" >
<!ENTITY xep0025 "<span class='ref'>Jabber HTTP Polling</span> <note>XEP-0025: Jabber HTTP Polling &lt;<link url='http://www.xmpp.org/extensions/xep-0025.html'>http://www.xmpp.org/extensions/xep-0025.html</link>&gt;.</note>" >
<!ENTITY xep0026 "<span class='ref'>Internationalization</span> <note>XEP-0026: Internationalization &lt;<link url='http://www.xmpp.org/extensions/xep-0026.html'>http://www.xmpp.org/extensions/xep-0026.html</link>&gt;.</note>" >