mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-29 04:32:23 -05:00
8cf8cce8dc
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1623 4b5297f7-1745-476d-ba37-a9c6900126ab
425 lines
25 KiB
XML
425 lines
25 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>Data Element</title>
|
|
<abstract>This specification defines an XMPP protocol extension for including small bits of binary data in an XML stanza.</abstract>
|
|
&LEGALNOTICE;
|
|
<number>0231</number>
|
|
<status>Experimental</status>
|
|
<type>Standards Track</type>
|
|
<sig>Standards</sig>
|
|
<approver>Council</approver>
|
|
<dependencies>
|
|
<spec>XMPP Core</spec>
|
|
<spec>RFC 2045</spec>
|
|
<spec>RFC 2111</spec>
|
|
<spec>RFC 4648</spec>
|
|
</dependencies>
|
|
<supersedes/>
|
|
<supersededby/>
|
|
<shortname>NOT YET ASSIGNED</shortname>
|
|
&stpeter;
|
|
<revision>
|
|
<version>0.1</version>
|
|
<date>2008-01-30</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Initial published version.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.4</version>
|
|
<date>2008-01-29</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Separately described service discovery feature for inclusion of the data element in file previews.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.3</version>
|
|
<date>2007-12-27</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Described use cases for previewing data to be exchanged in file transfers and for inclusion of media information in data forms.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.2</version>
|
|
<date>2007-12-18</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Changed syntax to not use data: URL scheme; added cid and type attributes; described use cases for messaging and data retrieval.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.1</version>
|
|
<date>2007-11-09</date>
|
|
<initials>psa</initials>
|
|
<remark><p>First draft.</p></remark>
|
|
</revision>
|
|
</header>
|
|
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p>Sometimes it is desirable to include a small bit of binary data in an XMPP stanza. Typical use cases might be inclusion of an icon or emoticon in a message, a thumbnail in a file transfer request, a rasterized image in a whiteboarding session, or a small bit of media in a data form. At present, there is no lightweight method for including such data in an XMPP stanza, since existing methods (e.g., &xep0047;) are designed for larger blobs of data and therefore require some form of negotiation (e.g., via &xep0096; or &xep0166;). Therefore, this document specifies just such a lightweight method, using a <data/> element that provides semantics similar to the data: URL scheme defined in &rfc2397;.</p>
|
|
</section1>
|
|
|
|
<section1 topic='Format' anchor='format'>
|
|
<p>The format for including binary data is straightforward: the data is encapsulated as the XML character data of a <data/> element, where the data MUST be encoded as Base64 in accordance with Section 4 of &rfc4648; (note: the Base64 output MUST NOT include whitespace and MUST set the number of pad bits to zero).</p>
|
|
<p>The <data/> element SHOULD be used only to encapsulate small bits of binary data and SHOULD NOT be used for large data transfers. Naturally the definition of "small" and "large" is rather loose. In general, it is recommended that the data should not be more than 4 kilobytes and that dedicated file transfer methods should be used for exchanging blobs of data larger than 4 kilobytes. Naturally, implementations or deployments may impose their own limits.</p>
|
|
<p>The following attributes are defined for the <data/> element.</p>
|
|
<table caption='Defined Attributes'>
|
|
<tr>
|
|
<th>Attribute</th>
|
|
<th>Description</th>
|
|
<th>Inclusion</th>
|
|
</tr>
|
|
<tr>
|
|
<td>alt</td>
|
|
<td>A human-readable description of the data.</td>
|
|
<td>RECOMMENDED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>cid</td>
|
|
<td>A Content-ID that can be mapped to a cid: URL as specified in &rfc2111;.</td>
|
|
<td>RECOMMENDED</td>
|
|
</tr>
|
|
<tr>
|
|
<td>type</td>
|
|
<td>The MIME type of the data (e.g., "image/png") as described in &rfc2045;.</td>
|
|
<td>REQUIRED</td>
|
|
</tr>
|
|
</table>
|
|
<p>The following example illustrates the format (line endings are provided for readability only).</p>
|
|
<example caption='Data element format'><![CDATA[
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
alt='A spot'
|
|
cid='f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'
|
|
type='image/png'>
|
|
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
|
|
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
|
|
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
|
|
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
|
|
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
|
|
vr4MkhoXe0rZigAAAABJRU5ErkJggg==
|
|
</data>
|
|
]]></example>
|
|
</section1>
|
|
|
|
<section1 topic='Use Cases' anchor='usecases'>
|
|
<section2 topic='Messaging' anchor='message'>
|
|
<p>The <data/> element can be used in conjunction with &xep0071; and the cid: URL scheme to point to binary data that is provided in-band within a &MESSAGE; stanza.</p>
|
|
<example caption='A message with included data'><![CDATA[
|
|
<message from='ladymacbeth@shakespeare.lit/castle'
|
|
to='macbeth@chat.shakespeare.lit'
|
|
type='groupchat'>
|
|
<body>Yet here's a spot.</body>
|
|
<html xmlns='http://jabber.org/protocol/xhtml-im'>
|
|
<body xmlns='http://www.w3.org/1999/xhtml'>
|
|
<p>
|
|
Yet here's a spot.
|
|
<img alt='A spot'
|
|
src='cid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'/>
|
|
</p>
|
|
</body>
|
|
</html>
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
alt='A spot'
|
|
cid='f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'
|
|
type='image/png'>
|
|
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
|
|
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
|
|
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
|
|
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
|
|
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
|
|
vr4MkhoXe0rZigAAAABJRU5ErkJggg==
|
|
</data>
|
|
</message>
|
|
]]></example>
|
|
<p>Once the data is provided, a subsequent message in the same session can refer to the data again without including it.</p>
|
|
<example caption='A message with referenced data'><![CDATA[
|
|
<message from='ladymacbeth@shakespeare.lit/castle'
|
|
to='macbeth@chat.shakespeare.lit'
|
|
type='groupchat'>
|
|
<body>Out, damned spot!</body>
|
|
<html xmlns='http://jabber.org/protocol/xhtml-im'>
|
|
<body xmlns='http://www.w3.org/1999/xhtml'>
|
|
<p>
|
|
Out damned spot!
|
|
<img alt='A spot'
|
|
src='cid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'/>
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</message>
|
|
]]></example>
|
|
<p>If the receiving entity has not cached the data, it can request the data as described in the next section.</p>
|
|
</section2>
|
|
|
|
<section2 topic='Retrieving Data' anchor='retrieve'>
|
|
<p>Data can be requested and transferred using the XMPP &IQ; stanza type by making reference to the 'cid' of the data to be retrieved. In particular, the requesting entity can request data by sending an IQ-get containing an empty <data/> element with a 'cid' attribute.</p>
|
|
<example caption='Requesting data'><![CDATA[
|
|
<iq from='doctor@shakespeare.lit/pda'
|
|
id='get-data-1'
|
|
to='gentlewoman@shakespeare.lit/phone'
|
|
type='get'>
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
cid='f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'/>
|
|
</iq>
|
|
]]></example>
|
|
<p>The responding entity then would either return an error (e.g., ¬found; if it does not have data matching the Content-ID) or return the data.</p>
|
|
<example caption='Returning data'><![CDATA[
|
|
<iq from='gentlewoman@shakespeare.lit/phone'
|
|
id='get-data-1'
|
|
to='doctor@shakespeare.lit/pda'
|
|
type='result'>
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
alt='A spot'
|
|
cid='f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'
|
|
type='image/png'>
|
|
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
|
|
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
|
|
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
|
|
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
|
|
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
|
|
vr4MkhoXe0rZigAAAABJRU5ErkJggg==
|
|
</data>
|
|
</iq>
|
|
]]></example>
|
|
<p>This specification does not place limits on the entities from which data can be requested. In particular, such an entity need not be the "owner" of the data (e.g., it could be a peer in a chatroom or whiteboarding session).</p>
|
|
<p>In addition, bits of data could be hosted by XMPP servers, distributed via &xep0060; nodes, or included in data collections that are available via HTTP (e.g., emoticon sets). Such data could be identified by the value of the 'cid' attribute, but methods for specifying those values are out of scope for this specification.</p>
|
|
</section2>
|
|
|
|
<section2 topic='Data Form' anchor='form'>
|
|
<p>&xep0221; describes how to include a media element in &xep0004;, e.g. for the purpose of placing a human-viewable "CAPTCHA" in a form that is used for &xep0158; or &xep0077;. The <media/> element described in <cite>XEP-0221</cite> contains one or more <uri/> elements (which point to locations where the media can be downloaded, e.g. via HTTP) as well as a <data/> element that includes the data itself. The proposed <media/> element could be redefined to contain a <data/> element as described herein and shown in the following example.</p>
|
|
<example caption='Audio Media Element'><![CDATA[
|
|
<media xmlns='http://www.xmpp.org/extensions/xep-0221.html#ns'>
|
|
<uri type='audio/x-wav'>http://victim.example.com/challenges/speech.wav?F3A6292C</uri>
|
|
<uri type='audio/ogg-speex'>http://victim.example.com/challenges/speech.ogg?F3A6292C</uri>
|
|
<uri type='audio/mpeg'>http://victim.example.com/challenges/speech.mp3?F3A6292C</uri>
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
alt='An audio file'
|
|
type='audio/x-wav'>
|
|
[ ... base64-encoded-audio ... ]
|
|
</data>
|
|
</media>
|
|
]]></example>
|
|
<p>The media could then be included in a data form.</p>
|
|
</section2>
|
|
|
|
<section2 topic='File Transfer Preview' anchor='preview'>
|
|
<p>A previous proposal <note>See <<link url='http://www.xmpp.org/extensions/inbox/file-preview.html'>http://www.xmpp.org/extensions/inbox/file-preview.html</link>>.</note> described a method for including a thumbnail or file preview in a file transfer request. Such a preview can be included using the <data/> element, as shown below. However, a preview SHOULD not be included unless the receiving entity advertises (via &xep0030; or &xep0115;) support for the "urn:xmpp:tmp:file-preview" service discovery feature &NSNOTE;.</p>
|
|
<example caption='File transfer offer with preview'><![CDATA[
|
|
<iq from='romeo@montague.lit/home'
|
|
id='offer1'
|
|
to='juliet@capulet.com/chamber'
|
|
type='set'>
|
|
<si xmlns='http://jabber.org/protocol/si'
|
|
profile='http://jabber.org/protocol/si/profile/file-transfer'
|
|
id='s5b_46e78e4a0ddacc74' >
|
|
<file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
|
|
size='330527'
|
|
name='image.png'>
|
|
<data xmlns='urn:xmpp:tmp:data-element'
|
|
alt='There be dragons!'
|
|
type='image/png'>
|
|
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
|
|
5v4/R2f0swq2hnQAAAAASUVORK5CYII=
|
|
</data>
|
|
<range/>
|
|
</file>
|
|
<feature xmlns='http://jabber.org/protocol/feature-neg'>
|
|
<x xmlns='jabber:x:data' type='form'>
|
|
<field var='stream-method' type='list-single'>
|
|
<option><value>http://jabber.org/protocol/bytestreams</value></option>
|
|
<option><value>http://jabber.org/protocol/ibb</value></option>
|
|
</field>
|
|
</x>
|
|
</feature>
|
|
</si>
|
|
</iq>
|
|
]]></example>
|
|
</section2>
|
|
|
|
</section1>
|
|
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>The ability to include arbitrary binary data implies that it is possible to send scripts, applets, images, and executable code, which may be potentially harmful. To reduce the risk of such exposure, an implementation MAY choose to not display or process such data but instead either completely ignore the data, show only the value of the 'alt' attribute, or prompt a human user for approval (either explicitly via user action or implicitly via a list of approved entities from whom the user will accept binary data without per-event approval).</p>
|
|
</section1>
|
|
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>This document requires no interaction with &IANA;.</p>
|
|
</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 namespace shall be "urn:xmpp:tmp:data-element"; upon advancement of this specification, the ®ISTRAR; shall issue a permanent namespace in accordance with the process defined in Section 4 of &xep0053;.</p>
|
|
</section2>
|
|
<section2 topic='Service Discovery Features' anchor='registrar-features'>
|
|
<p>If an entity is willing to accept data elements in file transfer requests for the purpose of previewing the file to be sent, it SHOULD advertise support for the "urn:xmpp:tmp:file-preview" feature.</p>
|
|
<p>The registry submission is as follows.</p>
|
|
<code caption='Registry Submission'><![CDATA[
|
|
<var>
|
|
<name>urn:xmpp:tmp:file-preview</name>
|
|
<desc>Willingness to accept data elements to preview file transfers</desc>
|
|
<doc>XEP-0230</doc>
|
|
</var>
|
|
]]></code>
|
|
</section2>
|
|
</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:tmp:data-element'
|
|
xmlns='urn:xmpp:tmp:data-element'
|
|
elementFormDefault='qualified'>
|
|
|
|
<xs:element name='data'>
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base='xs:base64Binary'>
|
|
<xs:attribute name='alt' type='xs:string' use='optional'/>
|
|
<xs:attribute name='cid' type='xs:string' use='optional'/>
|
|
<xs:attribute name='type' type='xs:string' use='required'/>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
</xs:schema>
|
|
]]></code>
|
|
</section1>
|
|
|
|
<section1 topic='Acknowledgements' anchor='ack'>
|
|
<p>Thanks to Rachel Blackman, Dave Cridland, and Tomasz Sterna for their feedback.</p>
|
|
</section1>
|
|
|
|
</xep>
|