<p>Because XML vCards (see &xep0054;) are now actively used for storing avatars (see &xep0153;), the ability to retrieve only portions of a vCard has become desirable. This protocol can eliminate unnecessary bandwidth usage when larger elements of a vCard are not needed.</p>
<p>Any entity supporting this extension MUST be prepared to accept more fields than were requested, in case the target does not support this extension. A compliant target SHOULD exclude any fields listed in the filter element. In the event that the filter element does not exist or is empty, the target MUST return the entire vCard as it would without this extension.</p>
</section1>
<section1topic='Use Cases'anchor='usecases'>
<section2topic="Retrieving Another User's vCard Without The JABBERID Element">
<p>To illustrate the functionality of this protocol, we will first request a standard vCard. As shown in <cite>XEP-0054</cite>, a user may view another user's vCard by sending an IQ of type "get" to the other user's bare JID. A compliant server MUST return the vCard to the requestor and not forward the IQ to the requestee's connected resource.</p>
<p>A user may request that specific portions of another user's vCard be excluded by including the requested field(s) inside a filter element qualified by the 'vcard-temp-filter' namespace, inside the vCard element.</p>
<examplecaption="Requesting Another User's vCard Without the JABBERID Element"><![CDATA[
<iqto='jer@jabber.org'
from='stpeter@jabber.org/home'
type='get'
id='v2'>
<vCardxmlns='vcard-temp'>
<filterxmlns='vcard-temp-filter'>
<JABBERID/>
</filter>
</vCard>
</iq>
]]></example>
<p>The server should then return all available fields from the other user's vCard except for those listed in the filter stanza:</p>
<examplecaption="Receiving Fields From Another User's vCard"><![CDATA[