| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <title>Document Editing on Small Devices - XMerge</title> |
| |
| <meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8"> |
| </head> |
| <body> |
| <h1>Document Editing on Small Devices - XMerge</h1> |
| <!-- no current top news! |
| <h2><strong>Top News</strong>: <a href="xml_specification_draft.pdf">XML File Format Specification Updated</a></h2> |
| --> |
| <a href="background.html" class="ProjectName">Background</a> | <a |
| href="index.html#overview" class="ProjectName">Overview</a> | <a |
| href="index.html#status" class="ProjectName">News and Updates</a> | <a |
| href="index.html#future" class="ProjectName">Proposed Future Projects</a> |
| | <a href="index.html#plugin-ins" class="ProjectName">Plugins</a> | <a |
| href="index.html#doc" class="ProjectName">Documentation and Resources</a> |
| | <a href="index.html#build" class="ProjectName">Building XMerge</a> |
| <p align="justify"><strong>Project Owner:</strong> <a |
| href="mailto:Svante.Schubert [AT].sun.com">Svante Schubert</a><br> |
| <small>(Please use the provided <a |
| href="http://xml.openoffice.org/servlets/ProjectMailingListList">mailing |
| lists</a> for discussion of the XML based file format and related |
| issues.)</small> </p> |
| <a name="overview"></a> |
| <br> |
| <h2>Overview</h2> |
| <p> </p> |
| <p>The goals of the Document Editing on Small Devices project is to:<br> |
| </p> |
| <ul> |
| <li>Allow for the editing of rich format documents on small devices, |
| using 3rd party applications native to the device to do the editing.</li> |
| <li>Support the most widely used small devices, namely:</li> |
| <ul> |
| <li>Palm</li> |
| <li>PocketPC</li> |
| </ul> |
| <li>Provide the ability to merge edits made in the small device's |
| lossy format back into the original richer format document maintaining |
| it's original style.</li> |
| <li>Take advantage of the open and well defined OpenOffice.org XML |
| document format.</li> |
| <li>Provide a framework with the ability to have plugin-able Convert, |
| Diff and Merge implementations. It should be possible determine a |
| converter's capabilities at run-time.</li> |
| </ul> |
| <p> </p> |
| <p> The XMerge SDK provides a Java-based framework for converting |
| documents between different formats using conversion plugins to read |
| and write each format. More about what plugins are available can be |
| found in the <a href="#plug-ins">plugin section</a> below.</p> |
| <p>In addition to format conversion, the XMerge SDK provides a |
| framework for merging changes in one document format (usually a simpler |
| or lower quality format) into an original document (typically in a |
| richer format). The benefit of merging is that richer styles or |
| content in the original document are retained, while the edits made to |
| the simpler format can be applied or merged into the original document.<br> |
| </p> |
| <p> To meet these goals there are two significant interfaces in XMerge:</p> |
| <ul> |
| <li>the Conversion API's, used by applications to use a supported |
| format conversion</li> |
| <li>the Plugin SPI, which is used by developers who want to add |
| conversion support for a new document format.</li> |
| </ul> |
| All plugins are designed to support the OpenOffice.org |
| XML file format on one side and the device format on the other, the |
| framework is able to support "chaining" of conversions, also known as |
| an "Any-to-Any" conversion, eg. convert from a Palm document to a |
| PocketPC document through the intermediate OpenOffice.org XML file |
| format.<br> |
| <p> </p> |
| <a name="status"></a> |
| <h2>News and updates</h2> |
| <ul> |
| <li><b>Mobile Device Support in OpenOffice</b><br> |
| The Mobile Device Support Pack for OpenOffice 1.0 is now available. |
| Grab it <a href="downloads/index.html">here</a><br> |
| This mini-install integrates XMerge plugins into OpenOffice using the |
| upcoming |
| XmlFilterAdapter. Try it out and let us know how it goes. </li> |
| <li><b>ActiveSync and OpenOffice</b><br> |
| ActiveSync Support has been added. You can now sync OpenOffice |
| Writer and Calc documents to and from a Pocket PC device. ActiveSync |
| will |
| automatically invoke XMerge plugins to perform the appropriate |
| conversions. |
| You can get the filter from the <a href="downloads/index.html">downloads |
| section</a>. </li> |
| <li><b>Nokia Communication Word Processor Format Support</b><br> |
| Nick Richards has taken on the writing of a plugin for the PsiWord |
| format. |
| PsiWord is the format used by the word processor on the <a |
| href="http://www.nokia.com/phones/9210/">Nokia 9210 Communicator</a>, |
| the Symbian based PDA/phone and other PDA's running the EPOC OS. <br> |
| Nick is looking for others to help in writing the plugin, so if you can |
| spare the time he can be reached at <a |
| href="mailto:nedrichards@openoffice.org">nedrichards@openoffice.org</a> |
| </li> |
| <li><b>Writer2LaTeX XMerge Plugin</b><br> |
| <a>Henrik Just has now implemented his </a><a |
| href="http://www.hj-gym.dk/%7Ehj/writer2latex/">Writer2LaTeX </a>converter |
| as an XMerge plugin. This means that now his converter can now be used |
| as an OpenOffice.org export filter as well as being able to perform |
| standalone command line conversions. For more information and the |
| latest versions, visit <a |
| href="http://www.hj-gym.dk/%7Ehj/writer2latex/">Henrik's web-page.</a></li> |
| </ul> |
| <a name="future"></a><br> |
| <h2>Proposed future projects</h2> |
| <ul> |
| <li>Synchronisation support for devices, could be any of the |
| following:</li> |
| <ul> |
| <li>Application on small device that pulls down a document in |
| desired format and synchronises back.</li> |
| <li>Desktop synchronisation integration (eg. HotSync).<em></em></li> |
| </ul> |
| <li>New plugins for other small document formats.</li> |
| <li>Enhancements to existing plugins</li> |
| <li>Alternate implementations to the diff and merge engines</li> |
| <li>Support for OpenOffice.org presentations.</li> |
| <li>Provision of a parser independent "XMLWriter". This would in |
| theory allow XMerge to work with any XML parser with DOM level |
| 2 support.</li> |
| </ul> |
| <a name="plug-ins"></a> |
| <h2>Plugins</h2> |
| <table cellpadding="4" cellspacing="1" bgcolor="#f0f0f0" width="100%"> |
| <tbody> |
| <tr align="center"> |
| <th bgcolor="#99ccff" width="20%"><font color="#00315a" |
| face="Arial, Helvetica" size="2"><b> Platform</b></font></th> |
| <th bgcolor="#99ccff" width="20%"><font color="#00315a" |
| face="Arial, Helvetica" size="2"><b> Plug-in Name</b></font></th> |
| <th bgcolor="#99ccff"><font color="#00315a" |
| face="Arial, Helvetica" size="2"><b> Description</b></font></th> |
| <td valign="top" bgcolor="#99ccff">Current Status<br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top">Any<br> |
| </td> |
| <td valign="top" width="20%">XSLT<br> |
| <code></code></td> |
| <td valign="top">The XSLT plug-in, makes use of the <a |
| href="http://xml.apache.org/xalan-j/index.html">Xalan XSLT</a> |
| processor, in order to translate an xml document to and from a |
| specified xml/xhtml format.<br> |
| </td> |
| <td valign="top">Source Available<br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top">Palm<br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top" width="20%"><a |
| href="plugins/aportisdoc.html">AportisDoc</a><br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top">Plugin for editing StarWriter |
| documents in the AportisDoc format originally developed by Aportis |
| Technology Corporation. However Aportis as of 31st Dec 2002 were |
| acquired by <a href="http://www.ultrasoft.com/BrainForest/">UltraSoft</a>. |
| There are still<a |
| href="http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=aportisdoc+format+palm&spell=1"> |
| many palm applications</a> that use the Aportisdoc format. This plugin |
| supports merging of textual changes. </td> |
| <td valign="top" bgcolor="#f0f0f0">Source Available<br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top">Palm<br> |
| </td> |
| <td valign="top" bgcolor="#f0f0f0"><a href="plugins/minicalc.html">MiniCalc</a><br> |
| </td> |
| <td valign="top" bgcolor="#f0f0f0">Sample implementation for |
| editing StarCalc spreadsheets with <a |
| href="http://www.solutionsinhand.com">MiniCalc</a> on the Palm. This |
| plugin |
| supports merging of textual changes.<br> |
| </td> |
| <td valign="top" bgcolor="#f0f0f0">Source Available<br> |
| </td> |
| </tr> |
| <tr> |
| <td valign="top">PocketPC<br> |
| </td> |
| <td valign="top"><a href="plugins/pocketword.html">Pocket |
| Word</a><br> |
| </td> |
| <td valign="top">Support of editing text documents through |
| PocketWord<br> |
| </td> |
| <td valign="top">Source Available</td> |
| </tr> |
| <tr> |
| <td valign="top">PocketPC<br> |
| </td> |
| <td valign="top"><a href="plugins/pocketexcel.html">Pocket |
| Excel</a><br> |
| </td> |
| <td valign="top">Support for editing spreadsheets in PocketExcel<br> |
| </td> |
| <td valign="top">Source Available<br> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <i>*Follow links for more information and screen-shots.</i> <a |
| name="doc"></a> |
| <h2>Documentation and Resources</h2> |
| <table cellpadding="4" cellspacing="1" bgcolor="#ffffff" width="100%"> |
| <tbody> |
| <tr> |
| <td colspan="3" bgcolor="#00315a" align="center"><font |
| color="#ffffff" face="arial, helvetica" size="2"><b> Documentation for |
| the XMerge SDK</b></font></td> |
| </tr> |
| <tr> |
| <th bgcolor="#99ccff" align="center"><font color="#00315a" |
| face="arial, helvetica" size="2"><b> Document</b></font></th> |
| <th bgcolor="#99ccff" align="center"><font color="#00315a" |
| face="arial, helvetica" size="2"><b> Summary</b></font></th> |
| <th bgcolor="#99ccff" align="center"><font color="#00315a" |
| face="arial, helvetica" size="2"><b> Format and Size</b></font></th> |
| </tr> |
| <tr> |
| <td bgcolor="#f0f0f0" valign="top"><a href="docs/XMerge_sdk.pdf">XMerge |
| Document Conversion SDK</a> <br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top">A developer's guide for the |
| XMerge SDK. Describes how to use the client API, implement plugins, |
| testing and installing plug-ins.<br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top"> PDF, 180K<br> |
| </td> |
| </tr> |
| <tr> |
| <td bgcolor="#f0f0f0" valign="top"><a href="docs/XSLTPlugin.pdf">XSLT |
| Plugin Implementation</a><br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top">Describes the XSLT converter |
| plugin, how to use it and also how to implement further XSLT plugins.<br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top"> PDF, 11K<br> |
| </td> |
| </tr> |
| <tr> |
| <td bgcolor="#f0f0f0" valign="top"><a |
| href="docs/xmerge_javadoc.zip"> XMerge JavaDocs</a> <br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top"> Generated from JavaDoc |
| comments in the sources.<br> |
| </td> |
| <td bgcolor="#f0f0f0" valign="top"> ZIP, 364K<br> |
| </td> |
| </tr> |
| <!-- |
| <tr> |
| <td bgcolor="#f0f0f0" valign="top"><a href="...">...</a></td> |
| <td bgcolor="#f0f0f0" valign="top">...</td> |
| <td bgcolor="#f0f0f0" valign="top">...</td> |
| </tr> |
| --> |
| </tbody> |
| </table> |
| <!--<p><br> |
| </p> |
| |
| <p><br> |
| </p> |
| <a name="build"></a>--> |
| <a name="build"></a><br> |
| <h2>Building XMerge</h2> |
| <p> The following document describes the process for building the |
| OpenOffice.org XMerge project, either standalone or as part of the |
| OpenOffice.org build environment. </p> |
| <h3>Requirements</h3> |
| The following tools are necessary in order to build the XMerge project.<br> |
| <ul> |
| <li><a href="http://java.sun.com/j2se/1.3/" target="_blank"> Java 1.3 |
| or 1.4</a> </li> |
| <li><a href="http://java.sun.com/xml/archive.html" target="_blank">JAXP |
| 1.0</a> or <a href="http://xml.apache.org/xerces-j/index.html" |
| target="_blank"> Xerces-J</a> </li> |
| <li><a href="http://jakarta.apache.org/ant/index.html" target="_blank">Ant</a> |
| </li> |
| <li><a href="http://xml.apache.org/xalan-j/index.html" target="_blank">Xalan-J |
| 2.2</a> </li> |
| </ul> |
| <p><b>Note:</b> Java 1.4 includes the Crimson XML parser and Xalan. If |
| using |
| Java 1.4 the only requirement is Ant.</p> |
| <p><b>N.B.</b> Xalan 2.3 splits the XSLT classes between two JAR files. |
| The build environment expects the XSLT classes to be contained in <code>xalan.jar</code> |
| only.</p> |
| <h3>Obtaining the source</h3> |
| The source for XMerge is maintained under CVS control as part of the |
| XML project. <br> |
| <br> |
| See the XML Project's <a |
| href="http://xml.openoffice.org/servlets/ProjectSource" target="_blank"> |
| Source page</a> for information on obtaining and contributing to source |
| code.<br> |
| <br> |
| If using CVS, setup your CVS access according to the |
| Source page and checkout the <tt>xmerge</tt> module.<br> |
| <pre> <tt>% cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co oo/xml/xmerge</tt></pre> |
| <br> |
| The source can also be downloaded as a ZIP file <a |
| href="xmerge_src.zip"> here.</a><br> |
| <h3>Building in a Standalone Environment<br> |
| </h3> |
| <p> To build XMerge in a standalone environment, copy all of the jar |
| files mentioned above and the Xalan-J archive into a directory.</p> |
| <p>You will need to include the Ant binary directory in your PATH. |
| Ant requires that the JAVA_HOME variable also be set.<br> |
| </p> |
| <p> Wrapper scripts have been provided to execute the build. On |
| a UNIX based system use:</p> |
| <pre> <tt>% build_xmerge -jars <jar_location> </tt><tt>[-debug | optimize]</tt></pre> |
| <p>and on Windows use :<br> |
| </p> |
| <pre> <tt>C:\XMerge> build_xmerge.bat -jars <jar_location></tt><tt> [-debug | -optimize]</tt></pre> |
| <p>where <jar_location> is the directory containing the required |
| JAR files.</p> |
| <p><b>Note:</b> If using Java 1.4 the jar file location can be given as |
| any |
| directory as Java 1.4 includes the XML and XSLT class files.</p> |
| <p>The scripts also support building a debug version and an optimized |
| version. Simply specify <tt>-debug</tt> or <tt>-optimize</tt> |
| as options. These options are mutually exclusive. If both |
| are set, the first one encountered will be used for build purposes.</p> |
| <br> |
| <h3>Building as part of OpenOffice.org</h3> |
| <p> Setup your OpenOffice.org build environment as detailed in the <a |
| href="http://www.openoffice.org/documentation.html#guides">OpenOffice.org |
| build documents</a>.<br> |
| </p> |
| <p> To build XMerge, you will also need to copy the Ant and Xalan-J Jar |
| files into your solver's bin directory, e.g. |
| ${SOLARVER}/642/{platform}/bin.<br> |
| </p> |
| <p> Once these files are present simply execute the build:<br> |
| </p> |
| <pre> <tt>% build</tt></pre> |
| <p>The build will execute and JAR files and documentation will be |
| contained in a platform-named directory created in the <i>xmerge</i> |
| directory.<br> |
| </p> |
| <h3>Running the Test Driver command-line utility<br> |
| </h3> |
| <p>Once the sources have been built, you can test the plugins using the |
| test Driver command-line utility. <br> |
| <br> |
| To this you will need to know the location of all the JAR files that |
| were built, this will vary depending on the mechanism used to build. |
| You |
| will also need the location of the JAR files that you downloaded as |
| stated |
| in the Requirements section above. <br> |
| </p> |
| <p>Once you have all of this, you execute the test Driver as |
| follows:<br> |
| </p> |
| <pre> % java -cp <jar_location> org.openoffice.xmerge.test.Driver -from <mime-type> -to <mime-type> [-merge <original file>] <file>... <br></pre> |
| <p>The from and to mime-types to use will depend on the type of |
| documents being converted. The "-merge" option is only usable when |
| converting from the device format to the OpenOffice.org document.<br> |
| </p> |
| <br> |
| </body> |
| </html> |