http://wiki.synchroedit.com/index.php?title=Special:Recentchanges&days=30&feed=atom SynchroEdit - Recent changes [en] 2006-05-07T14:11:01Z Track the most recent changes to the wiki on this page. MediaWiki 1.6.3 http://wiki.synchroedit.com/index.php/The_lab The lab 2006-04-28T11:12:44Z <p></p> <p><b>New page</b></p><div>= The lab =<br /> <br /> This page contains random, most likely senseless to the uninitiated, stuff.<br /> <br /> == Converting SynchroEdit format to another format ==<br /> <br /> As a proof-of-concept, we're working on &lt;strike&gt;writing an exporting module&lt;/strike&gt; experimenting with an XSLT stylesheet that creates clean, manageable, nice looking wiki-code for MediaWiki based on SynchroEdit XHTML output. Most &quot;export-to&quot; functionality out there (that I have seen) does a poor job at producing clean results, and end up creating gook, because the chances are fairly high (or so the developers of such software believe) that noone will actually edit the source directly, for example in a HTML editing tool.<br /> <br /> This is not the case with SynchroEdit exports. In order for them to be even remotely useful, they '''must''' produce nice-looking and -formatted code, or a single editing session on a human-made document will turn it into vegetable soup. This section contains three sub-sections; xhtml, wiki source, and wiki results. The xhtml section is simply the xhtml data based on SynchroEdit. It's messy and useless, for the most part. The second section contains the same data converted into wiki-format. The third section contains the wiki-data as-is, which means MediaWiki will &quot;use&quot; it to add to this page. We will update this page periodically as we improve the underlying mechanism for exporting.<br /> <br /> Here are the pointers that we've spotted that are undesirable about this tool at this point:<br /> # &lt;strike&gt;The various bold and italic spans should be turned into using &lt;nowiki&gt;''&lt;/nowiki&gt; and &lt;nowiki&gt;'''&lt;/nowiki&gt; wrapping instead.&lt;/strike&gt;<br /> # The centered element only really wraps one single line, but ends up wrapping the remainder of the document, and nested into that is a div which left-justifies. This is a SynchroEdit optimization that must be countered (in export) or tweaked (in client code).<br /> # &lt;strike&gt;There should be a newline after the &amp;lt;/pre&amp;gt;.&lt;/strike&gt;<br /> # &lt;strike&gt;The &quot;This is some text in the H1&quot; should not begin with a space, as this turns it into preformatted, in the wiki.&lt;/strike&gt;<br /> # Seems the &amp;lt;pre&amp;gt;&lt;br&gt;data&lt;br&gt;&amp;lt;/pre&amp;gt; approach is adding an extra line to the top.<br /> <br /> === The XSLT document ===<br /> <br /> The XSLT doc used to convert the Xhtml data below into Wiki data is available from the main web site (so as to not have to mangle its tags like we have the other stuff below). ''Be warned though, this is very much an experimental learning-by-doing experience! (XSLT-gurus are heartily welcome to grok this or give advice!)''<br /> <br /> The program used to convert was xsltproc (available on most linuces, but have not investigated Win alternatives), and the command to perform the conversion was<br /> xsltproc mediawiki-xsl.xml stripped.xml<br /> where stripped.xml is the filename of the Xhtml data, obviously.<br /> <br /> Source: [http://www.synchroedit.com/extra/mediawiki-xsl.xml mediawiki-xsl.xml]<br /> <br /> === Xhtml data ===<br /> <br /> ''Don't be scared now...''<br /> <br /> &lt;pre&gt;<br /> &amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;style/&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;This is a test document.&amp;lt;br/&amp;gt;&amp;lt;h1&amp;gt;This is a test H1.&amp;lt;/h1&amp;gt;&amp;lt;br/&amp;gt;This is <br /> some text in the H1. And &amp;lt;span style=&quot;font-style: italic;&quot;&amp;gt;here is some italicised text&amp;lt;/span&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;h2&amp;gt;Here is a <br /> H2.&amp;lt;/h2&amp;gt;&amp;lt;div style=&quot;text-align: center;&quot;&amp;gt;Here's a centered area.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;div style=&quot;text-align: left;&quot;&amp;gt;And here is after <br /> the centering.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;Here is some preformated<br /> text that is formated just so<br /> that you can see it<br /> is actually not regular.<br /> &amp;lt;/pre&amp;gt;And that's &amp;lt;span style=&quot;font-weight: bold; text-decoration: underline;&quot;&amp;gt;that&amp;lt;/span&amp;gt;.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;<br /> &lt;/pre&gt;<br /> <br /> === Exported xhtml data (wiki format) ===<br /> <br /> &lt;pre&gt;<br /> This is a test document. <br /> <br /> = This is a test H1. = <br /> This is some text in the H1. And ''here is some italicised text''. <br /> <br /> == Here is a H2. == <br /> <br /> &amp;lt;center&amp;gt; <br /> Here's a centered area. <br /> &amp;lt;div style=&quot;text-align: left;&quot;&amp;gt; <br /> And here is after the centering. <br /> &amp;lt;pre&amp;gt; <br /> Here is some preformated<br /> text that is formated just so<br /> that you can see it<br /> is actually not regular.<br /> &amp;lt;/pre&amp;gt; <br /> And that's &amp;lt;u&amp;gt;'''that'''&amp;lt;/u&amp;gt;.&amp;lt;/div&amp;gt; <br /> &amp;lt;/center&amp;gt; <br /> &lt;/pre&gt;<br /> <br /> === Wiki-data as wiki-data ===<br /> <br /> This is a test document. <br /> <br /> = This is a test H1. = <br /> This is some text in the H1. And ''here is some italicised text''. <br /> <br /> == Here is a H2. == <br /> <br /> &lt;center&gt; <br /> Here's a centered area. <br /> &lt;div style=&quot;text-align: left;&quot;&gt; <br /> And here is after the centering. <br /> &lt;pre&gt; <br /> Here is some preformated<br /> text that is formated just so<br /> that you can see it<br /> is actually not regular.<br /> &lt;/pre&gt; <br /> And that's &lt;u&gt;'''that'''&lt;/u&gt;.&lt;/div&gt; <br /> &lt;/center&gt;</div> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-27T11:30:09Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 11:30, 27 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 27:</strong></td> <td colspan="2" align="left"><strong>Line 27:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* [[The lab]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Open bugs]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Open bugs]]</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Milestones Milestones 2006-04-26T22:04:58Z <p></p> <p><b>New page</b></p><div>== SynchroEdit Milestones ==<br /> The milestones herein are listed by the intended SynchroEdit version. That is, milestone 0.4 refers to the SynchroEdit version 0.4 release, and what we intend to include in that release. Each milestone focuses on what will be there, as opposed to focusing on what won't be there. We want this list to be fairly complete, so if there is a feature you wish to see included that is not present in this list, then let us know and we'll look into it.<br /> <br /> A note on the release dates; they're very preliminary. They will move back and forward as we go along. Our resources are limited ([[Helping Out|something you can help change]]), alas.<br /> <br /> == Status ==<br /> * The latest implemented milestone is: '''0.3'''<br /> * The current milestone being worked on is: '''0.4'''<br /> <br /> === Milestone 0.3 ===<br /> * '''Release-date:''' end of March, 2006<br /> * '''Implementation state:''' implemented<br /> * '''Availability:''' stable repository<br /> * '''Focus:''' optimizations to client interface<br /> ;Description<br /> :The 0.3 milestone concentrates on ripping the hidden iframe out and replacing it with an XMLHttpRequest solution. It also further addresses the issues users report regarding client usability.<br /> ;Comments<br /> :The user-flag was replaced with a fake cursor style implementation instead, as users found the user-flag extremely hard to use.<br /> :The XHR client-to-server bridge, previously PHP, was rewritten in Perl.<br /> <br /> === Milestone 0.4 ===<br /> * '''Release-date:''' end of April, 2006<br /> * '''Implementation state:''' being worked on<br /> * '''Availability:''' none<br /> * '''Focus:''' multi-document support, response service and compatibility with non-Sun compilers<br /> ;Description<br /> :Multi-document support in a single server will be implemented, which in turn requires the response server functionality as defined in the [[SessionProtocol]] specification. The server code is also intended to be written to compile and run under GCJ 4.1+.<br /> ;Comments<br /> :None, yet.<br /> <br /> === Milestone 0.5 ===<br /> * '''Release-date:''' July, 2006<br /> * '''Implementation state:''' none<br /> * '''Availability:''' none<br /> * '''Focus:''' plug it in<br /> ;Description<br /> :The 0.5 release, the halfway-to-1.0 version, will focus on implementing SynchroEdit with various services out there. See [[Integration]] for more information on that project. This will be somewhat a proof-of-concept that it can be plugged into almost anything. We will also be modifying the sandbox on SynchroEdit to allow users to create session sandboxes.<br /> ;Comments<br /> :Check the [[Integration]] page out if you have ideas. If you're interested in plugging SynchroEdit into some application, let us know and we'll gladly offer advice or perhaps even assistance.<br /> <br /> === Milestone 0.6 ===<br /> * '''Release-date:''' August, 2006<br /> * '''Implementation state:''' none<br /> * '''Availability:''' none<br /> * '''Focus:''' administrative features<br /> ;Description<br /> :Read-only users, administrative users, the ability to kick or ban users, etc.<br /> ;Comments<br /> :None.<br /> <br /> === Milestone 0.7 ===<br /> * '''Release-date:''' September, 2006<br /> * '''Implementation state:''' none<br /> * '''Availability:''' none<br /> * '''Focus:''' plaintext document version<br /> ;Description<br /> :The 'plaintext' document functionality.<br /> ;Comments<br /> :None.</div> Kalle Alm http://wiki.synchroedit.com/index.php/SessionProtocol SessionProtocol 2006-04-22T21:20:12Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:20, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 17:</strong></td> <td colspan="2" align="left"><strong>Line 17:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">The purpose of the SessionProtocol is to provide a communication protocol between an application and SynchroEdit, and is used to instantiate new or manipulate existing SynchroEdit sessions. The applications which will communicate with SynchroEdit are here referred to as &quot;request servers&quot;. The protocol covers the actions of setting sessions up using existing XHTML-formatted data, and leaves the conversion to and from whatever native format there may be to the request servers and their relatives. SynchroEdit has an internal interface called [[<span style="color: red; font-weight: bold;">DomExport</span>]] which may or may not be used to ease this process, however there are many tools out there which do a good job of converting e.g. HTML to XHTML and vice versa, already. This specification describes the &quot;service protocol&quot; of SynchroEdit.</td><td>+</td><td style="background: #cfc; font-size: smaller;">The purpose of the SessionProtocol is to provide a communication protocol between an application and SynchroEdit, and is used to instantiate new or manipulate existing SynchroEdit sessions. The applications which will communicate with SynchroEdit are here referred to as &quot;request servers&quot;. The protocol covers the actions of setting sessions up using existing XHTML-formatted data, and leaves the conversion to and from whatever native format there may be to the request servers and their relatives. SynchroEdit has an internal interface called [[<span style="color: red; font-weight: bold;">SedExport</span>]] which may or may not be used to ease this process, however there are many tools out there which do a good job of converting e.g. HTML to XHTML and vice versa, already. This specification describes the &quot;service protocol&quot; of SynchroEdit.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Definitions ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Definitions ===</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/DocumentStateSequence DocumentStateSequence 2006-04-22T21:18:25Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:18, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 3:</strong></td> <td colspan="2" align="left"><strong>Line 3:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The Document State Sequence (aka DSS) is a method of ensuring the validity of asynchronously updated documents. What it does is simply keeping a numeric value which represents the document's current state. Whenever operations occur which are defined as synchronization-sensitive (such as the insertion/deletion of nodes), the client increments the DSS. When the server receives synchronization-sensitive statements from a client, it will correct, if necessary, the statement by modifying the node-identifiers where appropriate and send the corrected statement along to the other clients. </td><td> </td><td style="background: #eee; font-size: smaller;">The Document State Sequence (aka DSS) is a method of ensuring the validity of asynchronously updated documents. What it does is simply keeping a numeric value which represents the document's current state. Whenever operations occur which are defined as synchronization-sensitive (such as the insertion/deletion of nodes), the client increments the DSS. When the server receives synchronization-sensitive statements from a client, it will correct, if necessary, the statement by modifying the node-identifiers where appropriate and send the corrected statement along to the other clients. </td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">The Document State Sequence implementation is described in the [[<span style="color: red; font-weight: bold;">DomSynchronizedStateInstance</span>]] specification.</td><td>+</td><td style="background: #cfc; font-size: smaller;">The Document State Sequence implementation is described in the [[<span style="color: red; font-weight: bold;">SedSynchronizedStateInstance</span>]] specification.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">''Note that the Document State Sequence has not been implemented as yet, but that there are some issues with editors attempting to modify the same DOM node at the same time. It is as yet undecided on whether this implementation will be used to determine what to do in such situations, but it is at this point highly unlikely.''</td><td> </td><td style="background: #eee; font-size: smaller;">''Note that the Document State Sequence has not been implemented as yet, but that there are some issues with editors attempting to modify the same DOM node at the same time. It is as yet undecided on whether this implementation will be used to determine what to do in such situations, but it is at this point highly unlikely.''</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SynchroEdit_Overview SynchroEdit Overview 2006-04-22T21:18:05Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:18, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 21:</strong></td> <td colspan="2" align="left"><strong>Line 21:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">When a session is initiated, the server parses the X(HT)ML document to be edited into an internal DOM Document object. Whenever a user connects to the server, the document's current state is dispatched to that user as raw XHTML, which is then parsed by the browser into a document.</td><td> </td><td style="background: #eee; font-size: smaller;">When a session is initiated, the server parses the X(HT)ML document to be edited into an internal DOM Document object. Whenever a user connects to the server, the document's current state is dispatched to that user as raw XHTML, which is then parsed by the browser into a document.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Via the [[<span style="color: red; font-weight: bold;">DomInstance</span>]] implementation's getNodeIdentifiedAs() and getNodeIdentifierFor() functions, each Sync Client and Sync Server relate which node is being modified using element anchors, sibling-anchor-reference, and child-reference, such as &quot;br_5.1&quot; or &quot;br_5|1&quot;.</td><td>+</td><td style="background: #cfc; font-size: smaller;">Via the [[<span style="color: red; font-weight: bold;">SedInstance</span>]] implementation's getNodeIdentifiedAs() and getNodeIdentifierFor() functions, each Sync Client and Sync Server relate which node is being modified using element anchors, sibling-anchor-reference, and child-reference, such as &quot;br_5.1&quot; or &quot;br_5|1&quot;.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">Using the internal DOM function getElementById(), and using the Node.childNodes feature, the correct node can be located in a mostly relative fashion, providing an environment more or less failsafe against synchronization-issues, except where users are editing the same portion of the document. When users are &quot;colliding&quot; in this manner, the [[DocumentStateSequence]] (DSS) specification ensures the validity of the updated content by comparing out-of-sync updates, and by adjusting the local cursor- and node-positions.</td><td> </td><td style="background: #eee; font-size: smaller;">Using the internal DOM function getElementById(), and using the Node.childNodes feature, the correct node can be located in a mostly relative fashion, providing an environment more or less failsafe against synchronization-issues, except where users are editing the same portion of the document. When users are &quot;colliding&quot; in this manner, the [[DocumentStateSequence]] (DSS) specification ensures the validity of the updated content by comparing out-of-sync updates, and by adjusting the local cursor- and node-positions.</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Talk:DomClient Talk:DomClient 2006-04-22T21:17:22Z <p></p> <p><b>New page</b></p><div>== Internet Explorer ==<br /> No one would love to implement support for IE more than I. That said, being a linux user I am not exactly on top of things regarding IE development. If anybody has news regarding IE and '''mutation event support''' in particular, I'd be very interested to hear about it.<br /> <br /> [[User:Kalle Alm|Kalle Alm]]</div> Kalle Alm http://wiki.synchroedit.com/index.php/DomClient DomClient 2006-04-22T21:16:02Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:16, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== DomClient instance ==</td><td> </td><td style="background: #eee; font-size: smaller;">== DomClient instance ==</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">DomSynchronizedParty</span>]]&quot;, &quot;[[SynchronizedProtocol]]&quot;'''</td><td>+</td><td style="background: #cfc; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">SedSynchronizedParty</span>]]&quot;, &quot;[[SynchronizedProtocol]]&quot;'''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The DomClient instance is the client-side implementation which handles traffic between the remote author and the server. It is responsible for the editor user interface and for handling update notifications to and from the DomServer.</td><td> </td><td style="background: #eee; font-size: smaller;">The DomClient instance is the client-side implementation which handles traffic between the remote author and the server. It is responsible for the editor user interface and for handling update notifications to and from the DomServer.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Current language: <span style="color: red; font-weight: bold;"> </span>JavaScript.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Current language: <span style="color: red; font-weight: bold;"> </span>JavaScript.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Implementation notes: <span style="color: red; font-weight: bold;"> </span>None.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Implementation notes: None.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> Compatible browsers: Firefox 1.x; Camino 1.x; Netscape 7.x+.</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> Incompatible: Microsoft Internet Explorer (any); Safari (any); Konqueror (any).</span></td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/DomServer DomServer 2006-04-22T21:10:19Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:10, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== DomServer instance ==</td><td> </td><td style="background: #eee; font-size: smaller;">== DomServer instance ==</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">DomSynchronizedParty</span>]]&quot;, &quot;[[SynchronizedProtocol]]&quot;, &quot;[[XhtmlExport]]&quot;'''</td><td>+</td><td style="background: #cfc; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">SedSynchronizedParty</span>]]&quot;, &quot;[[SynchronizedProtocol]]&quot;, &quot;[[XhtmlExport]]&quot;'''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">The DomServer instance is the server-side implementation which handles traffic between clients and maintains the current document sessions. It <span style="color: red; font-weight: bold;">will </span>also <span style="color: red; font-weight: bold;">communicate </span>with the <span style="color: red; font-weight: bold;">ResponseServer when such is implemented</span>.</td><td>+</td><td style="background: #cfc; font-size: smaller;">The DomServer instance is the server-side implementation which handles traffic between clients and maintains the current document sessions. It also <span style="color: red; font-weight: bold;">communicates </span>with <span style="color: red; font-weight: bold;">response servers via </span>the <span style="color: red; font-weight: bold;">[[SessionProtocol]]</span>.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Current language: Java.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Current language: Java.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> Compatible compilers: Sun Java Compiler 5.0+</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Implementation notes: None.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Implementation notes: None.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/XhtmlExport XhtmlExport 2006-04-22T21:09:00Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 21:09, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== XhtmlExport instance ==</td><td> </td><td style="background: #eee; font-size: smaller;">== XhtmlExport instance ==</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">DomExport</span>]]&quot;'''</td><td>+</td><td style="background: #cfc; font-size: smaller;">'''implements &quot;[[<span style="color: red; font-weight: bold;">SedExport</span>]]&quot;'''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The XhtmlExport implementation exports a DOM tree into a string of XHTML.</td><td> </td><td style="background: #eee; font-size: smaller;">The XhtmlExport implementation exports a DOM tree into a string of XHTML.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;pre&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;pre&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Current language: Java.</td><td> </td><td style="background: #eee; font-size: smaller;"> Current language: Java.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Compatible compilers: Sun Java Compiler 5.0+</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Implementation notes: None.</td><td> </td><td style="background: #eee; font-size: smaller;"> Implementation notes: None.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;/pre&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;/pre&gt;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SynchronizedProtocol SynchronizedProtocol 2006-04-22T20:57:52Z <p></p> <a href="http://wiki.synchroedit.com/index.php?title=SynchronizedProtocol&amp;diff=1435&amp;oldid=1377">(Difference between revisions)</a> Kalle Alm http://wiki.synchroedit.com/index.php/SedSynchronizedParty SedSynchronizedParty 2006-04-22T20:55:28Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:55, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">DomSynchronizedParty</span>&quot; ==</td><td>+</td><td style="background: #cfc; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">SedSynchronizedParty</span>&quot; ==</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">'''extends &quot;[[<span style="color: red; font-weight: bold;">DomSynchronizedStateInstance</span>]]&quot;'''</td><td>+</td><td style="background: #cfc; font-size: smaller;">'''extends &quot;[[<span style="color: red; font-weight: bold;">SedSynchronizedStateInstance</span>]]&quot;'''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">4 </span>(<span style="color: red; font-weight: bold;">Aug 23</span>, <span style="color: red; font-weight: bold;">2005</span>) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">5 </span>(<span style="color: red; font-weight: bold;">April 22</span>, <span style="color: red; font-weight: bold;">2006</span>) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">The <span style="color: red; font-weight: bold;">DomSynchronizedParty </span>interface describes the implementation method of a group of editors (clients) editing the same document using the [[SynchronizedProtocol]]. The <span style="color: red; font-weight: bold;">DomSynchronizedParty </span>interface is implemented on client- and server-side and is responsible for maintaining accurate iterator-locations for all clients in the session.</td><td>+</td><td style="background: #cfc; font-size: smaller;">The <span style="color: red; font-weight: bold;">SedSynchronizedParty </span>interface describes the implementation method of a group of editors (clients) editing the same document using the [[SynchronizedProtocol]]. The <span style="color: red; font-weight: bold;">SedSynchronizedParty </span>interface is implemented on client- and server-side and is responsible for maintaining accurate iterator-locations for all clients in the session.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The implementation is slightly slimmed-down on the server-side simply because the server does not bother with the appearance of the document. Thus, things such as dynamic CSS generation is exclusively implemented client-side.</td><td> </td><td style="background: #eee; font-size: smaller;">The implementation is slightly slimmed-down on the server-side simply because the server does not bother with the appearance of the document. Thus, things such as dynamic CSS generation is exclusively implemented client-side.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>3 <span style="color: red; font-weight: bold;"> </span>Aug 18, 2005 Added user styling to interface.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 2-</span>3 <span style="color: red; font-weight: bold;"> </span>Aug 18, 2005 Added user styling to interface.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>4 <span style="color: red; font-weight: bold;"> </span>Aug 23, 2005 Added Function uiHandler to initializePartyInterface.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 3-</span>4 <span style="color: red; font-weight: bold;"> </span>Aug 23, 2005 Added Function uiHandler to initializePartyInterface.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> 5 Apr 22, 2006 Renamed to &quot;SedSynchronizedParty&quot; from &quot;DomSynchronizedParty&quot;.</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;">&#160;</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">=== Comment ===</span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">This specification (and its accompanying implementations) was called Dom* up until April 22, 2006. This was obviously a thoughtless move as it both insinuates that the specification is W3C compliant (which it most assuredly isn't), and that it was written by the W3C team. These specifications (and accompanying implementations) have thus been renamed to Sed* ('''S'''ynchronously '''e'''dited '''d'''ocument).</span></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Variables ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Variables ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Map&lt;String,Node&gt; client</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Map&lt;String,Node&gt; client</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Map&lt;String,node&gt; span</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Map&lt;String,node&gt; span</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Vector&lt;String&gt; clientList</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Vector&lt;String&gt; clientList</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Functions ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Functions ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;void initializePartyInterface(Document instance, Function uiHandler)&lt;/code&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;void initializePartyInterface(Document instance, Function uiHandler)&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Perform initializations. </td><td> </td><td style="background: #eee; font-size: smaller;">:Perform initializations. </td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SedSynchronizedStateInstance SedSynchronizedStateInstance 2006-04-22T20:53:37Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:53, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">DomSynchronizedStateInstance</span>&quot; ==</td><td>+</td><td style="background: #cfc; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">SedSynchronizedStateInstance</span>&quot; ==</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">'''extends &quot;[[<span style="color: red; font-weight: bold;">DomInstance</span>]]&quot;'''</td><td>+</td><td style="background: #cfc; font-size: smaller;">'''extends &quot;[[<span style="color: red; font-weight: bold;">SedInstance</span>]]&quot;'''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">3 </span>(<span style="color: red; font-weight: bold;">Aug 9</span>, <span style="color: red; font-weight: bold;">2005</span>) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">4 </span>(<span style="color: red; font-weight: bold;">Apr 22</span>, <span style="color: red; font-weight: bold;">2006</span>) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">See also [[DocumentStateSequence]].</td><td> </td><td style="background: #eee; font-size: smaller;">See also [[DocumentStateSequence]].</td></tr> <tr><td colspan="2" align="left"><strong>Line 52:</strong></td> <td colspan="2" align="left"><strong>Line 52:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;comm !SyncComm(comm what)&lt;/code&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;comm !SyncComm(comm what)&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Add a DSS to the communication object 'what'.</td><td> </td><td style="background: #eee; font-size: smaller;">:Add a DSS to the communication object 'what'.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Testing ===</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Initializing with the following HTML:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;html&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;head&gt;&lt;/head&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;body&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;h1&gt;Header.&lt;/h1&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;b&gt;First b element's first child.&lt;br/&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> First b element's second child.&lt;br/&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> First b element's third child.&lt;/b&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Plain text in the body.</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;/body&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;/html&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Using the following function:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> String wentOkay(int DSS) </td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> {</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> return &quot;--&quot; + (DSS == this.DSS ? &quot;SYNC&quot; : &quot;OUT-OF-SYNC!&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> }</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Performing the following operations:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DomSynchronizedStateInstance DSSI = new DomSynchronizedStateInstance(new InputSource(new </td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> StringReader(&quot;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;h1&gt;Header.&lt;/h1&gt;&lt;b&gt;First b element's first child.&lt;br/&gt;First b element's second child.&lt;br/&gt;First b &quot; +</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &quot;element's third child.&lt;/b&gt;Plain text in the body.&lt;/body&gt;&lt;/html&gt;&quot;)));</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(&quot;created DSSI&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.createdDocument();</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(&quot;created document&quot; + DSSI.wentOkay(1));</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.incrementDSS(); // pretend to perform non-DOM-tree-altering DSS mod</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(&quot;incremented DSS &quot; + DSSI.wentOkay(2));</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // first test: insert a &lt;br/&gt; between h1_1 and b_1</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Node r_body_0 = DSSI.getNodeIdentifiedAs(&quot;body.0&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.alterDocumentState(r_body_0, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // do this for real</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Element myBr = DSSI.getInstance().createElement(&quot;br&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.identifyElement(myBr);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // make sure element ID is valid for upcoming tests</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(myBr.getAttribute(&quot;id&quot;).equals(&quot;br_3&quot;) ? &quot;new element is okay&quot; : &quot;new element is NOT okay (expected id br_3; got &quot; + </td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> myBr.getAttribute(&quot;id&quot;) + &quot;!)&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // insert node appropriately</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.insertNodeAfter(myBr, r_body_0); // this may have to be &quot;body.0&quot; in some versions</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // check document accuracy</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> String textTest = DSSI.getNodeIdentifiedAs(&quot;body.3&quot;).getNodeValue();</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(textTest.equals(&quot;Plain text in the body.&quot;) ? &quot;text test succeeded&quot; : &quot;text test FAILED (expected \&quot;Plain text in the &quot; +</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &quot;body.\&quot;, got \&quot;&quot; + textTest + &quot;\&quot;&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // pretend to perform a NODE action to h1_1 that did not notice this change yet; this should not be modified</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> String correctionTest = &quot;h1_1.0&quot;;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> String corrected = DSSI.correctNodeIdentifier(correctionTest, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(correctionTest + &quot; corrected became &quot; + corrected + &quot; [expected: h1_1.0]&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // pretend to perform an action to previously body.2 (now body.3); this should be modified</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> correctionTest = &quot;body.2&quot;;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> corrected = DSSI.correctNodeIdentifier(correctionTest, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(correctionTest + &quot; corrected became &quot; + corrected + &quot; [expected: body.3]&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // pretend to perform an action to previously body.1.2.3 (now body.2.2.3); this should be modified</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> correctionTest = &quot;body.1.2.3&quot;;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> corrected = DSSI.correctNodeIdentifier(correctionTest, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(correctionTest + &quot; corrected became &quot; + corrected + &quot; [expected: body.2.2.3]&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // perform a second alteration</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // second test: insert a &lt;u/&gt; into b_1, after b_1.2 (&quot;First b element's second child.&quot;)</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Node r_b_1_2 = DSSI.getNodeIdentifiedAs(&quot;b_1.2&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.alterDocumentState(r_b_1_2, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // do this for real</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Element myU = DSSI.getInstance().createElement(&quot;u&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.identifyElement(myU);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // make sure element ID is valid for upcoming tests</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(myU.getAttribute(&quot;id&quot;).equals(&quot;u_1&quot;) ? &quot;new element is okay&quot; : &quot;new element is NOT okay (expected id u_1; got &quot; + </td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> myU.getAttribute(&quot;id&quot;) + &quot;!)&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // insert node appropriately</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> DSSI.insertNodeAfter(myU, r_b_1_2); // this may have to be &quot;b_1.2&quot; in some versions</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // check document accuracy</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> textTest = DSSI.getNodeIdentifiedAs(&quot;b_1.5&quot;).getNodeValue();</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(textTest.equals(&quot;First b element's third child.&quot;) ? &quot;text test succeeded&quot; : &quot;text test FAILED (expected \&quot;First b element's &quot; +</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &quot;third child.\&quot;, got \&quot;&quot; + textTest + &quot;\&quot;&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> // pretend to perform an action to previously b_1.3 (now b_1.4); this should be modified</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> correctionTest = &quot;b_1.3&quot;;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> corrected = DSSI.correctNodeIdentifier(correctionTest, 1);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> System.out.println(correctionTest + &quot; corrected became &quot; + corrected + &quot; [expected: b_1.4]&quot;);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Acquiring the following output:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> created DSSI</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> created document--SYNC</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> incremented DSS --SYNC</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> new element is okay</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> text test succeeded</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> h1_1.0 corrected became h1_1.0 [expected: h1_1.0]</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> body.2 corrected became body.3 [expected: body.3]</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> body.1.2.3 corrected became body.2.2.3 [expected: body.2.2.3]</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> new element is okay</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> text test succeeded</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> b_1.3 corrected became b_1.4 [expected: b_1.4]</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SedExport SedExport 2006-04-22T20:52:40Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:52, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 5:</strong></td> <td colspan="2" align="left"><strong>Line 5:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Revision Date Description</td><td> </td><td style="background: #eee; font-size: smaller;"> Revision Date Description</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> <span style="color: red; font-weight: bold;">1-</span>2 <span style="color: red; font-weight: bold;"> </span>Aug 26, 2005 General spec. content improvement.</td><td>+</td><td style="background: #cfc; font-size: smaller;"> 2 <span style="color: red; font-weight: bold;"> </span>Aug 26, 2005 General spec. content improvement.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 3 Feb 21, 2006 Added fragmentToString.</td><td> </td><td style="background: #eee; font-size: smaller;"> 3 Feb 21, 2006 Added fragmentToString.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 4 Apr 22, 2006 Renamed this specification &quot;SedExport&quot; from &quot;DomExport&quot;</td><td> </td><td style="background: #eee; font-size: smaller;"> 4 Apr 22, 2006 Renamed this specification &quot;SedExport&quot; from &quot;DomExport&quot;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SedInstance SedInstance 2006-04-22T20:52:18Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:52, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">DomInstance</span>&quot;: ==</td><td>+</td><td style="background: #cfc; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">SedInstance</span>&quot;: ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">9 </span>(<span style="color: red; font-weight: bold;">Feb 21</span>, 2006) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">10 </span>(<span style="color: red; font-weight: bold;">April 22</span>, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Changelog<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Changelog ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>5 <span style="color: red; font-weight: bold;"> </span>Aug 16, 2005 Implemented plusOffset feature in nodeIdentifiers</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 4-</span>5 <span style="color: red; font-weight: bold;"> </span>Aug 16, 2005 Implemented plusOffset feature in nodeIdentifiers</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>6 <span style="color: red; font-weight: bold;"> </span>Aug 18, 2005 Clarified specification on body and head tags.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 5-</span>6 <span style="color: red; font-weight: bold;"> </span>Aug 18, 2005 Clarified specification on body and head tags.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>7 <span style="color: red; font-weight: bold;"> </span>Aug 23, 2005 Added &quot;.*&quot; feature for optimizing document-loading.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 6-</span>7 <span style="color: red; font-weight: bold;"> </span>Aug 23, 2005 Added &quot;.*&quot; feature for optimizing document-loading.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>8 <span style="color: red; font-weight: bold;"> </span>Aug 24, 2005 Replaced &quot;.*&quot; feature with different handler in server.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> 7-</span>8 <span style="color: red; font-weight: bold;"> </span>Aug 24, 2005 Replaced &quot;.*&quot; feature with different handler in server.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>9 Feb 21, 2006 Corrected example and spec regarding pipeline-referencing.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>9 Feb 21, 2006 Corrected example and spec regarding pipeline-referencing.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> 10 Apr 22, 2006 Renamed specification to &quot;SedInstance&quot; from &quot;DomInstance&quot;.</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Definitions: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Comment </span>===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">This specification (and its accompanying implementations) was called Dom* up until April 22, 2006</span>. <span style="color: red; font-weight: bold;">This was obviously a thoughtless move as it both insinuates that the specification is W3C compliant (which it most assuredly isn't), and that it was written by the W3C team</span>. <span style="color: red; font-weight: bold;">These specifications (and accompanying implementations) have thus been renamed to Sed* ('''S'''ynchronously '''e'''dited '''d'''ocument)</span>.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> // DOM Node defines:</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> const NT_ELEMENT_NODE = 1; // Node</span>.<span style="color: red; font-weight: bold;">ELEMENT_NODE </span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> const NT_ATTRIBUTE_NODE = 2; // Node</span>.<span style="color: red; font-weight: bold;">ATTRIBUTE_NODE </span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> const NT_TEXT_NODE = 3; // Node</span>.<span style="color: red; font-weight: bold;">TEXT_NODE </span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> const NT_DOCUMENT_NODE = 4; // Node.DOCUMENT_NODE </span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Type definitions<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Type definitions ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* nodeIdentifier &lt;string&gt;; point-separated list with an anchor-reference, followed by any number of node-tree-index references, optionally followed by a pipeline and an integer value, indicating that the node reference is based off of a sibling.</td><td> </td><td style="background: #eee; font-size: smaller;">* nodeIdentifier &lt;string&gt;; point-separated list with an anchor-reference, followed by any number of node-tree-index references, optionally followed by a pipeline and an integer value, indicating that the node reference is based off of a sibling.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** Must be able to process trailing dots.</td><td> </td><td style="background: #eee; font-size: smaller;">** Must be able to process trailing dots.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** nodeType &lt;int&gt;; one of the values specified in the NT_* definitions.</td><td> </td><td style="background: #eee; font-size: smaller;">** nodeType &lt;int&gt;; one of the values specified in the NT_* definitions.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Specifications<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Specifications ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* All html code must begin with an &lt;html&gt; tag. The &lt;html&gt; tag may be anonymous, but must contain a &lt;head&gt; tag and a &lt;body&gt; tag. The &lt;head&gt; tag must contain a &lt;style&gt; tag. The &lt;body&gt; tag must have the id attribute set to &quot;body&quot;. The &lt;head&gt; tag must have the id attribute set to &quot;head&quot;. The &lt;style&gt; tag must have the id attribute set to &quot;style&quot;.</td><td> </td><td style="background: #eee; font-size: smaller;">* All html code must begin with an &lt;html&gt; tag. The &lt;html&gt; tag may be anonymous, but must contain a &lt;head&gt; tag and a &lt;body&gt; tag. The &lt;head&gt; tag must contain a &lt;style&gt; tag. The &lt;body&gt; tag must have the id attribute set to &quot;body&quot;. The &lt;head&gt; tag must have the id attribute set to &quot;head&quot;. The &lt;style&gt; tag must have the id attribute set to &quot;style&quot;.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&#160;</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Functions ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Functions<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;Node getNodeIdentifiedAs(nodeIdentifier identity)&lt;/code&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;Node getNodeIdentifiedAs(nodeIdentifier identity)&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Find a node based on a node identifier</td><td> </td><td style="background: #eee; font-size: smaller;">:Find a node based on a node identifier</td></tr> <tr><td colspan="2" align="left"><strong>Line 65:</strong></td> <td colspan="2" align="left"><strong>Line 57:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;Document getInstance()&lt;/code&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;Document getInstance()&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Acquire the document instance.</td><td> </td><td style="background: #eee; font-size: smaller;">:Acquire the document instance.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Testing: ===</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Using the following HTML parsed into a DOM tree:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;html&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;body id=&quot;body&quot;&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;h1 id=&quot;h1_1&quot;&gt;Header.&lt;/h1&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;b id=&quot;b_1&quot;&gt;First b element's first child.&lt;/b&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;/body&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> &lt;/html&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">Using the following code:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Node b10 = DomInstance.getNodeIdentifiedAs(&quot;b_1.0.&quot;, false);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> out(&quot;The node reference 'b_1.0.' refers to: &quot; + b10);</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> out(&quot;And that node-pointer is referenced as: &quot; + DomInstance.getNodeIdentifierFor(b10));</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* Getting the following output:</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> The node reference 'b_1.0.' refers to: [#text: First b element's first child.]</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> And that node-pointer is referenced as: b_1.0</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SedExport SedExport 2006-04-22T20:48:35Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:48, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">DomExport</span>&quot;<span style="color: red; font-weight: bold;">: </span>==</td><td>+</td><td style="background: #cfc; font-size: smaller;">== Interface implementation &quot;<span style="color: red; font-weight: bold;">SedExport</span>&quot; ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">3 </span>(<span style="color: red; font-weight: bold;">Feb 21</span>, 2006) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">4 </span>(<span style="color: red; font-weight: bold;">April 22</span>, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> </td><td> </td><td style="background: #eee; font-size: smaller;"> </td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Changelog<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Changelog ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>Revision Date Description</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>1-2 Aug 26, 2005 General spec. content improvement.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>1-2 Aug 26, 2005 General spec. content improvement.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>3 Feb 21, 2006 Added fragmentToString.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span>3 Feb 21, 2006 Added fragmentToString.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> 4 Apr 22, 2006 Renamed this specification &quot;SedExport&quot; from &quot;DomExport&quot;</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;/pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Description: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Comment </span>===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">The DomExport interface is used by any </span>implementations that <span style="color: red; font-weight: bold;">involve exporting </span>the <span style="color: red; font-weight: bold;">DOM tree into another format. One of these </span>is <span style="color: red; font-weight: bold;">the [[XhtmlExport]] implementation </span>which <span style="color: red; font-weight: bold;">exports the DOM tree as XHTML. This is the &quot;native&quot; export</span>, <span style="color: red; font-weight: bold;">which is the only one </span>that the <span style="color: red; font-weight: bold;">server can import entirely using internal Java code</span>. <span style="color: red; font-weight: bold;">Any other export </span>implementations <span style="color: red; font-weight: bold;">will require import implementations, which &quot;fill&quot; the DOM tree manually</span>.</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">This specification (and its accompanying </span>implementations<span style="color: red; font-weight: bold;">) was called Dom* up until April 22, 2006. This was obviously a thoughtless move as it both insinuates </span>that the <span style="color: red; font-weight: bold;">specification </span>is <span style="color: red; font-weight: bold;">W3C compliant (</span>which <span style="color: red; font-weight: bold;">it most assuredly isn't)</span>, <span style="color: red; font-weight: bold;">and </span>that <span style="color: red; font-weight: bold;">it was written by </span>the <span style="color: red; font-weight: bold;">W3C team</span>. <span style="color: red; font-weight: bold;">These specifications (and accompanying </span>implementations<span style="color: red; font-weight: bold;">) have thus been renamed to Sed* ('''S'''ynchronously '''e'''dited '''d'''ocument)</span>.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">This is a serverside-only interface, and is not implemented at all on the client.</span></td><td>+</td><td style="background: #cfc; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Description </span>===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span></td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">The SedExport interface is used by any implementations that involve exporting the DOM tree into another format. One of these is the [[XhtmlExport]] implementation which exports the DOM tree as XHTML. This is the &quot;native&quot; export, which is the only one that the server can import entirely using internal Java code. Any other export implementations will require import implementations, which &quot;fill&quot; the DOM tree manually.</span></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== <span style="color: red; font-weight: bold;">Functions: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;code&gt;String instanceToString([[<span style="color: red; font-weight: bold;">DomInstance</span>]] instance)&lt;/code&gt;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">This is a server side-only interface, and is not implemented at all on the client.</span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> </span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;">=== Functions ===</span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">&lt;code&gt;String instanceToString([[<span style="color: red; font-weight: bold;">SedInstance</span>]] instance)&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Turn the instance into a string.</td><td> </td><td style="background: #eee; font-size: smaller;">:Turn the instance into a string.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;String fragmentToString(Node fragmentBase)&lt;/code&gt;</td><td> </td><td style="background: #eee; font-size: smaller;">&lt;code&gt;String fragmentToString(Node fragmentBase)&lt;/code&gt;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">:Turn all children of a node into a string.</td><td> </td><td style="background: #eee; font-size: smaller;">:Turn all children of a node into a string.</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-22T20:41:57Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:41, 22 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 35:</strong></td> <td colspan="2" align="left"><strong>Line 35:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Specifications ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Specifications ====</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* [[<span style="color: red; font-weight: bold;">DomExport</span>]] - ''interface specification for exporting the DOM tree into a foreign format (such as Wiki-text)''</td><td>+</td><td style="background: #cfc; font-size: smaller;">* [[<span style="color: red; font-weight: bold;">SedExport</span>]] - ''interface specification for exporting the DOM tree into a foreign format (such as Wiki-text)''</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* [[<span style="color: red; font-weight: bold;">DomInstance</span>]] - ''extended DOM tree specification, including the getNodeIdentifierFor() and getNodeIdentifiedAs() functionality, anchors, etc.''</td><td>+</td><td style="background: #cfc; font-size: smaller;">* [[<span style="color: red; font-weight: bold;">SedInstance</span>]] - ''extended DOM tree specification, including the getNodeIdentifierFor() and getNodeIdentifiedAs() functionality, anchors, etc.''</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">** [[<span style="color: red; font-weight: bold;">DomSynchronizedStateInstance</span>]] - ''synchronized editing instance specification (DSS)''</td><td>+</td><td style="background: #cfc; font-size: smaller;">** [[<span style="color: red; font-weight: bold;">SedSynchronizedStateInstance</span>]] - ''synchronized editing instance specification (DSS)''</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">*** [[<span style="color: red; font-weight: bold;">DomSynchronizedParty</span>]] - ''group-of-editors specification, with user-coloring and user-cursor-positioning etc.''</td><td>+</td><td style="background: #cfc; font-size: smaller;">*** [[<span style="color: red; font-weight: bold;">SedSynchronizedParty</span>]] - ''group-of-editors specification, with user-coloring and user-cursor-positioning etc.''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Implementation Instances ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Implementation Instances ====</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Special:Log/move Special:Log/move 2006-04-22T20:41:00Z <p>[[DomSynchronizedParty]] moved to [[SedSynchronizedParty]]: Conflicting class name.</p> Kalle Alm http://wiki.synchroedit.com/index.php/Special:Log/move Special:Log/move 2006-04-22T20:40:45Z <p>[[DomSynchronizedStateInstance]] moved to [[SedSynchronizedStateInstance]]: Conflicting class name.</p> Kalle Alm http://wiki.synchroedit.com/index.php/Special:Log/move Special:Log/move 2006-04-22T20:40:22Z <p>[[DomInstance]] moved to [[SedInstance]]: Conflicting class name.</p> Kalle Alm http://wiki.synchroedit.com/index.php/Special:Log/move Special:Log/move 2006-04-22T20:39:47Z <p>[[DomExport]] moved to [[SedExport]]: Conflicting class name.</p> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-20T16:03:11Z <p>/* What's happening right now? */</p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 16:03, 20 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 10:</strong></td> <td colspan="2" align="left"><strong>Line 10:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* We've converted the SynchroEdit wiki over to [http://www.mediawiki.org/wiki/MediaWiki MediaWiki]. If anyone has tips on spammer tweaks, we're eager to know! Some majorly cool stuff is happening on the admin-side of SynchroEdit as well, yet to be released in the dev repository. Stay tuned!</td><td> </td><td style="background: #eee; font-size: smaller;">* We've converted the SynchroEdit wiki over to [http://www.mediawiki.org/wiki/MediaWiki MediaWiki]. If anyone has tips on spammer tweaks, we're eager to know! Some majorly cool stuff is happening on the admin-side of SynchroEdit as well, yet to be released in the dev repository. Stay tuned!</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* We want to see SynchroEdit in as many applications as possible. Which ones do ''you'' want to see SynchroEdit integrated with? [[Integration]]</td><td>+</td><td style="background: #cfc; font-size: smaller;">* We want to see SynchroEdit in as many applications as possible. Which ones do ''you'' want to see SynchroEdit integrated with? [[Integration<span style="color: red; font-weight: bold;">|Let us know!</span>]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/MediaWiki:Sidebar MediaWiki:Sidebar 2006-04-20T15:02:28Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 15:02, 20 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* navigation</td><td> </td><td style="background: #eee; font-size: smaller;">* navigation</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** mainpage|mainpage</td><td> </td><td style="background: #eee; font-size: smaller;">** mainpage|mainpage</td></tr> <tr><td colspan="2" align="left"><strong>Line 7:</strong></td> <td colspan="2" align="left"><strong>Line 6:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** randompage-url|randompage</td><td> </td><td style="background: #eee; font-size: smaller;">** randompage-url|randompage</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** helppage|help</td><td> </td><td style="background: #eee; font-size: smaller;">** helppage|help</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">** sitesupport-url|sitesupport</td><td colspan="2">&nbsp;</td></tr> </table> WikiAdm http://wiki.synchroedit.com/index.php/Integration Integration 2006-04-20T14:16:36Z <p></p> <p><b>New page</b></p><div>== Integration ==<br /> <br /> This page is where integration of SynchroEdit is discussed. Feel free to comment on integration you're currently working on yourself or integration you'd like to see happen.<br /> <br /> These are the systems we are planning on implementing SynchroEdit with, though this list may change as time goes on:<br /> # [http://mediawiki.org MediaWiki]<br /> # [http://wordpress.com WordPress]<br /> <br /> [[User:Kalle Alm|Kalle Alm]] 07:16, 20 April 2006 (PDT)</div> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-20T14:13:49Z <p>/* What's happening right now? */</p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 14:13, 20 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 10:</strong></td> <td colspan="2" align="left"><strong>Line 10:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* We've converted the SynchroEdit wiki over to [http://www.mediawiki.org/wiki/MediaWiki MediaWiki]. If anyone has tips on spammer tweaks, we're eager to know! Some majorly cool stuff is happening on the admin-side of SynchroEdit as well, yet to be released in the dev repository. Stay tuned!</td><td> </td><td style="background: #eee; font-size: smaller;">* We've converted the SynchroEdit wiki over to [http://www.mediawiki.org/wiki/MediaWiki MediaWiki]. If anyone has tips on spammer tweaks, we're eager to know! Some majorly cool stuff is happening on the admin-side of SynchroEdit as well, yet to be released in the dev repository. Stay tuned!</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* We want to see SynchroEdit in as many applications as possible. Which ones do ''you'' want to see SynchroEdit integrated with? [[Integration]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SessionProtocol SessionProtocol 2006-04-20T10:47:30Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 10:47, 20 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot; ==</td><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot; ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">7 </span>(Apr <span style="color: red; font-weight: bold;">13</span>, 2006) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">8 </span>(Apr <span style="color: red; font-weight: bold;">20</span>, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 14:</strong></td> <td colspan="2" align="left"><strong>Line 14:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> terminology accuracy.</td><td> </td><td style="background: #eee; font-size: smaller;"> terminology accuracy.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 6-7 Apr 13, 2006 Added &quot;QUIT&quot; protocol command. Also added &quot;END&quot;.</td><td> </td><td style="background: #eee; font-size: smaller;"> 6-7 Apr 13, 2006 Added &quot;QUIT&quot; protocol command. Also added &quot;END&quot;.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> 7-8 Apr 20, 2006 Added &quot;INFO&quot; protocol command.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 66:</strong></td> <td colspan="2" align="left"><strong>Line 67:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The generic success response is for non-informative (i.e. active) protocol commands is &quot;ACK&quot; (acknowledged command). The generic failure response is &quot;NAK&quot; (not acknowledged) except in the cases where the generic failure is deemed ambiguous, in which case specific error responses are in place -- such as ISOPEN, UNINITIALIZED, and FAILED. All responses are concluded, using the &quot;END&quot; response.</td><td> </td><td style="background: #eee; font-size: smaller;">The generic success response is for non-informative (i.e. active) protocol commands is &quot;ACK&quot; (acknowledged command). The generic failure response is &quot;NAK&quot; (not acknowledged) except in the cases where the generic failure is deemed ambiguous, in which case specific error responses are in place -- such as ISOPEN, UNINITIALIZED, and FAILED. All responses are concluded, using the &quot;END&quot; response.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">==== &lt;Request server&gt; to &lt;SynchroEdit&gt; specification<span style="color: red; font-weight: bold;">: </span>====</td><td>+</td><td style="background: #cfc; font-size: smaller;">==== &lt;Request server&gt; to &lt;SynchroEdit&gt; specification ====</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUERY</td><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUERY</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Success response: DOCUMENT [document]</td><td> </td><td style="background: #eee; font-size: smaller;"> Success response: DOCUMENT [document]</td></tr> <tr><td colspan="2" align="left"><strong>Line 77:</strong></td> <td colspan="2" align="left"><strong>Line 78:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> [...] (Repeated for each existing session.)</td><td> </td><td style="background: #eee; font-size: smaller;"> [...] (Repeated for each existing session.)</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Description: Query the service for existing (public) sessions.</td><td> </td><td style="background: #eee; font-size: smaller;"> Description: Query the service for existing (public) sessions.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Command: INFO</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Success response: LOCALPATH [directory]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> SERVERMODEL [model]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> UPTIME [millis]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> string [directory] The server-side directory where SE sessions are stored.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> string [model] &quot;PROD&quot; or &quot;DEV&quot;, depending on the server layout.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> long [millis] Milliseconds the server has been running.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Description: Request information about the SynchroEdit server.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUIT</td><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUIT</td></tr> </table> WikiAdm http://wiki.synchroedit.com/index.php/SessionProtocol SessionProtocol 2006-04-13T20:34:54Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 20:34, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot; ==</td><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot; ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">5 </span>(Apr <span style="color: red; font-weight: bold;">12</span>, 2006) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">7 </span>(Apr <span style="color: red; font-weight: bold;">13</span>, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 8:</strong></td> <td colspan="2" align="left"><strong>Line 8:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 1-2 Aug 25, 2005 Renamed to &quot;SessionProtocol&quot; as it has nothing to do with DOM.</td><td> </td><td style="background: #eee; font-size: smaller;"> 1-2 Aug 25, 2005 Renamed to &quot;SessionProtocol&quot; as it has nothing to do with DOM.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 2-3 Apr 10, 2006 Revamped specification completely.</td><td> </td><td style="background: #eee; font-size: smaller;"> 2-3 Apr 10, 2006 Revamped specification completely.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> 3-4 Apr 11, 2006 Added &quot;QUERY&quot;, &quot;STATUS&quot; protocol <span style="color: red; font-weight: bold;">functions</span>.</td><td>+</td><td style="background: #cfc; font-size: smaller;"> 3-4 Apr 11, 2006 Added &quot;QUERY&quot;, &quot;STATUS&quot; protocol <span style="color: red; font-weight: bold;">command</span>.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 4-5 Apr 12, 2006 Updated &quot;QUERY&quot; to list document on separate line to avoid ambiguity.</td><td> </td><td style="background: #eee; font-size: smaller;"> 4-5 Apr 12, 2006 Updated &quot;QUERY&quot; to list document on separate line to avoid ambiguity.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"> Added &quot;ABORT&quot; protocol function.</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Added &quot;ABORT&quot; protocol <span style="color: red; font-weight: bold;">command.</span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> 5-6 Apr 13, 2006 Added &quot;RESTORE&quot; protocol command. Using &quot;protocol command&quot; in place of &quot;</span>function<span style="color: red; font-weight: bold;">&quot; for </span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> terminology accuracy.</span></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"><span style="color: red; font-weight: bold;"> 6-7 Apr 13, 2006 Added &quot;QUIT&quot; protocol command. Also added &quot;END&quot;</span>.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Description ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 26:</strong></td> <td colspan="2" align="left"><strong>Line 29:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Implementation status ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Implementation status ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The SessionProtocol will be implemented into SynchroEdit in full in version 0.5. This version will approximately be released into the development repository in '''the end of April, 2006'''.</td><td> </td><td style="background: #eee; font-size: smaller;">The SessionProtocol will be implemented into SynchroEdit in full in version 0.5. This version will approximately be released into the development repository in '''the end of April, 2006'''.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">functions </span>QUERY, GET, INIT, ABORT, OPEN, STATUS <span style="color: red; font-weight: bold;">and </span>STORE have been fully implemented.</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">commands </span>QUERY, GET, INIT, ABORT, OPEN, STATUS<span style="color: red; font-weight: bold;">, </span>STORE <span style="color: red; font-weight: bold;">and QUIT </span>have been fully implemented.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">function </span>SHUTDOWN has been partially implemented.</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">command </span>SHUTDOWN has been partially implemented.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">functions </span>ACCESS, SETTING, KICK <span style="color: red; font-weight: bold;">and </span>UNKICK have not been implemented.</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol <span style="color: red; font-weight: bold;">commands </span>ACCESS, SETTING, KICK<span style="color: red; font-weight: bold;">, </span>UNKICK <span style="color: red; font-weight: bold;">and RESTORE </span>have not been implemented.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Session flow ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Session flow ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 60:</strong></td> <td colspan="2" align="left"><strong>Line 63:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Protocol specification ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Protocol specification ===</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">The generic success response is for non-informative (i.e. active) protocol commands is &quot;ACK&quot; (acknowledged command). The generic failure response is &quot;NAK&quot; (not acknowledged) except in the cases where the generic failure is deemed ambiguous, in which case specific error responses are in place -- such as ISOPEN, UNINITIALIZED, and FAILED. All responses are concluded, using the &quot;END&quot; response.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== &lt;Request server&gt; to &lt;SynchroEdit&gt; specification: ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== &lt;Request server&gt; to &lt;SynchroEdit&gt; specification: ====</td></tr> <tr><td colspan="2" align="left"><strong>Line 72:</strong></td> <td colspan="2" align="left"><strong>Line 77:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> [...] (Repeated for each existing session.)</td><td> </td><td style="background: #eee; font-size: smaller;"> [...] (Repeated for each existing session.)</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Description: Query the service for existing (public) sessions.</td><td> </td><td style="background: #eee; font-size: smaller;"> Description: Query the service for existing (public) sessions.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Command: QUIT</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"> Description: Close connection.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Command: GET [document]</td><td> </td><td style="background: #eee; font-size: smaller;"> Command: GET [document]</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-13T13:29:12Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 13:29, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 20:</strong></td> <td colspan="2" align="left"><strong>Line 20:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Windows quick-install]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Windows quick-install]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Almost working setup on Win32]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Almost working setup on Win32]]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* [[SynchroEdit integration - PHP]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Helping_Out Helping Out 2006-04-13T13:22:04Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 13:22, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 18:</strong></td> <td colspan="2" align="left"><strong>Line 18:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">Thank you for considering becoming a contributor to the SynchroEdit project!</td><td> </td><td style="background: #eee; font-size: smaller;">Thank you for considering becoming a contributor to the SynchroEdit project!</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">''This page is a copy of the one available'' [http://www.synchroedit.com/helpout.php here] ''and may at times be out of date. Please refer to the original for the most recent version.''</td><td colspan="2">&nbsp;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/SessionProtocol SessionProtocol 2006-04-13T13:19:50Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 13:19, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot;<span style="color: red; font-weight: bold;">: </span>==</td><td>+</td><td style="background: #cfc; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot; ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Revision 5 (Apr 12, 2006) ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Revision 5 (Apr 12, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Changelog<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Changelog ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&#160;</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Revision Date Description</td><td> </td><td style="background: #eee; font-size: smaller;"> Revision Date Description</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> 1 Aug 25, 2005 Specification initiated.</td><td> </td><td style="background: #eee; font-size: smaller;"> 1 Aug 25, 2005 Specification initiated.</td></tr> <tr><td colspan="2" align="left"><strong>Line 13:</strong></td> <td colspan="2" align="left"><strong>Line 12:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Added &quot;ABORT&quot; protocol function.</td><td> </td><td style="background: #eee; font-size: smaller;"> Added &quot;ABORT&quot; protocol function.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Description<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Description ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">The purpose of the SessionProtocol is to provide a communication protocol between an application and SynchroEdit, and is used to instantiate new or manipulate existing SynchroEdit sessions. The applications which will communicate with SynchroEdit are here referred to as &quot;request servers&quot;. The protocol covers the actions of setting sessions up using existing XHTML-formatted data, and leaves the conversion to and from whatever native format there may be to the request servers and their relatives. SynchroEdit has an internal interface called [[DomExport]] which may or may not be used to ease this process, however there are many tools out there which do a good job of converting e.g. HTML to XHTML and vice versa, already. This specification describes the &quot;service protocol&quot; of SynchroEdit.</td><td> </td><td style="background: #eee; font-size: smaller;">The purpose of the SessionProtocol is to provide a communication protocol between an application and SynchroEdit, and is used to instantiate new or manipulate existing SynchroEdit sessions. The applications which will communicate with SynchroEdit are here referred to as &quot;request servers&quot;. The protocol covers the actions of setting sessions up using existing XHTML-formatted data, and leaves the conversion to and from whatever native format there may be to the request servers and their relatives. SynchroEdit has an internal interface called [[DomExport]] which may or may not be used to ease this process, however there are many tools out there which do a good job of converting e.g. HTML to XHTML and vice versa, already. This specification describes the &quot;service protocol&quot; of SynchroEdit.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Definitions<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Definitions ===</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> &quot;native system&quot; - the system, e.g. a wiki that holds the original data</td><td> </td><td style="background: #eee; font-size: smaller;"> &quot;native system&quot; - the system, e.g. a wiki that holds the original data</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> &quot;SynchroEdit&quot; - the simultaneous editing session server</td><td> </td><td style="background: #eee; font-size: smaller;"> &quot;SynchroEdit&quot; - the simultaneous editing session server</td></tr> <tr><td colspan="2" align="left"><strong>Line 25:</strong></td> <td colspan="2" align="left"><strong>Line 23:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> &quot;XHTML:content&quot; - the content being edited in XHTML form</td><td> </td><td style="background: #eee; font-size: smaller;"> &quot;XHTML:content&quot; - the content being edited in XHTML form</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> &quot;session&quot; - a string identifier for a particular session</td><td> </td><td style="background: #eee; font-size: smaller;"> &quot;session&quot; - a string identifier for a particular session</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Session flow: ===</td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Implementation status ===</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">The SessionProtocol will be implemented into SynchroEdit in full in version 0.5. This version will approximately be released into the development repository in '''the end of April, 2006'''.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol functions QUERY, GET, INIT, ABORT, OPEN, STATUS and STORE have been fully implemented.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol function SHUTDOWN has been partially implemented.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* The protocol functions ACCESS, SETTING, KICK and UNKICK have not been implemented.</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Session flow ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">Parenthesized entries in the session flow are suggestive, while non-parenthesized entries are required.</td><td> </td><td style="background: #eee; font-size: smaller;">Parenthesized entries in the session flow are suggestive, while non-parenthesized entries are required.</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td colspan="2" align="left"><strong>Line 56:</strong></td> <td colspan="2" align="left"><strong>Line 59:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* (&lt;Request server&gt; requests from native system an update of &lt;native:content&gt;.)</td><td> </td><td style="background: #eee; font-size: smaller;">* (&lt;Request server&gt; requests from native system an update of &lt;native:content&gt;.)</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Protocol specification<span style="color: red; font-weight: bold;">: </span>===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Protocol specification ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">==== Request<span style="color: red; font-weight: bold;">-</span>server to &lt;<span style="color: red; font-weight: bold;">DOM server</span>&gt; specification: ====</td><td>+</td><td style="background: #cfc; font-size: smaller;">==== <span style="color: red; font-weight: bold;">&lt;</span>Request server<span style="color: red; font-weight: bold;">&gt; </span>to &lt;<span style="color: red; font-weight: bold;">SynchroEdit</span>&gt; specification: ====</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"><span style="color: red; font-weight: bold;">&lt;pre&gt;</span></td><td>+</td><td style="background: #cfc; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUERY</td><td> </td><td style="background: #eee; font-size: smaller;"> Command: QUERY</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> Success response: DOCUMENT [document]</td><td> </td><td style="background: #eee; font-size: smaller;"> Success response: DOCUMENT [document]</td></tr> <tr><td colspan="2" align="left"><strong>Line 158:</strong></td> <td colspan="2" align="left"><strong>Line 160:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> is not a known editor of the session. Returns &quot;CLEAN&quot;</td><td> </td><td style="background: #eee; font-size: smaller;"> is not a known editor of the session. Returns &quot;CLEAN&quot;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"> if the user does not have a kick timer.</td><td> </td><td style="background: #eee; font-size: smaller;"> if the user does not have a kick timer.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">&lt;/pre&gt;</td><td colspan="2">&nbsp;</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-13T13:11:13Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 13:11, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 22:</strong></td> <td colspan="2" align="left"><strong>Line 22:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">* [[Helping Out]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">** [[Helping Out]]</td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Helping_Out Helping Out 2006-04-13T13:00:21Z <p></p> <p><b>New page</b></p><div>== Make It Better! ==<br /> SynchroEdit is an open source project aimed at providing the world with an as transparent and seamless as possible solution for implementing multi-user simultaneous editing inside the browser. Currently, SynchroEdit is in its infant stages, with some hard-to-catch bugs in the core system as well as some much-needed functionality lacking. If you feel it is worth your while, we could surely use your help in whatever area you feel knowledgeable, be that writing code, finding bugs, translating the application(s), writing documentation, providing us with nice graphics to replace that ugly toolbar with, etc.<br /> <br /> == Sounds Good, What Do I Do? ==<br /> <br /> The SynchroEdit team desires that all contributors of ideas, code, or documentation to the SynchroEdit project complete, sign, and submit (via snailmail or fax) a Contributor's Agreement [[http://www.synchroedit.com/contaggr.pdf PDF form]]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the SynchroEdit project and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. A signed Contributor's Agreement is required to be on file before an individual is given commit rights to a SynchroEdit repository.<br /> <br /> Snailmail should be sent to:<br /> &lt;pre&gt;<br /> Alacrity Management Corporation<br /> 1563 Solano Ave Ste 353<br /> Berkeley, CA 94707-2116<br /> USA<br /> &lt;/pre&gt;<br /> Faxed material should be sent to &lt;strong&gt;1-510-528-7071&lt;/strong&gt;.<br /> <br /> After submitting a contributor's agreement, you are encouraged to contact us so that we can confirm that your submission has reached us.<br /> <br /> Thank you for considering becoming a contributor to the SynchroEdit project!<br /> <br /> ''This page is a copy of the one available'' [http://www.synchroedit.com/helpout.php here] ''and may at times be out of date. Please refer to the original for the most recent version.''</div> Kalle Alm http://wiki.synchroedit.com/index.php/Main_Page Main Page 2006-04-13T12:54:30Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 12:54, 13 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 2:</strong></td> <td colspan="2" align="left"><strong>Line 2:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">SynchroEdit is a browser-based multiuser editor. It allows multiple users to share a single X(HT)ML or text document, edit the document the same time, and synchronize changes so that all users have the same version.</td><td> </td><td style="background: #eee; font-size: smaller;">SynchroEdit is a browser-based multiuser editor. It allows multiple users to share a single X(HT)ML or text document, edit the document the same time, and synchronize changes so that all users have the same version.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Demonstration ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Demonstration ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 10:</strong></td> <td colspan="2" align="left"><strong>Line 9:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== What's happening right now? ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== What's happening right now? ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td><td> </td><td style="background: #eee; font-size: smaller;">* We are looking for some people available via IM to be a [[test swarm]] for us. We'll ping you when we have a new feature to test, and if you are available, we just need you to pound on SynchroEdit and help us see if anything is wrong.</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">* We <span style="color: red; font-weight: bold;">have finally released </span>the <span style="color: red; font-weight: bold;">stable 0.3 version of </span>SynchroEdit. <span style="color: red; font-weight: bold;">Check it out and tell us what you think</span>! Some <span style="color: red; font-weight: bold;">changes have occured, though</span>, <span style="color: red; font-weight: bold;">so we encourage you </span>to <span style="color: red; font-weight: bold;">check </span>the <span style="color: red; font-weight: bold;">[[upgrading notes]] out for information on how you can merge your existing 0.2 servers</span>.</td><td>+</td><td style="background: #cfc; font-size: smaller;">* We<span style="color: red; font-weight: bold;">'ve converted </span>the SynchroEdit <span style="color: red; font-weight: bold;">wiki over to [http://www</span>.<span style="color: red; font-weight: bold;">mediawiki.org/wiki/MediaWiki MediaWiki]. If anyone has tips on spammer tweaks, we're eager to know</span>! Some <span style="color: red; font-weight: bold;">majorly cool stuff is happening on the admin-side of SynchroEdit as well</span>, <span style="color: red; font-weight: bold;">yet </span>to <span style="color: red; font-weight: bold;">be released in </span>the <span style="color: red; font-weight: bold;">dev repository</span>. <span style="color: red; font-weight: bold;">Stay tuned!</span></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Source code ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* Information on how to obtain the source code is [http://www.synchroedit.com/source.php here].</td><td> </td><td style="background: #eee; font-size: smaller;">* Information on how to obtain the source code is [http://www.synchroedit.com/source.php here].</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== User Documentation ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== User Documentation ===</td></tr> <tr><td colspan="2" align="left"><strong>Line 22:</strong></td> <td colspan="2" align="left"><strong>Line 20:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Windows quick-install]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Windows quick-install]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Almost working setup on Win32]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Almost working setup on Win32]]</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Developer Documentation ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchroEdit Overview]]</td></tr> <tr><td colspan="2">&nbsp;</td><td>+</td><td style="background: #cfc; font-size: smaller;">** [[Helping Out]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Milestones]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Open issues]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Open bugs]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Open bugs]]</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Protocol Specifications ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Protocol Specifications ====</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchronizedProtocol]] - ''client-to-server, server-to-client''</td><td> </td><td style="background: #eee; font-size: smaller;">* [[SynchronizedProtocol]] - ''client-to-server, server-to-client''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[SessionProtocol]] - ''simultaneous editor server &lt;-&gt; wiki server''</td><td> </td><td style="background: #eee; font-size: smaller;">* [[SessionProtocol]] - ''simultaneous editor server &lt;-&gt; wiki server''</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Specifications ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Specifications ====</td></tr> <tr><td colspan="2" align="left"><strong>Line 41:</strong></td> <td colspan="2" align="left"><strong>Line 37:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">** [[DomSynchronizedStateInstance]] - ''synchronized editing instance specification (DSS)''</td><td> </td><td style="background: #eee; font-size: smaller;">** [[DomSynchronizedStateInstance]] - ''synchronized editing instance specification (DSS)''</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">*** [[DomSynchronizedParty]] - ''group-of-editors specification, with user-coloring and user-cursor-positioning etc.''</td><td> </td><td style="background: #eee; font-size: smaller;">*** [[DomSynchronizedParty]] - ''group-of-editors specification, with user-coloring and user-cursor-positioning etc.''</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Implementation Instances ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Interface Implementation Instances ====</td></tr> <tr><td colspan="2" align="left"><strong>Line 47:</strong></td> <td colspan="2" align="left"><strong>Line 42:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[DomServer]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[DomServer]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[DomClient]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[DomClient]]</td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;"></td><td colspan="2">&nbsp;</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">==== Other Developer Docs ====</td><td> </td><td style="background: #eee; font-size: smaller;">==== Other Developer Docs ====</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Internet Explorer 6]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Internet Explorer 6]]</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">* [[Internet Explorer 7]]</td><td> </td><td style="background: #eee; font-size: smaller;">* [[Internet Explorer 7]]</td></tr> </table> Kalle Alm http://wiki.synchroedit.com/index.php/Talk:Main_Page Talk:Main Page 2006-04-13T12:42:40Z <p></p> <p><b>New page</b></p><div>We've converted the wiki to use MediaWiki, which will hopefully help us maintain things a little better (require registration etc).<br /> :[[User:Kalle Alm|Kalle Alm]] 05:42, 13 April 2006 (PDT)</div> Kalle Alm http://wiki.synchroedit.com/index.php/SessionProtocol SessionProtocol 2006-04-12T14:22:47Z <p></p> <table border='0' width='98%' cellpadding='0' cellspacing='4' style="background-color: white;"> <tr> <td colspan='2' width='50%' align='center' style="background-color: white;">Revision as of 14:22, 12 April 2006</td> <td colspan='2' width='50%' align='center' style="background-color: white;">Current revision</td> </tr> <tr><td colspan="2" align="left"><strong>Line 1:</strong></td> <td colspan="2" align="left"><strong>Line 1:</strong></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot;: ==</td><td> </td><td style="background: #eee; font-size: smaller;">== Interface specification &quot;SessionProtocol&quot;: ==</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td>-</td><td style="background: #ffa; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">4 </span>(Apr <span style="color: red; font-weight: bold;">11</span>, 2006) ===</td><td>+</td><td style="background: #cfc; font-size: smaller;">=== Revision <span style="color: red; font-weight: bold;">5 </span>(Apr <span style="color: red; font-weight: bold;">12</span>, 2006) ===</td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;"></td><td> </td><td style="background: #eee; font-size: smaller;"></td></tr> <tr><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog: ===</td><td> </td><td style="background: #eee; font-size: smaller;">=== Changelog: ===</td></tr> </table> Kalle Alm