1.0 published

git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1354 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
Peter Saint-Andre 2007-11-07 21:24:45 +00:00
parent e23c2c97aa
commit 14020b583c
1 changed files with 63 additions and 35 deletions

View File

@ -10,7 +10,7 @@
<abstract>This document defines an XMPP protocol extension for exchanging user avatars.</abstract>
&LEGALNOTICE;
<number>0084</number>
<status>Proposed</status>
<status>Draft</status>
<type>Standards Track</type>
<sig>Standards</sig>
<dependencies>
@ -24,11 +24,25 @@
<spec>XEP-0153</spec>
</supersedes>
<supersededby/>
<shortname>TO BE ASSIGNED</shortname>
<shortname>avatar</shortname>
<schemaloc>
<ns>data</ns>
<url>http://www.xmpp.org/schemas/avatar-data.xsd</url>
</schemaloc>
<schemaloc>
<ns>metadata</ns>
<url>http://www.xmpp.org/schemas/avatar-metadata.xsd</url>
</schemaloc>
&stpeter;
&pgmillard;
&temas;
&xvirge;
<revision>
<version>1.0</version>
<date>2007-11-07</date>
<initials>psa</initials>
<remark><p>Per a vote of the XMPP Council, advanced status to Draft; concurrently, the XMPP Registrar issued the urn:xmpp:avatar:data and urn:xmpp:avatar:metadata namespaces.</p></remark>
</revision>
<revision>
<version>0.12</version>
<date>2007-08-31</date>
@ -141,9 +155,9 @@
<example caption='Publishing avatar data to data node'><![CDATA[
<iq type='set' from='juliet@capulet.lit/chamber' id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<publish node='urn:xmpp:avatar:data'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<data xmlns='urn:xmpp:avatar:data'>
qANQR1DBwU4DX7jmYZnncm...
</data>
</item>
@ -162,9 +176,9 @@
<example caption='Publishing avatar metadata'><![CDATA[
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<publish node='urn:xmpp:avatar:metadata'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='12345'
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
height='64'
@ -180,9 +194,9 @@
<example caption='Publishing avatar metadata'><![CDATA[
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<publish node='urn:xmpp:avatar:metadata'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='23456'
height='64'
id='222f4b3c50d7b0df729d299bc6f8e9ef9066971f'
@ -197,13 +211,13 @@
]]></example>
</section2>
<section2 topic='Subscribers Receive Metadata Notification' anchor='process-subnotify'>
<p>The user's virtual pubsub service would then send the metadata notification to entities that have subscribed to the user's metadata node or contacts who have advertised an interest in receiving avatar metadata by including a &xep0115; feature of "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata+notify" &NSNOTE;.</p>
<p>The user's virtual pubsub service would then send the metadata notification to entities that have subscribed to the user's metadata node or contacts who have advertised an interest in receiving avatar metadata by including a &xep0115; feature of "urn:xmpp:avatar:metadata+notify".</p>
<example caption='Subscribers receive avatar metadata notification'><![CDATA[
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<items node='urn:xmpp:avatar:metadata'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='12345'
height='64'
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
@ -229,7 +243,7 @@
to='juliet@capulet.lit'
id='retrieve1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<items node='urn:xmpp:avatar:data'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
</items>
</pubsub>
@ -242,9 +256,9 @@
to='romeo@montague.lit/home'
id='retrieve1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<items node='urn:xmpp:avatar:data'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<data xmlns='urn:xmpp:avatar:data'>
qANQR1DBwU4DX7jmYZnncm...
</data>
</item>
@ -261,7 +275,7 @@
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='avatar/info/juliet@capulet.lit'>
<item>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<stop/>
</metadata>
</item>
@ -273,9 +287,9 @@
<example caption='Subscribers receive avatar metadata notification'><![CDATA[
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<items node='urn:xmpp:avatar:metadata'>
<item>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<stop/>
</metadata>
</item>
@ -289,16 +303,16 @@
</section2>
</section1>
<section1 topic='Protocol Syntax' anchor='proto'>
<p>The PEP subset of pubsub requires that there shall exist a one-to-one relationship between namespaces and nodes. Because the protocol defined herein stipulates the use of two nodes (one for avatar data and one for avatar metadata), we define two namespaces, each with a corresponding root element &NSNOTE;:</p>
<p>The PEP subset of pubsub requires that there shall exist a one-to-one relationship between namespaces and nodes. Because the protocol defined herein stipulates the use of two nodes (one for avatar data and one for avatar metadata), we define two namespaces, each with a corresponding root element:</p>
<ul>
<li>&lt;data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'/&gt;</li>
<li>&lt;metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'/&gt;</li>
<li>&lt;data xmlns='urn:xmpp:avatar:data'/&gt;</li>
<li>&lt;metadata xmlns='urn:xmpp:avatar:metadata'/&gt;</li>
</ul>
<p>These are further specified below.</p>
<section2 topic='Data Element' anchor='proto-data'>
<p>The &lt;data/&gt; element is used to communicate the avatar data itself, and only for the "image/png" content-type (support for which is REQUIRED).</p>
<code><![CDATA[
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
<data xmlns='urn:xmpp:avatar:data'>
IMAGE DATA
</data>
]]></code>
@ -317,7 +331,7 @@
<section3 topic='Info Element' anchor='proto-info'>
<p>The &lt;info/&gt; child element is used to communicate avatar metadata. Support for the &lt;info/&gt; element is REQUIRED.</p>
<code><![CDATA[
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='size-of-image-data-in-bytes'
height='image-height-in-pixels'
id='SHA-1-hash-of-image-data'
@ -370,7 +384,7 @@
<section3 topic='Pointer Element' anchor='proto-pointer'>
<p>The &lt;pointer/&gt; child element is used to point to an avatar that is not published via pubsub or HTTP, but rather is provided by a third-party service such as an online gaming system or virtual world.</p>
<code><![CDATA[
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<pointer>
... APPLICATION-SPECIFIC DATA ...
</pointer>
@ -391,7 +405,7 @@
<section3 topic='Stop Element' anchor='proto-stop'>
<p>The &lt;stop/&gt; child element is used to signal that avatar publishing has been disabled.</p>
<code><![CDATA[
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<stop/>
</metadata>
]]></code>
@ -406,9 +420,9 @@
<example caption='Publishing avatar metadata (multiple formats)'><![CDATA[
<iq type='set' from='juliet@capulet.lit/chamber' id='publish3'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<publish node='urn:xmpp:avatar:metadata'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='12345'
height='64'
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
@ -445,9 +459,9 @@
<example caption='Publishing avatar metadata (with pointer)'><![CDATA[
<iq type='set' from='juliet@capulet.lit/chamber' id='publish4'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<publish node='urn:xmpp:avatar:metadata'>
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
<metadata xmlns='urn:xmpp:avatar:metadata'>
<info bytes='12345'
height='64'
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
@ -485,8 +499,8 @@
to='romeo@montague.lit/orchard'
id='items1'>
<query xmlns='http://jabber.org/protocol/disco#items'>
<item jid='juliet@capulet.lit' node='http://www.xmpp.org/extensions/xep-0084.html#ns-data'/>
<item jid='juliet@capulet.lit' node='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'/>
<item jid='juliet@capulet.lit' node='urn:xmpp:avatar:data'/>
<item jid='juliet@capulet.lit' node='urn:xmpp:avatar:metadata'/>
</query>
</iq>
]]></example>
@ -515,7 +529,7 @@
</section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<section2 topic='Protocol Namespaces' anchor='ns'>
<p>Until this specification advances to a status of Draft, its associated namespaces shall be "http://www.xmpp.org/extensions/xep-0084.html#ns-data" and "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata"; upon advancement of this specification, the &REGISTRAR; shall issue permanent namespaces in accordance with the process defined in Section 4 of &xep0053;.</p>
<p>The &REGISTRAR; includes "urn:xmpp:avatar:data" and "urn:xmpp:avatar:metadata" in its registry of protocol namespaces (see &NAMESPACES;).</p>
</section2>
</section1>
<section1 topic='XML Schema' anchor='schema'>
@ -525,10 +539,17 @@
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
targetNamespace='urn:xmpp:avatar:metadata'
xmlns='urn:xmpp:avatar:metadata'
elementFormDefault='qualified'>
<xs:annotation>
<xs:documentation>
The protocol documented by this schema is defined in
XEP-0084: http://www.xmpp.org/extensions/xep-0084.html
</xs:documentation>
</xs:annotation>
<xs:element name='data' type='xs:base64Binary'>
</xs:schema>
@ -540,10 +561,17 @@
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
targetNamespace='urn:xmpp:avatar:metadata'
xmlns='urn:xmpp:avatar:metadata'
elementFormDefault='qualified'>
<xs:annotation>
<xs:documentation>
The protocol documented by this schema is defined in
XEP-0084: http://www.xmpp.org/extensions/xep-0084.html
</xs:documentation>
</xs:annotation>
<xs:element name='metadata'>
<xs:complexType>
<xs:choice>