1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-24 10:12:19 -05:00
xeps/xep-0092.xml

115 lines
4.3 KiB
XML
Raw Normal View History

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE jep SYSTEM '../jep.dtd' [
<!ENTITY % ents SYSTEM '../jep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='../jep.xsl'?>
<jep>
<header>
<title>Software Version</title>
<abstract>This JEP provides canonical documentation of the existing 'jabber:iq:version' namespace currently used within the Jabber community.</abstract>
&LEGALNOTICE;
<number>0092</number>
<status>Active</status>
<type>Historical</type>
<jig>Standards JIG</jig>
<dependencies>
<spec>XMPP Core</spec>
</dependencies>
<supersedes/>
<supersededby/>
<shortname>iq-version</shortname>
<schemaloc>
<url>http://jabber.org/protocol/iq-version/iq-version.xsd</url>
</schemaloc>
&stpeter;
<revision>
<version>1.0</version>
<date>2003-10-08</date>
<initials>psa</initials>
<remark>Per a vote of the Jabber Council, changed status to Active.</remark>
</revision>
<revision>
<version>0.1</version>
<date>2003-05-22</date>
<initials>psa</initials>
<remark>Initial version.</remark>
</revision>
</header>
<section1 topic='Introduction'>
<p>The Jabber protocols have long included a method for discovering version information about the software running at another entity's JID. This method makes use of the 'jabber:iq:version' namespace and has been documented variously in Internet-Drafts and elsewhere. Because this protocol is not required by &rfc2779;, the 'jabber:iq:version' namespace was removed from &xmppim;. This JEP fills the void for canonical documentation.</p>
</section1>
<section1 topic='Definition'>
<p>The 'jabber:iq:version' namespace provides a standard way for Jabber entities to exchange information about the software version used by the entities. The information is communicated in a request/response pair using an &lt;iq/&gt; element that contains a &lt;query/&gt; scoped by the 'jabber:iq:version' namespace. The following children of the &lt;query/&gt; are allowed in an IQ result:</p>
<ul>
<li>&lt;name/&gt; -- The natural-language name of the software. This element is REQUIRED in a result.</li>
<li>&lt;version/&gt; -- The specific version of the software. This element is REQUIRED in a result.</li>
<li>&lt;os/&gt; -- The operating system of the queried entity. This element is OPTIONAL in a result.</li>
</ul>
</section1>
<section1 topic='Examples'>
<example caption='Querying Another Entity for its Software Version'><![CDATA[
<iq
type='get'
from='romeo@montague.net/orchard'
to='juliet@capulet.com/balcony'
id='version_1'>
<query xmlns='jabber:iq:version'/>
</iq>
]]></example>
<example caption='Receiving a Reply Regarding Software Version'><![CDATA[
<iq
type='result'
to='romeo@montague.net/orchard'
from='juliet@capulet.com/balcony'
id='version_1'>
<query xmlns='jabber:iq:version'>
<name>Exodus</name>
<version>0.7.0.4</version>
<os>Windows-XP 5.01.2600</os>
</query>
</iq>
]]></example>
<p>The standard error conditions described in &jep0086; apply (e.g., service unavailable if the entity does not support the namespace).</p>
</section1>
<section1 topic='Security Considerations'>
<p>There are no security features or concerns related to this proposal.</p>
</section1>
<section1 topic='IANA Considerations'>
<p>This JEP requires no interaction with &IANA;.</p>
</section1>
<section1 topic='Jabber Registrar Considerations'>
<p>The 'jabber:iq:version' namespace is registered in the protocol namespaces registry maintained by the &REGISTRAR;.</p>
</section1>
<section1 topic='XML Schema'>
<code><![CDATA[
<?xml version='1.0' encoding='UTF-8'?>
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='jabber:iq:version'
xmlns='jabber:iq:version'
elementFormDefault='qualified'>
<xs:annotation>
<xs:documentation>
The protocol documented by this schema is defined in
JEP-0092: http://www.jabber.org/jeps/jep-0092.html
</xs:documentation>
</xs:annotation>
<xs:element name='query'>
<xs:complexType>
<xs:sequence minOccurs='0'>
<xs:element name='name' type='xs:string' minOccurs='1'/>
<xs:element name='version' type='xs:string' minOccurs='1'/>
<xs:element name='os' type='xs:string' minOccurs='0'/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
]]></code>
</section1>
</jep>