<?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>Shared Notes</title>
  <abstract>A simplistic mechanism for shared notes, modeled after common stickie note applications.</abstract>
  &LEGALNOTICE;
  <number>0061</number>
  <status>Deferred</status>
  <type>Informational</type>
  <sig>Standards</sig>
  <dependencies>XMPP Core</dependencies>
  <supersedes>None</supersedes>
  <supersededby>None</supersededby>
  <shortname>Not yet assigned</shortname>
  <author>
    <firstname>Jeremie</firstname>
    <surname>Miller</surname>
    <email>jer@jabber.org</email>
    <jid>jer@jabber.org</jid>
  </author>
  <revision>
    <version>0.2</version>
    <date>2003-09-30</date>
    <initials>psa</initials>
    <remark>At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational.</remark> 
  </revision>
  <revision>
    <version>0.1</version>
    <date>2002-12-06</date>
    <initials>jer</initials>
    <remark>Initial version.</remark>
  </revision>
</header>
<section1 topic='Introduction'>
  <p>A very simple namespace contaning display hints for the content in a message.  Can be used for 
person-person collaboration, or by a service managing notes.</p>
</section1>

<section1 topic='Message Extension'>
<p>Normal messages are sent, with a sharednote namespace extending them hinting to any supporting client on 
how to display the message as a note instead.  Any changes to the note within that client should then be sent 
back to the sender, either automatically or when the user saves the note (depending on the update element, by 
default on a save action by the user).</p>

    <example caption='An Example Shared Note Message'><![CDATA[
<message from="jer@jabber.org/foo" to="stpeter@jabber.org/bar">
  <thread>1X544O</thread>
  <subject>Council Votes</subject>
  <body>Need votes from bob, tom, and jane yet for XEP-0000</body>
  <note xmlns="http://www.jabber.org/protocol/sharednote">
    <color>#001122</color>
    <bgcolor>#221100</bgcolor>
    <font>font-name</font>
    <x>%left</x>
    <y>%top</y>
    <z>#</z>
    <width>%</width>
    <height>%</height>
    <update>auto|user</update>
  </note>
</message>
    ]]></example>

<p>Any element not specified in the note should use the last known setting or client defaults, so that when a 
change is sent, only the changed elements are returned.</p>

</section1>

<section1 topic='Implementation Notes'>

<p>Each thread is a different shared note. Auto updates should use an internal client timer and batch large
changes into chunks, when the user is typing every 5-10 seconds or so.  When the user has made changes that
haven't been sent and an update comes in on the same thread the client should prompt the user with the 
changes offering to replace or save their changes.</p>

</section1>
</xep>

