This commit is contained in:
stpeter 2011-02-25 11:25:41 -07:00
parent 52fd0441e1
commit c8d9b677aa
1 changed files with 80 additions and 78 deletions

View File

@ -31,6 +31,12 @@
<jid>samizzi@cisco.com</jid>
</author>
&stpeter;
<revision>
<version>0.0.4</version>
<date>2011-02-25</date>
<initials>psa</initials>
<remark><p>Corrected some errors in the examples.</p></remark>
</revision>
<revision>
<version>0.0.3</version>
<date>2011-02-12</date>
@ -51,14 +57,14 @@
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>Since 1999, the Jabber/XMPP community has used an interim, unofficial XML representation of vCard data for personal contacts. Recently, the IETF has upgraded vCard from version 3 to version 4, and at the same time has defined an official XML format for vCard4. This document specifies an XMPP extension for use of the vCard4 XML format in XMPP systems, with the intent of obsoleting the vcard-temp format. Primarily this document defines the encapsulation method itself; secondarily it also defines transport methods and a mapping to the vcard-temp format for migration by clients and servers.</p>
<p>Since 1999, the Jabber/XMPP community has used an interim, unofficial XML representation of vCard data for personal contacts, called &xep0054;. Recently, the IETF has upgraded vCard from vCard3 to &vcardrev;, and at the same time has defined &vcardxml; as an official XML format for vCard4. This document specifies an XMPP extension for use of the vCard4 XML format in XMPP systems, with the intent of obsoleting the vcard-temp format. Primarily this document defines the encapsulation method itself; secondarily it also defines transport methods and a mapping to the vcard-temp format for migration by clients and servers.</p>
</section1>
<section1 topic='Requirements' anchor='reqs'>
<p>This specification was designed with the following documents in mind.</p>
<ol>
<li>Reuse vCard4 as defined in &vcardrev;.</li>
<li>Reuse the vCard4 XML format as defined in &vcardxml;.</li>
<li>Ensure that clients and servers can easily migrate from &xep0054; to the new encapsulation format.</li>
<li>Reuse vCard4 as defined in draft-ietf-vcarddav-vcardrev.</li>
<li>Reuse the vCard4 XML format as defined in draft-ietf-vcarddav-vcardxml.</li>
<li>Ensure that clients and servers can easily migrate from vcard-temp to the new encapsulation format.</li>
<li>Notify interested parties of changes to vCard data using standard XMPP extensions, specifically &xep0163;.</li>
<li>Enable XMPP servers to store vCard4 XML data in LDAP directories if desired.</li>
</ol>
@ -71,7 +77,7 @@
</section1>
<section1 topic='PubSub Binding' anchor='pubsub'>
<section2 topic='Location' anchor='pubsub-location'>
<p>When the &xep0163; "flavor" of XMPP publish-subscribe is used, the canonical location for a user's vCard is a pubsub node whose name is "urn:ietf:params:xml:ns:vcard-4.0". For instance, if the Shakespearean character Romeo has a JabberID of 'romeo@montague.lit' then his vCard would be located at that JID with a node of "urn:ietf:params:xml:ns:vcard-4.0".</p>
<p>When the Personal Eventing Protocol (PEP) "flavor" of XMPP publish-subscribe is used, the canonical location for a user's vCard is a pubsub node whose name is "urn:ietf:params:xml:ns:vcard-4.0". For instance, if the Shakespearean character Romeo has a JabberID of 'romeo@montague.lit' then his vCard would be located at that JID with a node of "urn:ietf:params:xml:ns:vcard-4.0".</p>
<p>When "raw" &xep0060; is used, the location is a generic publish-subscribe node that is not attached to an user's IM account.</p>
<p>Use of PEP is RECOMMENDED to simplify the process of discovering and subscribing to the vCard information.</p>
</section2>
@ -91,43 +97,41 @@
to='romeo@motague.lit'
type='set'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:ietf:param:xml:ns:vcard-4.0'>
<vcards xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Romeo Montague</text></fn>
<n>
<surname><text>Montague</text></surname>
<given><text>Romeo</text></given>
<prefix>
<text>Sir</text>
<prefix/>
<suffix/>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>15000808T1430-0500</date-time>
</anniversary>
<sex><integer>0</integer></sex>
<org>
<parameters><type>love</type></parameters>
<text>Juliet</text>
</org>
<adr>
<parameters><type>love</type></parameters>
<street><text>123 Capulet Way</text></street>
<locality><text>Verona</text></locality>
<country><text>Italy</text></country>
</adr>
<email>
<parameters><type>work</type></parameters>
<text>romeo@montague.lit</text>
</email>
<class><text>PUBLIC</text></class>
</vcard>
</vcards>
<published>2010-11-08T18:30:02Z</published>
<updated>2010-11-08T18:30:02Z</updated>
</publish>
<publish node='urn:ietf:param:xml:ns:vcard-4.0'>
<item>
<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<fn><text>Romeo Montague</text></fn>
<n>
<surname><text>Montague</text></surname>
<given><text>Romeo</text></given>
<prefix>
<text>Sir</text>
<prefix/>
<suffix/>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>15000808T1430-0500</date-time>
</anniversary>
<gender><text>male</text></gender>
<org>
<parameters><type>love</type></parameters>
<text>Juliet</text>
</org>
<adr>
<parameters><type>love</type></parameters>
<street><text>123 Capulet Way</text></street>
<locality><text>Verona</text></locality>
<country><text>Italy</text></country>
</adr>
<email>
<parameters><type>work</type></parameters>
<text>romeo@montague.lit</text>
</email>
<class><text>PUBLIC</text></class>
</vcard>
</item>
</publish>
</pubsub>
</iq>
]]></example>
@ -140,41 +144,39 @@
type='headline'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='urn:ietf:param:xml:ns:vcard-4.0'>
<vcards xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Romeo Montague</text></fn>
<n>
<surname><text>Montague</text></surname>
<given><text>Romeo</text></given>
<prefix>
<text>Sir</text>
<prefix/>
<suffix/>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>15000808T1430-0500</date-time>
</anniversary>
<sex><integer>0</integer></sex>
<org>
<parameters><type>love</type></parameters>
<text>Juliet</text>
</org>
<adr>
<parameters><type>love</type></parameters>
<street><text>123 Capulet Way</text></street>
<locality><text>Verona</text></locality>
<country><text>Italy</text></country>
</adr>
<email>
<parameters><type>work</type></parameters>
<text>romeo@montague.lit</text>
</email>
<class><text>PUBLIC</text></class>
</vcard>
</vcards>
<published>2010-05-08T18:30:02Z</published>
<updated>2010-05-08T18:30:02Z</updated>
<item id='foobar'>
<vcard xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<fn><text>Romeo Montague</text></fn>
<n>
<surname><text>Montague</text></surname>
<given><text>Romeo</text></given>
<prefix>
<text>Sir</text>
<prefix/>
<suffix/>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>15000808T1430-0500</date-time>
</anniversary>
<gender><text>male</text></gender>
<org>
<parameters><type>love</type></parameters>
<text>Juliet</text>
</org>
<adr>
<parameters><type>love</type></parameters>
<street><text>123 Capulet Way</text></street>
<locality><text>Verona</text></locality>
<country><text>Italy</text></country>
</adr>
<email>
<parameters><type>work</type></parameters>
<text>romeo@montague.lit</text>
</email>
<class><text>PUBLIC</text></class>
</vcard>
</item>
</items>
</event>
</message>
@ -188,7 +190,7 @@
from='juliet@capulet.lit/castle'
to='urn:ietf:param:xml:ns:vcard-4.0'
id='items1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<items node='urn:ietf:param:xml:ns:vcard-4.0'/>
</pubsub>
</iq>