[Standards] Proposed XMPP Extension: Data Element
Michael Laukner
laukner at googlemail.com
Sat Jan 12 15:47:58 CST 2008
Peter Saint-Andre wrote:
> Michael Laukner wrote:
>> Peter Saint-Andre wrote:
>>> XMPP Extensions Editor wrote:
>>>> The XMPP Extensions Editor has received a proposal for a new XEP.
>>>>
>>>> Title: Data Element
>>>>
>>>> Abstract: This document specifies a method for including small bits
>>>> of binary data in an XMPP stanza via the data: URL scheme.
>>>>
>>>> URL: http://www.xmpp.org/extensions/inbox/data-element.html
>>>
>>> See, that was easy, wasn't it? ;-)
>>>
>>> /psa
>>>
>>>
>>
>> This XEP seems to get close to what we want to achieve. A challenge for
>> the message exchange in our environment is the transmission of
>> structured information within a regular message. This structured
>> information may be geographic coordinates, date/time groups, or a
>> references to an data object, for example.
>
> Traditionally, we have not worried very much about the transmission of
> structured information, since XMPP is pure XML. The challenge has always
> been to include unstructured (binary) information -- a problem that this
> proposal seeks to address.
>
>> To be able to embed various structured information in a message, the
>> message shall contain a "SmartTag". This "SmartTag" shall be as close to
>> text as "Emoticons" are, but structured enough for enhanced clients to
>> make some sense out of it.
>
> OK. So basically you want a way to include your structured data in the
> message stanza but define a convention for referring to it in the
> plaintext message body. Correct?
>
>> The example below was drafted before knowing the Data Element XEP:
>>
>> <message
>> to="juliet at example.com/balcony"
>> from="romeo at example.net"
>> type="chat">
>> <body>Juliet, I am at _1[47.8N,9.3E] and feeling kind of dizzy!
>> You can find my new picture here _2[PIC-DB,4711].
>> </body>
>> <TagList xmlns="urn:xmpptag">
>> <Tag ref="_1">
>> <GeoPosition2D xmlns="urn:common">
>> <Latitude units="degrees">47.8123</Latitude>
>> <Longitude units="degrees">9.2947</Longitude>
>> </GeoPosition2D>
>> </Tag>
>> <Tag ref="_2">
>> <DRef libraryId="PIC-DB" productId="4711"/>
>> </Tag>
>> </TagList>
>> </message>
>
> Hmm. We could use the same convention we're talking about using in
> XHTML-IM, i.e., the cid: URL scheme. So your message would end up
> looking like this perhaps:
>
> <message
> to="juliet at example.com/balcony"
> from="romeo at example.net/orchard"
> type="chat">
> <body>Juliet, I am at 47.8N,9.3E and feeling kind of dizzy!
> You can find my new picture here.
> </body>
> <html xmlns='http://jabber.org/protocol/xhtml-im'>
> <body xmlns='http://www.w3.org/1999/xhtml'>
> <p>Juliet, I am at <a href='cid:refcid1'>47.8N,9.3E</a>
> and feeling kind of dizzy! You can find my new picture
> <a href='cid:cidref2'>here</a>.</p>
> </body>
> </html>
> <TagList xmlns="urn:xmpptag">
> <Tag ref="cidref1">
> <GeoPosition2D xmlns="urn:common">
> <Latitude units="degrees">47.8123</Latitude>
> <Longitude units="degrees">9.2947</Longitude>
> </GeoPosition2D>
> </Tag>
> <Tag ref="cidref2">
> <DRef libraryId="PIC-DB" productId="4711"/>
> </Tag>
> </TagList>
> </message>
>
> I'm not quite seeing the need for the <TagList/> element. Why not just
> include the markup for each attached data as an extension (it could be
> MathML, SVG, geodata, or whatever -- each of those has its own special
> namespace) instead of designing a generic "manifest" format?
>
>> Could this XEP be designed to support more than just MIME-types???
>
> It *could*, but I don't quite see the need yet. XMPP can handle all
> sorts of structured data. All that you seem to need is a way to refer to
> that structured data from within the message body, and cid: URLs may
> give you that.
>
>> i.e. geo data could be encoded using Geo URI:
>>
>> http://www.ietf.org/internet-drafts/draft-mayrhofer-geo-uri-01.txt
>>
>> 'geo' URIs could (like any other URI scheme) also be embedded as
>> hyperlinks in web pages. A Hyper Text Markup Language (HTML) FIXME:
>> ref snippet with such a hyperlink could look like:
>>
>> <p>one of Vienna's most popular sights is the <a href=' geo:
>> FIXME,FIXME,FIXME'>St. Stephans Cathedral</a>
>>
>>
>> In case of XMPP:
>>
>> <message
>> to="juliet at example.com/balcony"
>> from="romeo at example.net"
>> type="chat">
>> <body>Juliet, I am at geo:47.123,9.3 and feeling kind of dizzy!
>> </body>
>> <data xmlns='http:://www.xmpp.org/extensions/xep-xxxx.html#ns'
>> alt='A spot'
>> cid='f81d4fae-7dec-11d0-a765-00a0c91e6bf6 at shakespeare.lit'
>> uri='geo'>
>> FIXME,FIXME,FIXME
>> </data>
>> </message>
>
> Er, don't you really want this...?
>
> <message
> to="juliet at example.com/balcony"
> from="romeo at example.net/orchard"
> type="chat">
> <body>
> Juliet, I am at 47.8N,9.3E and feeling kind of dizzy!
> </body>
> <html xmlns='http://jabber.org/protocol/xhtml-im'>
> <body xmlns='http://www.w3.org/1999/xhtml'>
> <p>
> Juliet, I am at <a href='geo:some-geo-uri'>47.8N,9.3E</a>
> and feeling kind of dizzy!
> </p>
> </body>
> </html>
> </message>
This message supports the consumer side. We can render the URI nicely as
an image button and load the map application, but our end-nodes may also
be producer. In this case we want to attach the geo-data directly (as
gml, kml, geopriv) to a message, store them in the database on the
server and send the URI to the MUC participants.
>
> Now, whether the recipient supports the geo: URI scheme is another
> matter. But I don't see a good reason to complicate the data element
> when we already have a way to include URIs -- it's called XHTML-IM.
>
> Peter
>
More information about the Standards
mailing list