mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-22 01:02:17 -05:00
1.0 published
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1354 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
e23c2c97aa
commit
14020b583c
98
xep-0084.xml
98
xep-0084.xml
@ -10,7 +10,7 @@
|
|||||||
<abstract>This document defines an XMPP protocol extension for exchanging user avatars.</abstract>
|
<abstract>This document defines an XMPP protocol extension for exchanging user avatars.</abstract>
|
||||||
&LEGALNOTICE;
|
&LEGALNOTICE;
|
||||||
<number>0084</number>
|
<number>0084</number>
|
||||||
<status>Proposed</status>
|
<status>Draft</status>
|
||||||
<type>Standards Track</type>
|
<type>Standards Track</type>
|
||||||
<sig>Standards</sig>
|
<sig>Standards</sig>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -24,11 +24,25 @@
|
|||||||
<spec>XEP-0153</spec>
|
<spec>XEP-0153</spec>
|
||||||
</supersedes>
|
</supersedes>
|
||||||
<supersededby/>
|
<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;
|
&stpeter;
|
||||||
&pgmillard;
|
&pgmillard;
|
||||||
&temas;
|
&temas;
|
||||||
&xvirge;
|
&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>
|
<revision>
|
||||||
<version>0.12</version>
|
<version>0.12</version>
|
||||||
<date>2007-08-31</date>
|
<date>2007-08-31</date>
|
||||||
@ -141,9 +155,9 @@
|
|||||||
<example caption='Publishing avatar data to data node'><![CDATA[
|
<example caption='Publishing avatar data to data node'><![CDATA[
|
||||||
<iq type='set' from='juliet@capulet.lit/chamber' id='publish1'>
|
<iq type='set' from='juliet@capulet.lit/chamber' id='publish1'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
|
<data xmlns='urn:xmpp:avatar:data'>
|
||||||
qANQR1DBwU4DX7jmYZnncm...
|
qANQR1DBwU4DX7jmYZnncm...
|
||||||
</data>
|
</data>
|
||||||
</item>
|
</item>
|
||||||
@ -162,9 +176,9 @@
|
|||||||
<example caption='Publishing avatar metadata'><![CDATA[
|
<example caption='Publishing avatar metadata'><![CDATA[
|
||||||
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
|
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<info bytes='12345'
|
<info bytes='12345'
|
||||||
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
||||||
height='64'
|
height='64'
|
||||||
@ -180,9 +194,9 @@
|
|||||||
<example caption='Publishing avatar metadata'><![CDATA[
|
<example caption='Publishing avatar metadata'><![CDATA[
|
||||||
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
|
<iq type='set' from='juliet@capulet.lit/chamber' id='publish2'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<info bytes='23456'
|
<info bytes='23456'
|
||||||
height='64'
|
height='64'
|
||||||
id='222f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
id='222f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
||||||
@ -197,13 +211,13 @@
|
|||||||
]]></example>
|
]]></example>
|
||||||
</section2>
|
</section2>
|
||||||
<section2 topic='Subscribers Receive Metadata Notification' anchor='process-subnotify'>
|
<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[
|
<example caption='Subscribers receive avatar metadata notification'><![CDATA[
|
||||||
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
|
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
|
||||||
<event xmlns='http://jabber.org/protocol/pubsub#event'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<info bytes='12345'
|
<info bytes='12345'
|
||||||
height='64'
|
height='64'
|
||||||
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
||||||
@ -229,7 +243,7 @@
|
|||||||
to='juliet@capulet.lit'
|
to='juliet@capulet.lit'
|
||||||
id='retrieve1'>
|
id='retrieve1'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
</items>
|
</items>
|
||||||
</pubsub>
|
</pubsub>
|
||||||
@ -242,9 +256,9 @@
|
|||||||
to='romeo@montague.lit/home'
|
to='romeo@montague.lit/home'
|
||||||
id='retrieve1'>
|
id='retrieve1'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
|
<data xmlns='urn:xmpp:avatar:data'>
|
||||||
qANQR1DBwU4DX7jmYZnncm...
|
qANQR1DBwU4DX7jmYZnncm...
|
||||||
</data>
|
</data>
|
||||||
</item>
|
</item>
|
||||||
@ -261,7 +275,7 @@
|
|||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
||||||
<publish node='avatar/info/juliet@capulet.lit'>
|
<publish node='avatar/info/juliet@capulet.lit'>
|
||||||
<item>
|
<item>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<stop/>
|
<stop/>
|
||||||
</metadata>
|
</metadata>
|
||||||
</item>
|
</item>
|
||||||
@ -273,9 +287,9 @@
|
|||||||
<example caption='Subscribers receive avatar metadata notification'><![CDATA[
|
<example caption='Subscribers receive avatar metadata notification'><![CDATA[
|
||||||
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
|
<message to='romeo@montague.lit' from='juliet@capulet.lit'>
|
||||||
<event xmlns='http://jabber.org/protocol/pubsub#event'>
|
<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>
|
<item>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<stop/>
|
<stop/>
|
||||||
</metadata>
|
</metadata>
|
||||||
</item>
|
</item>
|
||||||
@ -289,16 +303,16 @@
|
|||||||
</section2>
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Protocol Syntax' anchor='proto'>
|
<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>
|
<ul>
|
||||||
<li><data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'/></li>
|
<li><data xmlns='urn:xmpp:avatar:data'/></li>
|
||||||
<li><metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'/></li>
|
<li><metadata xmlns='urn:xmpp:avatar:metadata'/></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>These are further specified below.</p>
|
<p>These are further specified below.</p>
|
||||||
<section2 topic='Data Element' anchor='proto-data'>
|
<section2 topic='Data Element' anchor='proto-data'>
|
||||||
<p>The <data/> element is used to communicate the avatar data itself, and only for the "image/png" content-type (support for which is REQUIRED).</p>
|
<p>The <data/> 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[
|
<code><![CDATA[
|
||||||
<data xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-data'>
|
<data xmlns='urn:xmpp:avatar:data'>
|
||||||
IMAGE DATA
|
IMAGE DATA
|
||||||
</data>
|
</data>
|
||||||
]]></code>
|
]]></code>
|
||||||
@ -317,7 +331,7 @@
|
|||||||
<section3 topic='Info Element' anchor='proto-info'>
|
<section3 topic='Info Element' anchor='proto-info'>
|
||||||
<p>The <info/> child element is used to communicate avatar metadata. Support for the <info/> element is REQUIRED.</p>
|
<p>The <info/> child element is used to communicate avatar metadata. Support for the <info/> element is REQUIRED.</p>
|
||||||
<code><![CDATA[
|
<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'
|
<info bytes='size-of-image-data-in-bytes'
|
||||||
height='image-height-in-pixels'
|
height='image-height-in-pixels'
|
||||||
id='SHA-1-hash-of-image-data'
|
id='SHA-1-hash-of-image-data'
|
||||||
@ -370,7 +384,7 @@
|
|||||||
<section3 topic='Pointer Element' anchor='proto-pointer'>
|
<section3 topic='Pointer Element' anchor='proto-pointer'>
|
||||||
<p>The <pointer/> 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>
|
<p>The <pointer/> 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[
|
<code><![CDATA[
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<pointer>
|
<pointer>
|
||||||
... APPLICATION-SPECIFIC DATA ...
|
... APPLICATION-SPECIFIC DATA ...
|
||||||
</pointer>
|
</pointer>
|
||||||
@ -391,7 +405,7 @@
|
|||||||
<section3 topic='Stop Element' anchor='proto-stop'>
|
<section3 topic='Stop Element' anchor='proto-stop'>
|
||||||
<p>The <stop/> child element is used to signal that avatar publishing has been disabled.</p>
|
<p>The <stop/> child element is used to signal that avatar publishing has been disabled.</p>
|
||||||
<code><![CDATA[
|
<code><![CDATA[
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<stop/>
|
<stop/>
|
||||||
</metadata>
|
</metadata>
|
||||||
]]></code>
|
]]></code>
|
||||||
@ -406,9 +420,9 @@
|
|||||||
<example caption='Publishing avatar metadata (multiple formats)'><![CDATA[
|
<example caption='Publishing avatar metadata (multiple formats)'><![CDATA[
|
||||||
<iq type='set' from='juliet@capulet.lit/chamber' id='publish3'>
|
<iq type='set' from='juliet@capulet.lit/chamber' id='publish3'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<info bytes='12345'
|
<info bytes='12345'
|
||||||
height='64'
|
height='64'
|
||||||
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
||||||
@ -445,9 +459,9 @@
|
|||||||
<example caption='Publishing avatar metadata (with pointer)'><![CDATA[
|
<example caption='Publishing avatar metadata (with pointer)'><![CDATA[
|
||||||
<iq type='set' from='juliet@capulet.lit/chamber' id='publish4'>
|
<iq type='set' from='juliet@capulet.lit/chamber' id='publish4'>
|
||||||
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
|
<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'>
|
<item id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'>
|
||||||
<metadata xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'>
|
<metadata xmlns='urn:xmpp:avatar:metadata'>
|
||||||
<info bytes='12345'
|
<info bytes='12345'
|
||||||
height='64'
|
height='64'
|
||||||
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
id='111f4b3c50d7b0df729d299bc6f8e9ef9066971f'
|
||||||
@ -485,8 +499,8 @@
|
|||||||
to='romeo@montague.lit/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='items1'>
|
id='items1'>
|
||||||
<query xmlns='http://jabber.org/protocol/disco#items'>
|
<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='urn:xmpp:avatar: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:metadata'/>
|
||||||
</query>
|
</query>
|
||||||
</iq>
|
</iq>
|
||||||
]]></example>
|
]]></example>
|
||||||
@ -515,7 +529,7 @@
|
|||||||
</section1>
|
</section1>
|
||||||
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
||||||
<section2 topic='Protocol Namespaces' anchor='ns'>
|
<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 ®ISTRAR; shall issue permanent namespaces in accordance with the process defined in Section 4 of &xep0053;.</p>
|
<p>The ®ISTRAR; includes "urn:xmpp:avatar:data" and "urn:xmpp:avatar:metadata" in its registry of protocol namespaces (see &NAMESPACES;).</p>
|
||||||
</section2>
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='XML Schema' anchor='schema'>
|
<section1 topic='XML Schema' anchor='schema'>
|
||||||
@ -525,10 +539,17 @@
|
|||||||
|
|
||||||
<xs:schema
|
<xs:schema
|
||||||
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
||||||
targetNamespace='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
|
targetNamespace='urn:xmpp:avatar:metadata'
|
||||||
xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
|
xmlns='urn:xmpp:avatar:metadata'
|
||||||
elementFormDefault='qualified'>
|
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:element name='data' type='xs:base64Binary'>
|
||||||
|
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
@ -540,10 +561,17 @@
|
|||||||
|
|
||||||
<xs:schema
|
<xs:schema
|
||||||
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
||||||
targetNamespace='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
|
targetNamespace='urn:xmpp:avatar:metadata'
|
||||||
xmlns='http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
|
xmlns='urn:xmpp:avatar:metadata'
|
||||||
elementFormDefault='qualified'>
|
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:element name='metadata'>
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:choice>
|
<xs:choice>
|
||||||
|
Loading…
Reference in New Issue
Block a user