mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-15 22:05:01 -05:00
169 lines
42 KiB
XML
169 lines
42 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%ents;
|
|
]>
|
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
|
<xep>
|
|
<header>
|
|
<title>Binary XMPP</title>
|
|
<abstract>This specification defines Binary XMPP, an obviously superior representation of the Extensible Messaging and Presence Protocol (XMPP).</abstract>
|
|
&LEGALNOTICE;
|
|
<number>0239</number>
|
|
<status>Active</status>
|
|
<type>Humorous</type>
|
|
<sig>Standards</sig>
|
|
<approver>Council</approver>
|
|
<dependencies>
|
|
<spec>XMPP Core</spec>
|
|
</dependencies>
|
|
<supersedes/>
|
|
<supersededby/>
|
|
<shortname>N/A</shortname>
|
|
<author>
|
|
<firstname>Pedro</firstname>
|
|
<surname>Melo</surname>
|
|
<email>011011010110010101101100011011110100000001110011011010010110110101110000011011000110100101100011011010010110010001100001011001000110010100101110011011110111001001100111</email>
|
|
<jid>011011010110010101101100011011110100000001110011011010010110110101110000011011000110100101100011011010010110010001100001011001000110010100101110011011110111001001100111</jid>
|
|
</author>
|
|
<author>
|
|
<firstname>Peter</firstname>
|
|
<surname>Saint-Andre</surname>
|
|
<email>011100110111010001110000011001010111010001100101011100100100000001101010011000010110001001100010011001010111001000101110011011110111001001100111</email>
|
|
<jid>011100110111010001110000011001010111010001100101011100100100000001101010011000010110001001100010011001010111001000101110011011110111001001100111</jid>
|
|
</author>
|
|
<author>
|
|
<firstname>Fabio</firstname>
|
|
<surname>Forno</surname>
|
|
<email>011001100110000101100010011010010110111100101110011001100110111101110010011011100110111101000000011001110110110101100001011010010110110000101110011000110110111101101101</email>
|
|
<jid>011001100110011001000000011010100110000101100010011000100110010101110010001011100110001001101100011101010110010101101110011001000110111100101110011000110110111101101101</jid>
|
|
</author>
|
|
<revision>
|
|
<version>1.0</version>
|
|
<date>2008-04-01</date>
|
|
<initials>pm/psa/ff</initials>
|
|
<remark><p>April Fools!</p></remark>
|
|
</revision>
|
|
</header>
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p>Everyone knows that binary data encodings are much more efficient than the Extensible Markup Language (XML). Given that XMPP is an application profile of XML, it is a wonder that XMPP works at all! Clearly, XMPP would benefit from a binary representation. Therefore, this specification defines Binary XMPP.</p>
|
|
</section1>
|
|
<section1 topic='Protocol' anchor='protocol'>
|
|
<p>&xmppcore; defines the traditional representation of XMPP. For instance, an empty presence stanza (such as might be provided on login) is as follows:</p>
|
|
<example caption='Traditional XMPP stanza'><![CDATA[
|
|
<presence/>
|
|
]]></example>
|
|
<p>That string can be represented in binary as follows:</p>
|
|
<example caption='Binary representation'><![CDATA[
|
|
0011110001110000011100100110010101110011011001010110111001100011011001010010111100111110
|
|
]]></example>
|
|
<p>The bit sequence is therefore represented in Binary XMPP as follows (line breaks are provided only for the purpose of readability):</p>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/>
|
|
<zero/><one/><one/><one/><zero/><zero/><zero/><zero/>
|
|
<zero/><one/><one/><one/><zero/><zero/><one/><zero/>
|
|
<zero/><one/><one/><zero/><zero/><one/><zero/><one/>
|
|
<zero/><one/><one/><one/><zero/><zero/><one/><one/>
|
|
<zero/><one/><one/><zero/><zero/><one/><zero/><one/>
|
|
<zero/><one/><one/><zero/><one/><one/><one/><zero/>
|
|
<zero/><one/><one/><zero/><zero/><zero/><one/><one/>
|
|
<zero/><one/><one/><zero/><zero/><one/><zero/><one/>
|
|
<zero/><zero/><one/><zero/><one/><one/><one/><one/>
|
|
<zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<p>This is an obvious improvement over the traditional representation.</p>
|
|
<p>It might be objected that the Binary XMPP representation requires a large number of XML elements. However, because all data is represented using only <zero/> and <one/>, the protocol can be significantly compressed using the standard ZLIB compression algorithm as defined in &rfc1950;, which SHOULD be enabled by default on the bxmpp port. Evidence from preliminary testing indicates that compression of Binary XMPP results in a representation less than 2% of the original size!</p>
|
|
<p>As a further simplification, Binary XMPP gets rid of the complicated stream negotiation process defined in RFC 3920. Instead, if a server supports Binary XMPP it advertises a special DNS SRV record _bxmpp._tcp in accordance with &rfc2782;. Furthermore, only one record is needed, thus saving precious port space. The RECOMMENDED port for Binary XMPP communication is 10110, but any port MAY be used.</p>
|
|
<p>To start a Binary XMPP stream, the sender simply connects via TCP at the advertised port and starts sending <zero/> and <one/> elements. The lack of a stream header simplifies XML parsing, introducing further performance improvements.</p>
|
|
</section1>
|
|
<section1 topic='Examples' anchor='examples'>
|
|
<p>The following examples showcase the tremendous efficiency of Binary XMPP using a complete session between a client and a server.</p>
|
|
<example caption='Client sends initial stream header (XMPP)'><![CDATA[
|
|
<stream:stream
|
|
from='juliet@example.com'
|
|
to='example.com'
|
|
version='1.0'
|
|
xml:lang='en'
|
|
xmlns='jabber:client'
|
|
xmlns:stream='http://etherx.jabber.org/streams'>
|
|
]]></example>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<example caption='Server sends response stream header (XMPP)'><![CDATA[
|
|
<stream:stream
|
|
from='example.com'
|
|
id='t7AMCin9zjMNwQKDnplntZPIDEI='
|
|
to='juliet@example.com'
|
|
version='1.0'
|
|
xml:lang='en'
|
|
xmlns='jabber:client'
|
|
xmlns:stream='http://etherx.jabber.org/streams'>
|
|
]]></example>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<example caption='Server sends stream features (XMPP)'><![CDATA[
|
|
<stream:features>
|
|
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'>
|
|
<required/>
|
|
</starttls>
|
|
</stream:features>
|
|
]]></example>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<example caption='Client sends STARTTLS command to server'><![CDATA[
|
|
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
|
|
]]></example>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<example caption='Server informs client that it is allowed to proceed'><![CDATA[
|
|
<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
|
|
]]></example>
|
|
<example caption='Binary XMPP representation'><![CDATA[
|
|
<zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><zero/><zero/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><one/><one/><one/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><zero/><zero/><one/><zero/><one/><one/><zero/><zero/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><zero/><one/><one/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><one/><one/><one/><one/><zero/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><zero/><zero/><zero/><zero/><one/><zero/><one/><one/><zero/><one/><zero/><one/><one/><one/><zero/><one/><zero/><zero/><zero/><one/><one/><zero/><one/><one/><zero/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><one/><zero/><zero/><one/><zero/><zero/><one/><one/><one/><zero/><zero/><one/><zero/><one/><one/><one/><one/><zero/><zero/><one/><one/><one/><one/><one/><zero/>
|
|
]]></example>
|
|
<p>And so on. Much more efficient, eh?</p>
|
|
</section1>
|
|
<section1 topic='Internationalization Considerations' anchor='i18n'>
|
|
<p>The <zero/> and <one/> elements use English-language words as the element names. Clearly it would have been preferable to define an i18n-friendly binding, such that German-language applications could encode Binary XMPP using the <null/> and <eins/> elements, Greek-language applications could use the <μηδέν/> and <ἑνα/> elements, etc. Flexibility regarding internationalization of the element names may be added in Binary XMPP 2.0.</p>
|
|
</section1>
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>Because it is simply an alternative representation of XMPP, Binary XMPP inherits all of the security characteristics of XMPP (the good, the bad, and the ugly).</p>
|
|
<p>Use of port 10110 is obviously secure, since 10110 in base 2 is 22 in base 10, the same default port as Secure Shell (see &rfc4251;).</p>
|
|
</section1>
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>The ®ISTRAR; shall work with &IANA; to register "bxmpp" as a keyword for port 10111.</p>
|
|
</section1>
|
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
|
<p>The XMPP Registrar shall include 'urn:xmpp:bxmpp' in its registry of protocol namespaces (see &NAMESPACES;).</p>
|
|
</section1>
|
|
<section1 topic='XML Schema' anchor='schema'>
|
|
<code><![CDATA[
|
|
<?xml version='1.0' encoding='UTF-8'?>
|
|
|
|
<xs:schema
|
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
|
targetNamespace='urn:xmpp:bxmpp'
|
|
xmlns='urn:xmpp:bxmpp'
|
|
elementFormDefault='qualified'>
|
|
|
|
<xs:element name='one' type='empty'/>
|
|
<xs:element name='zero' type='empty'/>
|
|
|
|
<xs:simpleType name='empty'>
|
|
<xs:restriction base='xs:string'>
|
|
<xs:enumeration value=''/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|
|
]]></code>
|
|
</section1>
|
|
<section1 topic='Acknowledgements' anchor='ack'>
|
|
<p>Thanks to Kevin Smith for his feedback.</p>
|
|
</section1>
|
|
</xep>
|