<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-29052616</id><updated>2012-01-21T05:17:40.503+01:00</updated><title type='text'>Florian Reuter's Weblog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-29052616.post-2074283958990298785</id><published>2011-08-31T18:09:00.009+02:00</published><updated>2011-08-31T18:17:50.120+02:00</updated><title type='text'></title><content type='html'>ACID test for Absolute Positioned Frames.&lt;br /&gt;&lt;br /&gt;Based on the ACID test for &lt;a href="http://florianreuter.blogspot.com/2011/08/acid-test-for-absolute-positioned.html"&gt;Absolute Positioned Tables&lt;/a&gt; I created another test for Absolute Positioned Frames (APFs). Make sure you have the &lt;a href="http://wiki.csswg.org/test/fonts"&gt;Ahem font&lt;/a&gt; installed. The &lt;a href="http://www.nooxml.com/docx/acid03.docx"&gt;test document&lt;/a&gt; renders as follows:&lt;br /&gt;&lt;img src="http://www.nooxml.com/png/Word2007/acid03.docx.00001.png"&gt;&lt;/img&gt;&lt;br /&gt;Again, here is what e.g. LibreOffice.org makes out of it:&lt;br /&gt;&lt;img src="http://www.nooxml.com/png/LibO341/acid03.docx.00001.png"&gt;&lt;/img&gt;&lt;br /&gt;&lt;br /&gt;Not to mention again that APFs are important for business documents since they are used in letter heads etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-2074283958990298785?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/2074283958990298785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=2074283958990298785' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2074283958990298785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2074283958990298785'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2011/08/acid-test-for-absolute-positioned_31.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-6803134542058051</id><published>2011-08-29T23:38:00.010+02:00</published><updated>2011-08-30T14:23:41.125+02:00</updated><title type='text'></title><content type='html'>An ACID test for Absolute Positioned Tables&lt;br /&gt;&lt;br /&gt;Inspired by the first ACID test &lt;a href="http://en.wikipedia.org/wiki/Acid1"&gt;ACID1&lt;/a&gt; also called Box Acid Test I created a simple document to test the handling of Absolute Positioned Tables (APTs). APTs are used a lot in letter heads of e.g. business documents.&lt;br /&gt;The test is very simple. It uses the &lt;a href="http://wiki.csswg.org/test/fonts"&gt;Ahem font&lt;/a&gt; from the CSS test suite. Make sure you have the font installed on your machine in order to run the test.&lt;br /&gt;When successful this &lt;a href="http://www.nooxml.com/docx/acid01.docx"&gt;document&lt;/a&gt; is rendered as follows:&lt;br /&gt;&lt;img src="http://www.nooxml.com/png/Word2007/acid01.docx.00001.png" width="204" height="204"/&gt;&lt;br /&gt;Here is what e.g. LibreOffice (3.4.2) makes out of it:&lt;br /&gt;&lt;img src="http://www.nooxml.com/png/LibO341/acid01.docx.00001.png" width="204" height="204"/&gt;&lt;br /&gt;I really like these kind of tests because they are very visual and it is quite easy to understand whether the test worked or not.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-6803134542058051?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/6803134542058051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=6803134542058051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6803134542058051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6803134542058051'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2011/08/acid-test-for-absolute-positioned.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4358407467711040713</id><published>2011-08-11T10:42:00.009+02:00</published><updated>2011-08-11T10:54:45.768+02:00</updated><title type='text'></title><content type='html'>Advances in the layout engine&lt;br /&gt;&lt;br /&gt;I started implementing "Shape" support in my layout engine. What's so special about Shapes is the fact that the text needs to &lt;em&gt;flow&lt;/em&gt; around them when wrapping is enabled. Shapes are used a lot e.g. to construct letterheads etc. Good Shape support is absolutely crucial for business documents.&lt;br /&gt;Here is my sample document I used for testing &lt;a href="http://www.nooxml.com/docx/wrap03.docx"&gt;wrap03.docx&lt;/a&gt;:&lt;br /&gt;&lt;a href="http://www.nooxml.com/pdf/NOOX/wrap03.docx.pdf"&gt;&lt;img src="http://www.nooxml.com/png/NOOX/wrap03.docx.00001.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;It shows Shape objects with "tight" wrapping  and the different wrapping modes as defined in 20.4.3.7 ST_WrapText (Text Wrapping Location) of the OOXML specification:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;both (Both Sides) Specifies that text shall wrap around both sides of the object.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;left (Left Side Only) Specifies that text shall only wrap around the left side of the object.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;right (Right Side Only) Specifies that text shall only wrap around the right side of the object.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;I'm really happy to have this key feature in the layout engine. Just to show how difficult this is to implement take a look at what Google Docs makes out of it: &lt;a href="https://docs.google.com/viewer?url=http://www.nooxml.com/docx/wrap03.docx"&gt;wrap03.docx&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4358407467711040713?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4358407467711040713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4358407467711040713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4358407467711040713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4358407467711040713'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2011/08/advances-in-layout-engine-i-started.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-8474156652933160830</id><published>2011-02-07T16:30:00.004+01:00</published><updated>2011-02-07T16:38:05.290+01:00</updated><title type='text'></title><content type='html'>Just came back from FOSDEM. Felt really good to meet the “usual suspects” again. Thanks for the great weekend!&lt;br /&gt;&lt;br /&gt;I also had a chance to talk with Jos about ODF Web and ODF Collaboration. Jos gave a great talk about his ODF Web Javascript Framework which emerged from his ODFKit efforts. &lt;br /&gt;Jos had a very important slide in his talk which echoed my own believe: NO CONVERSION! This principle guided the design of his ODF Web Framework. NO CONVERSION simply means that Jos does not try to heuristically (aka lossy) map ODF to HTML and then map HTML heuristically (aka lossy) back to ODF. Instead Jos decided to have a clean 2-tier architecture which cleanly separates the content- and the view layer: ODF is content and HTML is the view. I think that’s the right approach. Even more: I think if you start adding “smart conversions”/”heuristics” and other “intelligent mappings” things will get ugly sooner or later. [And from my experience on OpenOffice.org filter hacking things will get messy sooner than you like. Always keep Murphy’s law in mind: What can go wrong will go wrong!].&lt;br /&gt;We also had a chance to talk about Operational Transformation (OT) in the context of ODF. I tried to argue that what is really missing in ODF is a list of “atomic changes” a user can make to an ODF document. If we had this list of “atomic changes” we could build a transformation on top of it. For OT it is very important that you have “atomic” operations, since you need operation transformations for every pair of operation. E.g. if you have |OPS| operations you need |OPS x OPS| transformations. So keeping |OPS| small is quite important!&lt;br /&gt;Assembling the list of atomic operations is a lot of work --- admitted. However it is work that every designer of an API needs to do anyway. I really believe that some input from the ODF API projects like Oracles’ ODFDOM, IBM’s Simple API for ODF, ANR’s LPOD  and Jos’ ODFKit could really help.&lt;br /&gt;Let me finish my post by a classification of change to an ODF document:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/TVARD-e1z0I/AAAAAAAAAIQ/aejOhYvKRZg/s1600/changeclasses.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/TVARD-e1z0I/AAAAAAAAAIQ/aejOhYvKRZg/s400/changeclasses.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5570971499066937154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I believe that for change tracking we only need “atomic operations” and a way to combine them to “compound operations”. I don’t think we need to be able to track changes to the XML tree or the XML text. In fact I think it does more harm than good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-8474156652933160830?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/8474156652933160830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=8474156652933160830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8474156652933160830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8474156652933160830'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2011/02/just-came-back-from-fosdem.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_k9bd8YQpZ7Y/TVARD-e1z0I/AAAAAAAAAIQ/aejOhYvKRZg/s72-c/changeclasses.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4542071435127884230</id><published>2011-01-11T01:35:00.013+01:00</published><updated>2011-01-11T02:26:43.727+01:00</updated><title type='text'></title><content type='html'>A lot has happened since my last blogpost in June 2009.&lt;br /&gt;&lt;br /&gt;Its 2011 and I have been working for more than a year on a new project called “Native OfficeOpenXML” (NOOXML). The story is quite simple: I was very disappointed with the quality of the support of the “docx” format in OpenOffice.org. Even more --- I'm very disappointed with the code quality and the design! of the OpenOffice.org Writer core and layout. There are people who believe this can be solved by “code refactoring” fixing “low-hanging-fruits”, “quick wins” and other magic silver-bullet-phrases. But one thing was for certain: There is no way to (re-)implement a core and a layout engine. Can't be done. Impossible. No way.&lt;br /&gt;&lt;br /&gt;OpenOffice.org took the refactoring route. I took the rewrite route.&lt;br /&gt;&lt;br /&gt;After one year &lt;a href="http://www.nooxml.com/comparison.html"&gt;here&lt;/a&gt; is where we are.&lt;br /&gt;&lt;br /&gt;What has happened:&lt;br /&gt;I started designing and implementing the NOOXML-core in Jan 2010. The magic is the datastructure which allows a compact representation of the documents and fast implementation of insert/deletion operations etc. I also wanted to be able to do real- time-collaboration, which influenced the design of the core a lot. In March 2010 I was able to load the ECMA Spec Part I (&lt;a href="http://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%201%20%96%20Fundamentals.docx"&gt;very big document&lt;/a&gt;) into the core. Not only on a desktop machine, but also on my “iPod” (not “iPad”!!).&lt;br /&gt;Once I had the basic core design and implementation done I started working on the layout engine. The primary goal was to build a fast and reliable layout engine. In my implementation I focused on OfficeOpenXML fidelity. In August I had the basic layout features like text, headers, footers, tables, footnotes etc. done. I was able to render the ECMA Spec Part I (again: very big document; &gt;5000 pages) to PDF. I then added section and multiple column support.&lt;br /&gt;Yesterday I was able to render the ECMA Spec Part I document on the iPod (real device) AND in the Android emulator (since I don't have an Android device) and without a user interface:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/TSunpMlLG8I/AAAAAAAAAH0/5JeLmBIbrpg/s1600/viewer-ipod.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/TSunpMlLG8I/AAAAAAAAAH0/5JeLmBIbrpg/s400/viewer-ipod.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5560722491112627138" /&gt;&lt;/a&gt;&lt;br /&gt;(I know: I took a really long time. But there is sooooo much room for improvements. And hey: OOo can't even load it on a desktop-machine.)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/TSuoilZtGRI/AAAAAAAAAH8/4wtAg3TZLQs/s1600/pdf-ipod.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/TSuoilZtGRI/AAAAAAAAAH8/4wtAg3TZLQs/s400/pdf-ipod.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5560723477027952914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here is the UI-less port for Android 2.3:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/TSut1rdLe2I/AAAAAAAAAIE/_EWoF_vssw0/s1600/android.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/TSut1rdLe2I/AAAAAAAAAIE/_EWoF_vssw0/s400/android.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5560729302628793186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy new year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4542071435127884230?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4542071435127884230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4542071435127884230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4542071435127884230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4542071435127884230'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2011/01/lot-has-happened-since-my-last-blogpost.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k9bd8YQpZ7Y/TSunpMlLG8I/AAAAAAAAAH0/5JeLmBIbrpg/s72-c/viewer-ipod.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-1499479428562571054</id><published>2009-06-30T13:14:00.004+02:00</published><updated>2009-06-30T13:21:49.542+02:00</updated><title type='text'></title><content type='html'>Bulk conversion&lt;br /&gt;&lt;br /&gt;Before continuing the “API saga” I needed to have an infrastructure to be able to load a bulk of documents and save them using a certain filter. For me the reason was mainly for testing purposes, however its very convenient for “bulk conversion” too.&lt;br /&gt;The syntax is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;./soffice.bin -bulk [targetDir]/[filterName].[targetExt] [dir] ... [dir]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;E.g. the following call will convert all *.odt documents from /home/freuter/tmp/ to “/home/freuter/tmp/out/*.doc” documents using the “MS Word 97” filter:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;./soffice.bin -bulk "/home/freuter/tmp/out/MS Word 97.doc" /home/freuter/tmp/*.odt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This command will convert all ~/tmp/*.doc documents to ~/tmp/out/*.odt using the ODF converter:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;./soffice.bin -bulk ~/tmp/out/writer8.odt ~/tmp/*.doc &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And finally this call will convert all ~/tmp/*.doc document to ~/tmp/out/*.pdf PDF document using the “ writer_pdf_Export” filter:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;./soffice.bin -bulk ~/tmp/out/writer_pdf_Export.pdf ~/tmp/*.doc &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The patch is &lt;a href="http://cgit.freedesktop.org/ooo-build/ooo-build/tree/patches/dev300/desktop-cmd-bulk-conversion.diff"&gt;here&lt;/a&gt;. I additionally fixed a bug in the m_nRequestCount logic and I enabled it in the [Experimental] section.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-1499479428562571054?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/1499479428562571054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=1499479428562571054' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/1499479428562571054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/1499479428562571054'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2009/06/bulk-conversion-before-continuing-api.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4475345556383532274</id><published>2009-06-26T09:18:00.004+02:00</published><updated>2009-06-26T09:27:04.537+02:00</updated><title type='text'></title><content type='html'>API Design Matters&lt;br /&gt;&lt;br /&gt;I was reading a very interesting article called "API Design Matters" with the subtitle "Bad application programming interfaces plague software engineering. How can we get things right?". &lt;a href="http://mags.acm.org/communications/200905/?folio=46&amp;amp;CFID=42687252&amp;amp;CFTOKEN=87741616"&gt;Very cool stuff&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In OpenOffice.org we have an API "plague" too: The ODF import/export is based on the "UNO-API" and so is the OOXML import for Writer. And developers &lt;em&gt;hate&lt;/em&gt; these APIs.&lt;br /&gt;&lt;br /&gt;So the question is why do developers hate the "UNO-API"? And the obvious --- but wrong answer --- is: "I hate the UNO-API because of UNO". Don't get me wrong here: This is neither about pro or contra UNO. But the statement that "UNO is the problem of the ODF import/export and OOXML import problems" is wrong. It's not UNO per se, but its the design of the API.&lt;br /&gt;[In case you're wondering what "UNO" is: UNO=COM ;-) So UNO is OpenOffice.org's way of COM.]&lt;br /&gt;&lt;br /&gt;And just to be sure I do not offend the wrong people: The UNO-API was not designed to be used in the import/export filters. It was designed to be the API for "OpenOffice.org BASIC" developers, i.e. it was designed to provide a similar API to what VBA developers have in Microsoft Office. It was never designed to be used for import/export filters.&lt;br /&gt;&lt;br /&gt;The problem was the decision to base the import/export code on such a high-level API! And we suffer from this decision until now!&lt;br /&gt;&lt;br /&gt;Anyway. How can we fix this?&lt;br /&gt;a) We claim the current API is the best mankind can do and print T-Shirts with 1000 years of OOo experience.&lt;br /&gt;b) We claim UNO and abstraction is the problem and use the internal legacy APIs, so that we never get a chance to refactor the internal legacy stuff since we're creating even more dependencies.&lt;br /&gt;c) We come up with a better API.&lt;br /&gt;&lt;br /&gt;Option a) was demonstrated at the OpenOffice.org conference in &lt;a href="http://en.ooobeijing2008.com/"&gt;Beijing&lt;/a&gt;. [Does anybody have a picture of the T-Shirt?]&lt;br /&gt;&lt;br /&gt;Option b) is the straightforward approach. E.g. in Writer the “.DOC”, “.RTF”, .”HTML” filters are based on the internal “Core” APIs. So lets use these APIs instead of the UNO-APIs.&lt;br /&gt;Whats wrong with the approach? The problem is that these internal APIs do not abstract from the underlying implementation at all. Repeat: The internal APIs do not abstract from the underlying implementation at all.&lt;br /&gt;Does this answer the question why using the internal APIs is the wrong approach? Obviously *not* having an abstraction between your core implementation details and your import/exports filters is ... [offensive language detected ;-)].&lt;br /&gt;&lt;br /&gt;Option c) only has one problem: How should the API look like?&lt;br /&gt;&lt;br /&gt;I have some ideas here, but before posting them maybe there are some strong believes out there?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4475345556383532274?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4475345556383532274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4475345556383532274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4475345556383532274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4475345556383532274'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2009/06/api-design-matters-i-was-reading-very.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-6515217095125319841</id><published>2008-04-15T18:02:00.005+02:00</published><updated>2008-04-15T19:28:24.500+02:00</updated><title type='text'></title><content type='html'>Finally we had a &lt;a href="http://wiki.services.openoffice.org/wiki/GoOOCon_2008"&gt;developer conference&lt;/a&gt;! The good thing is that it was real fun. The bad thing was that I learned and drank toooooo much....&lt;br /&gt;&lt;br /&gt;There are some dicussions I'd love to share with you:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Bug handling. Had some interresting chats about bug handling, responsiveness etc. from a developers point of view. Especially from a filter developers point of view. My believe is that we need a better clustering of bugs into problematic areas. This definetly will help to manage espectations as well as quality.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Mail merge. Learned that mail merge is not only broken IMHO but also in the opinion of others. Good (or bad ?:-)). However great things will happen here.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; UI. Very good ideas about how to change the UI. Thanks Ricardo that was a great session.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Interop brokeness. Discussed my ideas about how to change ODF and OOo for better interop. Always good to get your ideas “blessed” by the master himself. Thanks Caolan...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Some chats about what to do with &lt;a href="http://www.go-oo.org/"&gt;http://www.go-oo.org&lt;/a&gt; and how to attract more developer. Wait until my VM will appear... ;-)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Beside from the above some interresting news regarding OOXML/ODF/ISO arose. The &lt;a href="http://www.itscj.ipsj.or.jp/sc34/open/1025.htm"&gt;report&lt;/a&gt; from the ISO meeting in Oslo sounds very promising IMHO:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;quote&amp;gt;&lt;br /&gt;SC 34 envisages the creation of three distinct working groups that meet the needs of:&lt;br /&gt; 1. ISO/IEC 29500&lt;br /&gt; 2. ISO/IEC 26300&lt;br /&gt; 3. Work on interoperability/harmonization between document format standards&lt;br /&gt;    and wishes to incorporate existing expertise on these standards.&lt;br /&gt;&amp;lt;/quote;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Only trouble here is that the ODF people do *not* seem to be happy about that --- but I have no idea why?&lt;br /&gt;&lt;br /&gt;Overall it was a great week:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/SATkNlWSc7I/AAAAAAAAAC4/KvAyo5S85M4/s1600-h/IMGP1590.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/SATkNlWSc7I/AAAAAAAAAC4/KvAyo5S85M4/s320/IMGP1590.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5189523592652682162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/SATkfVWSc8I/AAAAAAAAADA/ZzHv6GDYfh0/s1600-h/IMGP1600.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/SATkfVWSc8I/AAAAAAAAADA/ZzHv6GDYfh0/s320/IMGP1600.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5189523897595360194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/SATktFWSc9I/AAAAAAAAADI/mtN2SB9oRvE/s1600-h/IMGP1606.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/SATktFWSc9I/AAAAAAAAADI/mtN2SB9oRvE/s320/IMGP1606.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5189524133818561490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;~Florian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-6515217095125319841?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/6515217095125319841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=6515217095125319841' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6515217095125319841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6515217095125319841'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2008/04/finally-we-had-developer-conference.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_k9bd8YQpZ7Y/SATkNlWSc7I/AAAAAAAAAC4/KvAyo5S85M4/s72-c/IMGP1590.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-2136728972774828558</id><published>2008-02-05T14:36:00.000+01:00</published><updated>2008-02-06T14:03:36.960+01:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: right;"&gt;"XML Namespaces are designed to support exactly this kind of thing." (&lt;a href="http://www.tbray.org/ongoing/When/200x/2005/11/27/Office-XML"&gt;Tim Bray&lt;/a&gt;)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;We make really good progress on our interoperability work. In our current focus area of fields we extended the OpenOffice.org Writer core for better support of MS Word-like fields. The first feature which benefits from this work are “Input fields” which now support the long wanted "tabbing" feature.&lt;br /&gt;&lt;br /&gt;However we want all fields to benefit from the new enhanced field core --- not only "Input fields". Other areas are e.g "Mail merge fields" etc.. Since all of this fields share the same generic mechanism we decided to add support for this generic MS Word-like fields in OpenOffice.org Writer. But by doing so we faced the problem that ODF is not supporting these kind of fields.&lt;br /&gt;&lt;br /&gt;Interestingly Tim Bray (Director of Web Technologies at Sun Microsystems) suggested a solution already in November 2005: &lt;a href="http://www.tbray.org/ongoing/When/200x/2005/11/27/Office-XML"&gt;http://www.tbray.org/ongoing/When/200x/2005/11/27/Office-XML&lt;/a&gt;. Unsurprisingly he suggested XML namespaces to solve this problem.&lt;br /&gt;&lt;br /&gt;Thats what we did. MS Word-like fields are now stored in the namespace&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;which clearly indicates the purpose: OOXML&amp;lt;-&amp;gt;ODF interoperability.&lt;br /&gt;&lt;br /&gt;The following RelaxNG fragment enhanced the current ODF specification with the new fields:&lt;br /&gt;&lt;pre&gt;&amp;lt;define name="paragraph-content" combine="choice"&amp;gt;&lt;br /&gt; &amp;lt;choice&amp;gt;&lt;br /&gt;  &amp;lt;element name="field:fieldmark"&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="text:name"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="string"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="field:type"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="namespacedToken"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="field:locked"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="boolean"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;         &amp;lt;sequence&amp;gt;&lt;br /&gt;        &amp;lt;ref name="fieldmark-parameter"/&amp;gt;&lt;br /&gt;        &amp;lt;zeroOrMore&amp;gt;&lt;br /&gt;       &amp;lt;ref name="paragraph-content"/&amp;gt;&lt;br /&gt;        &amp;lt;/zeroOrMore&amp;gt;  &lt;br /&gt;         &amp;lt;sequence&amp;gt;&lt;br /&gt;     &amp;lt;/element&amp;gt;&lt;br /&gt;  &amp;lt;element name="field:fieldmark-start"&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="text:name"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="string"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="field:type"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="namespacedToken"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;   &amp;lt;attribute name="field:locked"&amp;gt;&lt;br /&gt;    &amp;lt;ref name="boolean"/&amp;gt;&lt;br /&gt;   &amp;lt;/attribute&amp;gt;&lt;br /&gt;      &amp;lt;ref name="fieldmark-parameter"/&amp;gt;&lt;br /&gt;  &amp;lt;/element&amp;gt;&lt;br /&gt;  &amp;lt;element name="text:fieldmark-end"&amp;gt;&lt;br /&gt;  &amp;lt;/element&amp;gt;&lt;br /&gt; &amp;lt;/choice&amp;gt;&lt;br /&gt;&amp;lt;/define&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In general fieldmarks are very similar to bookmarks, except that they need to be properly nested. This is achieved by the fact, that a field:fieldmark-end does not have a "name" attribute, but instead closes the last opened field:fieldmark-start element.&lt;br /&gt;The field:fieldmark element is a short form of field:fieldmark-start and field:fieldmark-end. It SHOULD preferably be written instead of start-/end marks.&lt;br /&gt;&lt;br /&gt;Every fieldmark can have&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a name (text:name); similar to the name of text:bookmark elements. They SHOULD be unique. (Preferably also with the bookmark names).&lt;/li&gt;&lt;li&gt;a type  (field:type) which allows application to define the type of the fieldmark.&lt;/li&gt;&lt;li&gt;a sequence of associated (name, value) pair represented by the &amp;lt;field:param field:name=”string” field:value=”string”/&amp;gt;.&lt;/li&gt;&lt;li&gt;a locked attribute which specifies whether the user can edit the content or not.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;A sample. Lets take a loog at the following sample docs:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/R6hpqANOEWI/AAAAAAAAACw/8DOK7Qm6-RQ/s1600-h/fieldooo.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/R6hpqANOEWI/AAAAAAAAACw/8DOK7Qm6-RQ/s320/fieldooo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5163493143111143778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The OOXML representation is:&lt;br /&gt;&lt;pre&gt;  &amp;lt;w:p&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&amp;lt;w:t xml:space="preserve"&amp;gt;Title: &amp;lt;/w:t&amp;gt;&amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:bookmarkStart w:id="0" w:name="Text1"/&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="begin"&amp;gt;&lt;br /&gt;       &amp;lt;w:ffData&amp;gt;&lt;br /&gt;         &amp;lt;w:name w:val="Text1"/&amp;gt;&lt;br /&gt;         &amp;lt;w:statusText w:type="text" w:val="Just a sample field."/&amp;gt;&lt;br /&gt;         &amp;lt;w:textInput/&amp;gt;&lt;br /&gt;       &amp;lt;/w:ffData&amp;gt;&lt;br /&gt;     &amp;lt;/w:fldChar&amp;gt;&lt;br /&gt;     &amp;lt;w:instrText xml:space="preserve"&amp;gt; FORMTEXT &amp;lt;/w:instrText&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="separate"/&amp;gt;&lt;br /&gt;     &amp;lt;w:t xml:space="preserve"&amp;gt;A sample input.&amp;lt;/w:t&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="end"/&amp;gt;&lt;br /&gt;   &amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:bookmarkEnd w:id="0"/&amp;gt;&lt;br /&gt; &amp;lt;/w:p&amp;gt;&lt;br /&gt; &amp;lt;w:p&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&amp;lt;w:t xml:space="preserve"&amp;gt;Description: &amp;lt;/w:t&amp;gt;&amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:bookmarkStart w:id="1" w:name="Text2"/&amp;gt;&lt;br /&gt;   &amp;lt;w:r w:rsidR="00FA39C2"&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="begin"&amp;gt;&lt;br /&gt;       &amp;lt;w:ffData&amp;gt;&lt;br /&gt;         &amp;lt;w:name w:val="Text2"/&amp;gt;&lt;br /&gt;         &amp;lt;w:statusText w:type="text" w:val="Yet another sample field..."/&amp;gt;&lt;br /&gt;         &amp;lt;w:textInput/&amp;gt;&lt;br /&gt;       &amp;lt;/w:ffData&amp;gt;&lt;br /&gt;     &amp;lt;/w:fldChar&amp;gt;&lt;br /&gt;     &amp;lt;w:instrText xml:space="preserve"&amp;gt; FORMTEXT &amp;lt;/w:instrText&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="separate"/&amp;gt;&lt;br /&gt;     &amp;lt;w:t&amp;gt;A sample input.&amp;lt;/w:t&amp;gt;&lt;br /&gt;   &amp;lt;/w:r&amp;gt;&lt;br /&gt; &amp;lt;/w:p&amp;gt;&lt;br /&gt; &amp;lt;w:p&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&amp;lt;w:t&amp;gt;Second sample input paragraph.&amp;lt;/w:t&amp;gt;&amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&amp;lt;w:fldChar w:fldCharType="end"/&amp;gt;&amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:bookmarkEnd w:id="1"/&amp;gt;&lt;br /&gt; &amp;lt;/w:p&amp;gt;&lt;br /&gt; &amp;lt;w:bookmarkStart w:id="2" w:name="Check1"/&amp;gt;&lt;br /&gt; &amp;lt;w:p&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="begin"&amp;gt;&lt;br /&gt;       &amp;lt;w:ffData&amp;gt;&lt;br /&gt;         &amp;lt;w:name w:val="Check1"/&amp;gt;&lt;br /&gt;         &amp;lt;w:statusText w:type="text" w:val="A sample checkbox..."/&amp;gt;&lt;br /&gt;         &amp;lt;w:checkBox&amp;gt;&lt;br /&gt;           &amp;lt;w:checked/&amp;gt;&lt;br /&gt;         &amp;lt;/w:checkBox&amp;gt;&lt;br /&gt;       &amp;lt;/w:ffData&amp;gt;&lt;br /&gt;     &amp;lt;/w:fldChar&amp;gt;&lt;br /&gt;     &amp;lt;w:instrText xml:space="preserve"&amp;gt; FORMCHECKBOX &amp;lt;/w:instrText&amp;gt;&lt;br /&gt;     &amp;lt;w:fldChar w:fldCharType="end"/&amp;gt;&lt;br /&gt;   &amp;lt;/w:r&amp;gt;&lt;br /&gt;   &amp;lt;w:bookmarkEnd w:id="2"/&amp;gt;&lt;br /&gt;   &amp;lt;w:r&amp;gt;&amp;lt;w:t xml:space="preserve"&amp;gt; Make sense?&amp;lt;/w:t&amp;gt;&amp;lt;/w:r&amp;gt;&lt;br /&gt; &amp;lt;/w:p&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The ODF+Enhancement representation is:&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;   &amp;lt;text:p&amp;gt;Title: &amp;lt;field:fieldmark-start text:name="Text1" field:type="ecma.office-open-xml.field.FORMTEXT"&amp;gt;&amp;lt;field:param field:name="Description" field:value="Just a sample field."/&amp;gt;&amp;lt;/field:fieldmark-start&amp;gt;A sample input.&amp;lt;field:fieldmark-end/&amp;gt;&amp;lt;/text:p&amp;gt;&lt;br /&gt;   &amp;lt;text:p&amp;gt;Description: &amp;lt;field:fieldmark-start text:name="Text2" field:type="ecma.office-open-xml.field.FORMTEXT"&amp;gt;&amp;lt;field:param field:name="Description" field:value="Yet another sample field..."/&amp;gt;&amp;lt;/field:fieldmark-start&amp;gt;A sample input.&amp;lt;/text:p&amp;gt;&lt;br /&gt;   &amp;lt;text:p&amp;gt;Second sample input paragraph.&amp;lt;field:fieldmark-end/&amp;gt;&amp;lt;/text:p&amp;gt;&lt;br /&gt;   &amp;lt;text:p&amp;gt;&amp;lt;field:fieldmark text:name="Check1" field:type="ecma.office-open-xml.field.FORMCHECKBOX"&amp;gt;&amp;lt;field:param field:name="Description" field:value="A sample checkbox..."/&amp;gt;&amp;lt;field:param field:name="Result" field:value="1"/&amp;gt;&amp;lt;/field:fieldmark&amp;gt;&amp;lt;text:s/&amp;gt;Make sense?&amp;lt;/text:p&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Cool isn't it. Or with Tim's words: "Who could possibly be against it?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-2136728972774828558?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/2136728972774828558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=2136728972774828558' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2136728972774828558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2136728972774828558'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2008/02/xml-namespaces-are-designed-to-support.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k9bd8YQpZ7Y/R6hpqANOEWI/AAAAAAAAACw/8DOK7Qm6-RQ/s72-c/fieldooo.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-5561937381103578045</id><published>2008-01-23T23:30:00.000+01:00</published><updated>2008-01-23T23:43:03.641+01:00</updated><title type='text'></title><content type='html'>Never try to catch a train last minute...&lt;br /&gt;&lt;br /&gt;Yesterday I tried to catch a train last minute. While running towards it I fell down. I got up again and managed to get it.&lt;br /&gt;&lt;br /&gt;While sitting in the train I realized that my arm hurts and at my destination I went into a hospital. The X-rays revealed that my ellbow was broken ;-) Nohting serious --- it'll hopefully heal within two weeks...&lt;br /&gt;&lt;br /&gt;So my advice clearly is: Never try to catch a train last minute --- let it pass!&lt;br /&gt;&lt;br /&gt;And the moral is: The next train would have departed in only 30 minutes...&lt;br /&gt;&lt;br /&gt;Damn!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. In the next two weeks you'll only get short messages from me since I can only type with one hand :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-5561937381103578045?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/5561937381103578045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=5561937381103578045' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5561937381103578045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5561937381103578045'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2008/01/never-try-to-catch-train-last-minute.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-7812468531990826169</id><published>2007-12-18T16:13:00.000+01:00</published><updated>2007-12-18T16:15:58.760+01:00</updated><title type='text'></title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Back to the binaries! Yeah!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;After all this XML work the binary file formats are a different world. For the fields work I needed to analyze the “form field” structure of the binary .DOC format:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;The header: Actually a misused PICT structure:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;size&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;bitfield&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;lcb&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U32&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Count of   bytes of the whole block.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;cbHeader&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Always   0x44&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8[62]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Contains zero.   In fact this is the PICT struct, but since its not need we can fill it with   zeros.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;The formfield payload (Unicode Variant)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;size&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;bitfield&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;cUnicodeMarker&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8[32]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Contains   {0xFF,0xFF,0xFF,0xFF}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;fftype&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;03&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0 = Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;1 = Check   Box&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2 = List&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffres&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;7C&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;Result field for a form field. Values from 0 to &lt;b style=""&gt;&lt;i style=""&gt;N&lt;/i&gt;&lt;/b&gt;-1,   where &lt;b style=""&gt;&lt;i style=""&gt;N &lt;/i&gt;&lt;/b&gt;is the number of &lt;b style=""&gt;\ffl   &lt;/b&gt;entries.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;In case of check boxes: 0==unchecked; 1==checked.&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;ffownhelp&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;80&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;1 if   there is associated Help text, 0 otherwise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffownstat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;01&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;1 if   there is associated status line text, 0 otherwise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffprot&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;02&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;1 if this field is protected, 0 otherwise.&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffsize&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;04&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Type of   size selected for check box field:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0 = Auto&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;1 = Exact&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;fftypetxt&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;38&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;Type of text field:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;0 = Regular text&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;1 = Number&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;2 = Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;3 &lt;span style=""&gt; &lt;/span&gt;= Current date&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;4 = Current time&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;5 = Calculation&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffrecalc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;40&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;1 if the field should be calculated on exit, 0 otherwise.&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;ffhaslistbox&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;80&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;1 if this field has list box attached to it, 0 otherwise.&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;ffmaxlen&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:15&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;7FFF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;Number of characters for text field. Zero means unlimited.&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;:1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;8000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Unknown. Set   to zero.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffhps&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;Check box size (half-point sizes).&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;A&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffname&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Form   field name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffddeftext&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Default   text for field. &lt;b&gt;Only if type==0&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;ffdefres&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Default   resource for list field. Default value for check box (0=default unchecked;   1=default checked). &lt;b&gt;Only if type!=0&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffformat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Format   for text field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffhelptext&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Help text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffstattext&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Status   line text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffentrymcr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Macro to   execute upon entry into this form field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;xstz_ffexitmcr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Macro to   execute upon exit from this form field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;cUnicodeMarker2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U8[2]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Contains   {0xFF, 0xFF}; Padding and/or indicator for Unicode?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;fflLen&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U32&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Num of   ffls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;ffl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Xstz_UString[fflLen]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Resource string   for lists.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;An Xstz_UString has the following form:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;B16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;size&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;bitfield&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Len&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Len of   the String.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Unicode char&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16[len]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Unicode   chars&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;An Xstz_UString0 has the following form:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;b10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;B16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Field&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;size&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;bitfield&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;len&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Len of   the String.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Unicode char&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16[len]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Unicode   chars&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr style=""&gt;   &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 31.35pt;" valign="top" width="52"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;2+2*len&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 28.8pt;" valign="top" width="48"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 116.35pt;" valign="top" width="194"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Zero&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 68.15pt;" valign="top" width="114"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;U16&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 32.3pt;" valign="top" width="54"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 45.5pt;" valign="top" width="76"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 158.65pt;" valign="top" width="264"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Trailing “0”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;In case of non-Unicode encoding then the Unicode Marker disappear and the string chars have U8 size.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;You might also want to take a look at the ffData element in OOXML ;-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-7812468531990826169?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/7812468531990826169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=7812468531990826169' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/7812468531990826169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/7812468531990826169'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/12/back-to-binaries-yeah-after-all-this.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4777635158871630978</id><published>2007-10-30T23:40:00.000+01:00</published><updated>2007-10-30T23:44:19.058+01:00</updated><title type='text'></title><content type='html'>Business applications of unstructured text&lt;br /&gt;&lt;br /&gt;Interresting &lt;a href="http://portal.acm.org/citation.cfm?id=1290958.1290967&amp;coll=ACM&amp;dl=ACM&amp;idx=1290958&amp;part=periodical&amp;WantType=periodical&amp;title=Communications%20of%20the%20ACM&amp;CFID=4729020&amp;CFTOKEN=47311505"&gt;article&lt;/a&gt; in the ACM Communications.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;A widely touted IT factoid states that&lt;br /&gt;80% of the information produced by&lt;br /&gt;and contained in most organizations&lt;br /&gt;is stored in the form of unstructured&lt;br /&gt;data. Most of it is text (such as memoranda,&lt;br /&gt;internal documents, email,&lt;br /&gt;organizational Web pages, and comments&lt;br /&gt;from customers and from&lt;br /&gt;internal service personnel), and most&lt;br /&gt;of the applications that reflect the&lt;br /&gt;value of unstructured data are able to&lt;br /&gt;process it. Although unstructured&lt;br /&gt;data takes other forms, including&lt;br /&gt;images and audio, here I focus on the&lt;br /&gt;applications, technologies, and architectures&lt;br /&gt;for unstructured text acquisition&lt;br /&gt;and analysis (UTAA).&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4777635158871630978?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4777635158871630978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4777635158871630978' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4777635158871630978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4777635158871630978'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/10/business-applications-of-unstructured.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-3617268647246275906</id><published>2007-10-29T21:51:00.001+01:00</published><updated>2007-10-29T22:02:19.092+01:00</updated><title type='text'></title><content type='html'>New OpenOffice.org target.&lt;br /&gt;&lt;br /&gt;Many of you probaly know the “WONT FIX” target in the OpenOffice.org issue tracker.&lt;br /&gt;&lt;br /&gt;What about introducing a new target: “HELPS MICROSOFT”.&lt;br /&gt;&lt;br /&gt;But why do we need this? These days many people --- especially from the file formats camps --- are extremely sensitive of anything related to compatiblity 'cause they believe it helps Microsoft.&lt;br /&gt;&lt;br /&gt;So lets give the ODF warriors an opportinity to clearly communicate with the users. Give them the “HELPS MICROSOFT” target to publicly exposing the issuer of the bug and the people working on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-3617268647246275906?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/3617268647246275906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=3617268647246275906' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3617268647246275906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3617268647246275906'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/10/new-openoffice.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4193078148904352637</id><published>2007-10-25T14:14:00.000+02:00</published><updated>2007-10-25T20:42:01.229+02:00</updated><title type='text'></title><content type='html'>Field update --- preview for Windows.&lt;br /&gt;&lt;br /&gt;I now have a preview for Windows available at &lt;a href="http://download.go-oo.org/preview/oodemo.zip"&gt;http://download.go-oo.org/preview/oodemo.zip&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Simply download it and unzip it. To start execute &lt;code&gt;soffice.exe&lt;/code&gt; in &lt;code&gt;ooo2.3/program/&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Same features as the &lt;a href="http://florianreuter.blogspot.com/2007/10/update-on-field-work-early-preview.html"&gt;Linux Version&lt;/a&gt;. So no saving at this point.&lt;br /&gt;&lt;br /&gt;And don't forget to give feedback :-)&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;&lt;br /&gt;~Florian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4193078148904352637?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4193078148904352637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4193078148904352637' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4193078148904352637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4193078148904352637'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/10/field-update-preview-for-windows.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-6154880807503576930</id><published>2007-10-24T17:24:00.000+02:00</published><updated>2007-10-24T17:44:50.125+02:00</updated><title type='text'></title><content type='html'>IBM's Symphony.&lt;br /&gt;&lt;br /&gt;Downloaded &lt;a ref="http://symphony.lotus.com/software/lotus/symphony/home.jspa"&gt;IBM's Symphony&lt;/a&gt; today to follow up on some of the problems discussed at the ODF Interop Camp. (Btw. its sad that the ODF Camp people want to treat the problems as confidential.).&lt;br /&gt;&lt;br /&gt;So back to Symphony. Why the hell did they crippled all the cool OpenOffice.org easter eggs?&lt;br /&gt;&lt;br /&gt;So why is &lt;code&gt;=game("StarWars")&lt;/code&gt; crippled?&lt;br /&gt;&lt;br /&gt;And look what they done to the lovely picture of the Calc team:&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/Rx9nmqvPfUI/AAAAAAAAACo/8sO-iayCmB8/s1600-h/calceasteregg.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/Rx9nmqvPfUI/AAAAAAAAACo/8sO-iayCmB8/s320/calceasteregg.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5124928814976040258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think that contradicts the SISSL :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-6154880807503576930?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/6154880807503576930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=6154880807503576930' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6154880807503576930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6154880807503576930'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/10/ibms-symphony.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_k9bd8YQpZ7Y/Rx9nmqvPfUI/AAAAAAAAACo/8sO-iayCmB8/s72-c/calceasteregg.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-689952082689372237</id><published>2007-10-15T21:10:00.000+02:00</published><updated>2007-10-16T01:42:30.787+02:00</updated><title type='text'></title><content type='html'>Update on field work --- Early preview available for Linux.&lt;br /&gt;&lt;br /&gt;In a &lt;a href="http://florianreuter.blogspot.com/2007/07/field-enhancement-proof-of-concept.html"&gt;previous post&lt;/a&gt; I talked about my field-proof-of-concept. I continued to work on the issue and I'm happy to give an update on that front.&lt;br /&gt;&lt;br /&gt;You can download a preview version of my work here:&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://download.go-oo.org/preview/oodemo.tgz"&gt;http://download.go-oo.org/preview/oodemo.tgz&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;(Linux only. Just untar the archive &lt;code&gt;tar xzf oodemo.tgz&lt;/code&gt; and then  &lt;code&gt;cd&amp;nbsp;oodemo/program&lt;/code&gt; and start &lt;code&gt;./soffice&lt;/code&gt;). This is a preview version. Do not use it for productive work! The preview demo shows&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;the core enhancements (tabbing!), and&lt;/li&gt;&lt;br /&gt;&lt;li&gt;.DOC import.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The work for .DOC export, ODF import/export is not done and not included in the demo.&lt;br /&gt;&lt;br /&gt;For testing you can download the sample file &lt;a href="http://download.go-oo.org/preview/formc1new.doc"&gt;formc1new.doc&lt;/a&gt; which is taken from &lt;a href="http://www.openoffice.org/issues/show_bug.cgi?id=79720"&gt;issue 79720&lt;/a&gt;. It should look like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RxO8iavPfTI/AAAAAAAAACg/k25QdNp8_zI/s1600-h/Screenshot-8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RxO8iavPfTI/AAAAAAAAACg/k25QdNp8_zI/s320/Screenshot-8.png" alt="" id="BLOGGER_PHOTO_ID_5121644500729429298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Again --- this is work in progress. So do not expect everything to work. However if you have issues please let me know. And remember “saving does not work yet :-)”.&lt;br /&gt;&lt;br /&gt;I really hope I get some feedback,&lt;br /&gt;&lt;br /&gt;~Florian&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;I will make the patch available ASAP. It is the result of some weekend hacking --- it really needs some polishing first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-689952082689372237?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/689952082689372237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=689952082689372237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/689952082689372237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/689952082689372237'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/10/update-on-field-work-early-preview.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RxO8iavPfTI/AAAAAAAAACg/k25QdNp8_zI/s72-c/Screenshot-8.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-762012160498562110</id><published>2007-09-23T20:51:00.000+02:00</published><updated>2007-09-23T21:25:16.247+02:00</updated><title type='text'></title><content type='html'>&lt;span style="" lang="EN-US"&gt;Back from the OpenOffice.org Conference 2007 in &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Barcelona&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Good to meet people in person.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Talked at lot about&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="" lang="EN-US"&gt;Harmonization between ODF and OOXML,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="" lang="EN-US"&gt;Trade-off between Standardization and Innovation and&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="" lang="EN-US"&gt;Interoperability wrt. ODF&lt;-&gt;ODF and ODT&lt;-&gt;.DOC&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;        &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;Some pics from the conference:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: center;" class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rva7XavPfQI/AAAAAAAAACI/5KZ8_0AocjE/s1600-h/IMGP1469.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rva7XavPfQI/AAAAAAAAACI/5KZ8_0AocjE/s320/IMGP1469.JPG" alt="" id="BLOGGER_PHOTO_ID_5113480437914631426" border="0" /&gt;&lt;/a&gt;&lt;span style="" lang="EN-US"&gt;(Thanks Peter for great evening.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/Rva8HqvPfRI/AAAAAAAAACQ/8W1ODvBkyvY/s1600-h/IMGP1470.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/Rva8HqvPfRI/AAAAAAAAACQ/8W1ODvBkyvY/s320/IMGP1470.JPG" alt="" id="BLOGGER_PHOTO_ID_5113481266843319570" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: center;" class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;(Thanks to the people at the ODF Camp)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: center;" class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rva85avPfSI/AAAAAAAAACY/lYgqglU9zWE/s1600-h/IMGP1497.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rva85avPfSI/AAAAAAAAACY/lYgqglU9zWE/s320/IMGP1497.JPG" alt="" id="BLOGGER_PHOTO_ID_5113482121541811490" border="0" /&gt;&lt;/a&gt;&lt;span style="" lang="EN-US"&gt;(Thanks to Kohei, Hubert and Noel for the great time at the XXVII MOSTRADA DE VINS I CAVES DE CATALUNYA)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;I hope I can find some time to go into more details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-762012160498562110?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/762012160498562110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=762012160498562110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/762012160498562110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/762012160498562110'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/09/back-from-openoffice.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rva7XavPfQI/AAAAAAAAACI/5KZ8_0AocjE/s72-c/IMGP1469.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-3516915039558562671</id><published>2007-09-12T16:00:00.000+02:00</published><updated>2007-09-12T16:16:39.358+02:00</updated><title type='text'></title><content type='html'>Office 2.0 conference&lt;br /&gt;&lt;br /&gt;I'm just back from the &lt;a href="http://www.o2con.com/index.jspa"&gt;Office 2.0 conference&lt;/a&gt; in San Francisco. I was participating in a panel discussion about &lt;a href="http://www.o2con.com/docs/DOC-1084"&gt;Document Formats&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/RufzAhA50aI/AAAAAAAAACA/dqkoGSJdex4/s1600-h/IMGP1460.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/RufzAhA50aI/AAAAAAAAACA/dqkoGSJdex4/s320/IMGP1460.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5109319492462825890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Very nice crowd the Office 2.0 guys. They really taught me to think more about collaboration.&lt;br /&gt;&lt;br /&gt;Many thanks for the nice presentations. (And for the insight that most of you use OpenOffice.org to convert between HTML and the other file formats ;-))&lt;br /&gt;&lt;br /&gt;Ahh -- and almost forget. I will look into &lt;a href="http://www.opensam.org/"&gt;OpenSAM&lt;/a&gt;. Promised. Sounds really like a good idea for OpenOffice.org supporting it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-3516915039558562671?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/3516915039558562671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=3516915039558562671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3516915039558562671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3516915039558562671'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/09/office-2.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k9bd8YQpZ7Y/RufzAhA50aI/AAAAAAAAACA/dqkoGSJdex4/s72-c/IMGP1460.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-4934461990960902056</id><published>2007-08-13T11:23:00.001+02:00</published><updated>2007-08-13T12:13:44.906+02:00</updated><title type='text'></title><content type='html'>Status of my &lt;a href="http://florianreuter.blogspot.com/2006/11/suggested-enhancement-for-opendocument.html"&gt;Suggested enhancements for OpenDocument V1.2&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hi Thomas,&lt;br /&gt;&lt;br /&gt;thanks for the &lt;a href="http://florianreuter.blogspot.com/2006/11/suggested-enhancement-for-opendocument.html#comment-5082734075425797510"&gt;question&lt;/a&gt;. Here is the status:&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Tables:&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce allowCollapse attribute for paragraphs following nested tables to encode WW and HTML-like tables.&lt;/td&gt;&lt;td&gt;Not put up for discussion.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* declare sub tables as deprecated&lt;/td&gt;&lt;td&gt;Under discussion in the Accessibility SC.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Numbering&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce text:level-text attribute to encode arbitrary number formats&lt;/td&gt;&lt;td&gt;Rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce text:num-follow-char to encode WW-like numbering&lt;/td&gt;&lt;td&gt;Partly accepted.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce text:list-override to encode WW-like numbering&lt;/td&gt;&lt;td&gt;Strongly rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* declare style:list-level-properties/@text:space-before as deprecated. Effect can be achieved with paragraph indent.&lt;/td&gt;&lt;td&gt;Rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Master-page styles&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* add header-first and footer-first to encode WW-like page-styles&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* modify master-page styles such that WW-like sections can be encoded; current CSS3.0 like text:sections are not applicable&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* declare the style:next-style-name attribute of master-page declarations as deprecated.&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Styles:&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* allow deriving paragraph-family styles from text-family styles.&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;"Break chars"&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce a &lt;text:page-break/&gt; command and a &lt;text:column-break/&gt; command similar to the &lt;text:line-break/&gt; command&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Fields:&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* enhance field support by introducing a &amp;lt;text:field-start/&amp;gt; and a &amp;lt;text:field-end/&amp;gt; element to which metadata can be attached.&lt;/td&gt;&lt;td&gt;Rejected&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Change tracking:&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce change tracking for tables&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* introduce change tracking on property level&lt;/td&gt;&lt;td&gt;Not put up for discussion&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Discourage the use of the following OD features for MOOX interop:&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* nested frames &lt;/td&gt;&lt;td&gt;Not put up for discussion / Internally communicated as rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* current CSS3.0 like text:sections&lt;/td&gt;&lt;td&gt;Not put up for discussion / Internally communicated as rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* use fo:break-before instead of fo:break-after&lt;/td&gt;&lt;td&gt;Not put up for discussion / Internally communicated as rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;* use fo:margin-* for tables&lt;/td&gt;&lt;td&gt;Not put up for discussion / Internally communicated as rejected.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;In general I must confess the OpenDocument TC didn't picked up my discsussion topics... (It's listed as &lt;a href="http://wiki.oasis-open.org/office/OpenDocument_v1%2e2_Action_Items#head-bff8b4549bf71848d371a76eb7e3dc31f972d952"&gt;suggested&lt;/a&gt; but never has been put for discussion into the agenda). Additionally I had a lot of private communiation where my ideas where communicated as unwanted/rejected.&lt;br /&gt;&lt;br /&gt;To get an idea of whats discussed for ODF1.2 take a look at:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.oasis-open.org/office/OpenDocument_v1.2_Action_Items#head-d117ebdb1531adf3aa1dbb5fb619a2298f88ac0e"&gt;Proposals under discussion&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.oasis-open.org/office/OpenDocument_v1%2e2_Action_Items#head-d1e14ae87fe7f9676dd8da28d42479d81367316e"&gt;Proposals for consideration for a vote in the next coordination call&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.oasis-open.org/office/OpenDocument_v1.2_Action_Items#head-4854119a1f3d7df4f22fc453bb50e8c6e5b0acd7"&gt;Approved Proposals&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.oasis-open.org/office/OpenDocument_v1.2_Action_Items#head-e7f8a6a9cdd240143b0ab2a1bc7bde959ff9d36a"&gt;Proposal integrated into the specification document&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-4934461990960902056?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/4934461990960902056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=4934461990960902056' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4934461990960902056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/4934461990960902056'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/08/status-of-my-suggested-enhancements-for.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-664911982743649336</id><published>2007-07-18T14:22:00.001+02:00</published><updated>2007-07-18T14:55:26.101+02:00</updated><title type='text'></title><content type='html'>Field enhancement proof-of-concept finished.&lt;br /&gt;&lt;br /&gt;I've been working on field enhancement for OpenOffice.org Writer for quite a while and today I finished my proof-of-concept hacking:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rp4Hmp3ebmI/AAAAAAAAAB4/ZBlJjM-Q71c/s1600-h/Screenshot-fieldsample.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rp4Hmp3ebmI/AAAAAAAAAB4/ZBlJjM-Q71c/s320/Screenshot-fieldsample.png" alt="" id="BLOGGER_PHOTO_ID_5088512989630197346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;OpenOffice.org Writer has a lot of shortcommings wrt. to fields which I tried to address:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://qa.openoffice.org/issues/show_bug.cgi?id=33737"&gt;Allow for in-place editing of input field (turn off pop-up)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://qa.openoffice.org/issues/show_bug.cgi?id=29508"&gt;allow use of different fonts within one field&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://qa.openoffice.org/issues/show_bug.cgi?id=7644"&gt;Nested Fields support on Write&lt;/a&gt; and &lt;a href="http://qa.openoffice.org/issues/show_bug.cgi?id=69332"&gt;allow nested conditions when using conditional fields&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;In my proof-of-concept I was able to enhance the Writer core such that these issues are addressed. (That's the good news!)&lt;br /&gt;&lt;br /&gt;Unfortionately my proof-of-concept still needs a lot of love. First thing is to clean up the prototype and generate patches for ooo-build.&lt;br /&gt;&lt;br /&gt;However I'm happy since this is my first major work on the OpenOffice.org Writer layout and the field support is an issue in OpenOffice.org Writer for quite a while...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-664911982743649336?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/664911982743649336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=664911982743649336' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/664911982743649336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/664911982743649336'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/07/field-enhancement-proof-of-concept.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_k9bd8YQpZ7Y/Rp4Hmp3ebmI/AAAAAAAAAB4/ZBlJjM-Q71c/s72-c/Screenshot-fieldsample.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-5814521350641308485</id><published>2007-07-13T12:40:00.000+02:00</published><updated>2007-07-13T12:45:05.263+02:00</updated><title type='text'></title><content type='html'>"The first casualty of War is Truth"&lt;br /&gt;Reading some blogs about the ODF/OOXML file format war the famous quote "The first casualty of War is Truth" (from Rudyard Kipling --- I guess) comes into my mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-5814521350641308485?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/5814521350641308485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=5814521350641308485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5814521350641308485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5814521350641308485'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/07/first-casualty-of-war-is-truth-reading.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-2143985532645173146</id><published>2007-06-28T16:53:00.000+02:00</published><updated>2007-06-28T18:04:18.813+02:00</updated><title type='text'></title><content type='html'>XEMBED, Mono and OpenOffice.org&lt;br /&gt;&lt;br /&gt;In my last post I talked about the hack I did to get some Java applets running in an OpenOffice.org docking window.&lt;br /&gt;&lt;br /&gt;I played a little more with the code and managed to get a XEMBED socket running in an OpenOffice.org docking window. The picture below shows an OpenOffice.org running with a XEMBED ready docking window:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RoPa8NnZEmI/AAAAAAAAABo/90VKn69-xjM/s1600-h/Screenshot-5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RoPa8NnZEmI/AAAAAAAAABo/90VKn69-xjM/s400/Screenshot-5.png" alt="" id="BLOGGER_PHOTO_ID_5081145532585939554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The title bar of the docking window shows the socket id to which XEMBED applications can connect.&lt;br /&gt;&lt;br /&gt;I used the following Mono code to connect to the XEMBED socket:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;using System;&lt;br /&gt;using Gtk;&lt;br /&gt;&lt;br /&gt;// Compile with:&lt;br /&gt;// mcs -pkg:gtk-sharp SamplePlug.cs&lt;br /&gt;&lt;br /&gt;public class SamplePlug&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; public static void Main(string[] args) {&lt;br /&gt;     if (args.Length != 1) {&lt;br /&gt;  Console.WriteLine("Need socket id as an argument.");&lt;br /&gt;  return;&lt;br /&gt;     }&lt;br /&gt;     uint socket_id = UInt32.Parse(args[0]);&lt;br /&gt;     &lt;br /&gt;     Console.WriteLine("using socket "+socket_id);&lt;br /&gt;     &lt;br /&gt;     Application.Init();&lt;br /&gt;     &lt;br /&gt;     Plug plug= new Plug(socket_id);&lt;br /&gt;//     plug.Add(new Label("HELLO"));&lt;br /&gt;     plug.Add(new Entry("HELLO"));&lt;br /&gt;     plug.ShowAll();&lt;br /&gt;&lt;br /&gt;     Console.WriteLine("running..");&lt;br /&gt;     Application.Run();&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The picture below shows it all running:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/RoPbOdnZEnI/AAAAAAAAABw/5oUTB3y7Mrc/s1600-h/Screenshot-6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/RoPbOdnZEnI/AAAAAAAAABw/5oUTB3y7Mrc/s400/Screenshot-6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5081145846118552178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In theory this'll work not only with Mono but  with any application which can talk the XEMBED protocol like e.g. GTK- and QT-based applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-2143985532645173146?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/2143985532645173146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=2143985532645173146' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2143985532645173146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/2143985532645173146'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/06/xembed-mono-and-openoffice.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RoPa8NnZEmI/AAAAAAAAABo/90VKn69-xjM/s72-c/Screenshot-5.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-8912061861954801834</id><published>2007-06-22T15:38:00.000+02:00</published><updated>2007-06-22T15:49:24.371+02:00</updated><title type='text'></title><content type='html'>ActiveX-like embedding of applications in OpenOffice.org?&lt;br /&gt;&lt;br /&gt;I'm working on the problem of embedding applications in an OpenOffice docking window --- similar to the new API inside Word which allows to embed ActiveX applications in a task pane.&lt;br /&gt;&lt;br /&gt;I just started “hacking” on the problem and I decided to try whether I can embed a Java Applet inside an OpenOffice.org docking window.&lt;br /&gt;&lt;br /&gt;Well I “hacked” :-) the Navigator --- which is a docking window --- and reused some code from the sj module and here it is:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRgj_XZOI/AAAAAAAAABM/TdF_hL-aGYs/s1600-h/Screenshot-1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRgj_XZOI/AAAAAAAAABM/TdF_hL-aGYs/s320/Screenshot-1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5078883362137400546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRoj_XZPI/AAAAAAAAABU/MVbtzk_mi50/s1600-h/Screenshot-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRoj_XZPI/AAAAAAAAABU/MVbtzk_mi50/s320/Screenshot-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5078883499576354034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRvz_XZQI/AAAAAAAAABc/SKiIqHu9N_g/s1600-h/Screenshot-3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRvz_XZQI/AAAAAAAAABc/SKiIqHu9N_g/s320/Screenshot-3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5078883624130405634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;However there a some --- severe --- open problems:&lt;br /&gt;  - Focus: The framework knows nothing about XEMBED_REQUEST_FOCUS, etc&lt;br /&gt;    (http://standards.freedesktop.org/xembed-spec/latest/ar01s05.html)&lt;br /&gt;    So there is a focus problem when the applet is running in "docked" mode. (Maybe this is also the problem why the OOoBean  is not working so good?)&lt;br /&gt;  - Need to clone the Navigator code...&lt;br /&gt;  - Resize problem and other events. Currently the embedded app is not notified&lt;br /&gt;    about resize events.&lt;br /&gt;  - Need to define an API to get link between embedded aps and the custom&lt;br /&gt;  pane.&lt;br /&gt;  - Some "solar mutex" problems as always :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-8912061861954801834?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/8912061861954801834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=8912061861954801834' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8912061861954801834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8912061861954801834'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/06/activex-like-embedding-of-applications.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RnvRgj_XZOI/AAAAAAAAABM/TdF_hL-aGYs/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-631726674424473348</id><published>2007-04-24T15:34:00.000+02:00</published><updated>2007-04-24T15:47:31.477+02:00</updated><title type='text'></title><content type='html'>Smart Documents.&lt;br /&gt;&lt;br /&gt;Yesterday I started the evaluation of the Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa537161%28office.11%29.aspx"&gt;ISmartDocument&lt;/a&gt; interface for Office2003.&lt;br /&gt;I started in a clean VM. I installed:&lt;br /&gt;* Windows XP&lt;br /&gt;* Office2003 and&lt;br /&gt;* DevEnv 7.1 (C#)&lt;br /&gt;&lt;br /&gt;Then I downloaded and installed the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=24A557F7-EB06-4A2C-8F6C-2767B174126F&amp;displaylang=en"&gt;Office 2003 Smart Document Software Development Kit (SDK)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next I tried to compile the “SimpleSampleCS” from the SDK.&lt;br /&gt;&lt;br /&gt;It failed.&lt;br /&gt;&lt;br /&gt;Some research showed that I had also to install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad&amp;amp;displaylang=en"&gt;Office 2003 Update: Redistributable Primary Interop Assemblies&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally I was able to compile the project.&lt;br /&gt;&lt;br /&gt;Next I tried to activate the smart document by simply opening the “SimpleSample.doc” in Word 2003. I ran the “setpolicy.bat” script and then the “DisableManifestSecurityCheck.reg” file. Then I opened the “SimpleSample.doc” and was asked to “Download the XML expansion pack”. After answering the security question with “no” I was able to get the sample working. (Other orders of invoking the scripts lead to the failure of loading the expansion pack”. I took me quite a while to figure that out. I even installed the .NET 3.0 Runtime Environment --- but I believe that is not required.).&lt;br /&gt;&lt;br /&gt;Finally I was able to see the following “SimpleSampleCS”:&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/Ri4Ijivdc6I/AAAAAAAAAAs/brLeBqDbVBY/s1600-h/simplesamplecs.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_k9bd8YQpZ7Y/Ri4Ijivdc6I/AAAAAAAAAAs/brLeBqDbVBY/s320/simplesamplecs.JPG" alt="" id="BLOGGER_PHOTO_ID_5056988838297957282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The overall architecture of “ISmartDocument”s is based on custom schemata to which actions can be attached. Quite simple but I gives custom schemata a meaning of the end.&lt;br /&gt;&lt;br /&gt;The question I'm interested in:&lt;br /&gt;* How is this work related to alien attributes and metadata in ODF? And&lt;br /&gt;* what do we have to do to provide a competitive environment in OOo and ODF?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-631726674424473348?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/631726674424473348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=631726674424473348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/631726674424473348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/631726674424473348'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/04/smart-documents.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k9bd8YQpZ7Y/Ri4Ijivdc6I/AAAAAAAAAAs/brLeBqDbVBY/s72-c/simplesamplecs.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-3236200207044983636</id><published>2007-01-08T16:22:00.000+01:00</published><updated>2007-01-09T09:30:11.080+01:00</updated><title type='text'></title><content type='html'>WARNING: THIS BLOG IS TOO LONG AND TOO TECHNICAL :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How to improve interoperability: A case study with sections&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Q: So --- OpenOffice.org Writer has section support. Microsoft Word has section support. Where's the problem?&lt;br /&gt;A: In the details.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;OpenOffice.org section&lt;/h2&gt;&lt;br /&gt;The OpenOffice.org sections are very similar to HTML MULTICOL resp. CSS3 module: Multi-column layout concepts where a sequence of paragraph level content like paragraphs, tables, etc. can be grouped together in a &amp;lt;text:section&gt; and multiple columns can be requested for layout.&lt;br /&gt;&lt;br /&gt;Sections in a Writer document have the following form:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WRITERDOC ::= (PARAGRAPH | TABLE | WRITERSECTION)+&lt;br /&gt;WRITERSECTION::= &amp;lt;text:section&gt; (PARAGRAPH | TABLE  | WRITERSECTION)+ &amp;lt;/text:section&gt;&lt;br /&gt;TABLE ::= TABLEROW+&lt;br /&gt;TABLEROW ::= TABLECELL+&lt;br /&gt;TABLECELL ::= (PARAGRAPH | TABLE | WRITERSECTION)+&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So WRITERSECTIONs in OpenOffice.org can start and end anywhere and can be nested.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Microsoft Word sections&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Word sections are different. Conceptually every Microsoft Word document consists of at least one section. So Microsoft Word documents have the form&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WORDDOC ::= WORDSECTION+&lt;br /&gt;WORDSECTION ::= (PARAGRAPH | TABLE)* PARAGRAPH[ with section properties attached to it]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Please note that Microsoft Word sections are always “top-level” and that only a paragraph can trigger a new Microsoft Word section to start after the itself.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;So what does this mean for conversion?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;a) Every WORDOC can be mapped to a WRITERDOC [not quite true for other reasons, but lets forget about this detail :-)];&lt;br /&gt;b) *NOT* every WRITERDOC can be mapped to a WORDDOC.&lt;br /&gt;&lt;br /&gt;Consider the following WRITERDOC:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The above WRITERDOC can not be mapped to a WORDDOC. OpenOffice.org will change the structure on export and write a WORDDOC like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PARAGRAPH + section props&lt;br /&gt;PARAGRAPH + section props&lt;br /&gt;PARAGRAPH &lt;br /&gt;PARAGRAPH  + section props&lt;br /&gt;PARAGRAPH  + section props&lt;br /&gt;PARAGRAPH  &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;When importing the WORDDOC back into OpenOffice.org Writer the WRITERDOC will look like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;/text:section&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So clearly the structure has changes and roundtrip is broken. You can generated an infinite number of roundtrip problems based on this.&lt;br /&gt;&lt;br /&gt;The stuff can get even worse. Consider the following WRITERDOC:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;TABLE&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/TABLE&gt;&lt;br /&gt;&amp;lt;/text:section&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In order to export this to a WORDDOC you need to add a new paragraph:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PARAGRAPH&lt;br /&gt;&amp;lt;TABLE&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/TABLE&gt;&lt;br /&gt;PARAGRAPH + section break properties&lt;br /&gt;PARAGRAPH&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;since you can only tell a PARAGRAPH to start a new section.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;BUT... why are we trying to map WORDSECTIONs to WRITERSECTIONS?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;I believe that its better to map between WORDSECTIONs and WRITERMASTERPAGESECTIONs.&lt;br /&gt;Let me try to explain.&lt;br /&gt;&lt;br /&gt;In OpenOffice.org Writer you have the concept of “page styles”. When rewriting the above grammar for WRITERDOCs including page styles we get&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WRITERDOC ::= WRITERMASTERPAGESECTION+&lt;br /&gt;WRITERMASTERPAGESECTION ::= (PARAGRAPH+master page break before | TABLE + master page break before) (PARAGRAPH | TABLE )*&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;which is quite similar to &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;WORDDOC ::= WORDSECTION+&lt;br /&gt;WORDSECTION ::= (PARAGRAPH | TABLE)* PARAGRAPH[ with section properties attached to it]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;right? So a “master page break before” attribute can be put to a paragraph or a table and causes the new WRITERMASTERPAGESECTION to start before the paragraph or table. Whereas a “section property “ on a paragraph causes the start of a new WORDSECTION after the paragraph in a WORDDOC. Such a WORDSECTION can start on a new page with new header/footer or be continuous and simply change the columns settings for the following content.&lt;br /&gt;&lt;br /&gt;So my favorite idea is to allow a “master page override” property at a paragraph in a WRITERDOC and use this new property to handle WORDSECTIONS.&lt;br /&gt;&lt;br /&gt;More concrete I would like to add the following attributes to a WRITERDOC paragraph or table style:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;define name="style-style-attlist" combine="interleave"&gt;&lt;br /&gt; &amp;lt;optional&gt;&lt;br /&gt;  &amp;lt;attribute name="style:master-page-override"&gt;&lt;br /&gt;   &amp;lt;ref name="styleNameRef"/&gt;&lt;br /&gt;  &amp;lt;/attribute&gt;&lt;br /&gt;  &amp;lt;attribute name="style:master-page-break"&gt;&lt;br /&gt;   &amp;lt;choice&gt;&lt;br /&gt;    &amp;lt;value&gt;auto&amp;lt;/value&gt;&lt;br /&gt;    &amp;lt;value&gt;column&amp;lt;/value&gt;&lt;br /&gt;    &amp;lt;value&gt;page&amp;lt;/value&gt;&lt;br /&gt;    &amp;lt;/choice&gt;  &lt;br /&gt;  &amp;lt;/attribute&gt;&lt;br /&gt; &amp;lt;/optional&gt;&lt;br /&gt;&amp;lt;/define&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;we could then use this attributes to handle WORDSECTION 100% (and discourage the use of WRITERSECTIONS for .DOC interoperability :-))&lt;br /&gt;&lt;br /&gt;For backward compatibility also the style:master-page-name="N" attribute could be emitted in case of style:master-page-override="N" and style:master-page-break="page".&lt;br /&gt;&lt;br /&gt;E.g. the OfficeOpenXML fragment&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;w:body&gt;&lt;br /&gt; &amp;lt;w:p&gt;A1&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;A2&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;A3&amp;lt;w:pPr&gt;&amp;lt;w:sectPr&gt;&amp;lt;w:cols w:num="3"&gt;&amp;lt;/w:sectPr&gt;&amp;lt;/w:pPr&gt;&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;B1&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;B2&amp;lt;w:pPr&gt;&amp;lt;w:sectPr&gt;&amp;lt;w:cols w:num="2"&gt;&amp;lt;w:type w:val="continuous" /&gt;&amp;lt;/w:sectPr&gt;&amp;lt;/w:pPr&gt;&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;C1&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:p&gt;C2&amp;lt;/w:p&gt;&lt;br /&gt; &amp;lt;w:pPr&gt;&amp;lt;w:sectPr&gt;&amp;lt;w:cols w:num="1"&gt;&amp;lt;/w:sectPr&gt;&amp;lt;/w:pPr&gt;&lt;br /&gt;&amp;lt;/w:body&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;could be translated to the OpenDocument fragment&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;office:automatic-styles&gt;&lt;br /&gt;&amp;lt;style:style name="S1" style:family="paragraph" style:master-page-override="P1" style:master-page-break="page"/&gt;&lt;br /&gt;&amp;lt;style:style name="S2" style:family="paragraph" style:master-page-override="P2" style:master-page-break="auto"/&gt;&lt;br /&gt;&amp;lt;style:style name="S3" style:family="paragraph" style:master-page-override="P3" style:master-page-break="page"/&gt;&lt;br /&gt;..&lt;br /&gt;&amp;lt;style:page-layout style:name="PL1"&gt;&lt;br /&gt; &amp;lt;style:page-layout-properties&gt;&lt;br /&gt;  &amp;lt;style:columns fo:column-count="3"/&gt;&lt;br /&gt; &amp;lt;/style:page-layout-properties&gt;&lt;br /&gt;&amp;lt;/style:page-layout&gt;&lt;br /&gt;&amp;lt;style:page-layout style:name="PL2"&gt;&lt;br /&gt; &amp;lt;style:page-layout-properties&gt;&lt;br /&gt;  &amp;lt;style:columns fo:column-count="2"/&gt;&lt;br /&gt; &amp;lt;/style:page-layout-properties&gt;&lt;br /&gt;&amp;lt;/style:page-layout&gt;&lt;br /&gt;&amp;lt;style:page-layout style:name="PL3"&gt;&lt;br /&gt; &amp;lt;style:page-layout-properties&gt;&lt;br /&gt;  &amp;lt;style:columns fo:column-count="1"/&gt;&lt;br /&gt; &amp;lt;/style:page-layout-properties&gt;&lt;br /&gt;&amp;lt;/style:page-layout&gt;&lt;br /&gt;&amp;lt;/office:automatic-styles&gt;&lt;br /&gt;..&lt;br /&gt;&amp;lt;office:master-styles&gt;&lt;br /&gt; &amp;lt;style:master-page style:name="P1" style:page-layout-name="PL1"/&gt;&lt;br /&gt; &amp;lt;style:master-page style:name="P2" style:page-layout-name="PL2"/&gt;&lt;br /&gt; &amp;lt;style:master-page style:name="P3" style:page-layout-name="PL3"/&gt;&lt;br /&gt;&amp;lt;/office:master-styles&gt;&lt;br /&gt;&lt;br /&gt;..&lt;br /&gt;&amp;lt;office:body&gt;&lt;br /&gt;&amp;lt;text:p text:style-name="S1"&gt;A1&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p&gt;A2&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p&gt;A3&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p text:style-name="S2"&gt;B1&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p&gt;B2&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p text:style-name="S3"&gt;C1&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;text:p&gt;C2&amp;lt;/text:p&gt;&lt;br /&gt;&amp;lt;/office:body&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and back!&lt;br /&gt;&lt;br /&gt;I guess this blog entry is far to long and technical by now. Maybe I should move to a WIKI in the future.&lt;br /&gt;&lt;br /&gt;~Florian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-3236200207044983636?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/3236200207044983636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=3236200207044983636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3236200207044983636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3236200207044983636'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2007/01/warning-this-blog-is-too-long-and-too.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-6018404671010375724</id><published>2006-12-11T23:40:00.000+01:00</published><updated>2006-12-12T00:01:00.150+01:00</updated><title type='text'></title><content type='html'>Successfull deployment of OpenOffice in the public sector.&lt;br /&gt;&lt;br /&gt;I had the opportunity to participate at the &lt;a href="http://www.mampu.gov.my/"&gt;MAMPU&lt;/a&gt; conference on &lt;i&gt;Successfull deployment of OpenOffice in the public sector&lt;/i&gt; in Kuala Lumpur, Malaysia.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RX3frNDGHWI/AAAAAAAAAAM/63Fiiv7UmTI/s1600-h/IMGP0010.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RX3frNDGHWI/AAAAAAAAAAM/63Fiiv7UmTI/s320/IMGP0010.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5007404294035873122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was great. &lt;br /&gt;&lt;br /&gt;The general arguments I tried to make in my talk where around the following matrix:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RX3gqdDGHXI/AAAAAAAAAAU/brQNdbpOVQg/s1600-h/matrix.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_k9bd8YQpZ7Y/RX3gqdDGHXI/AAAAAAAAAAU/brQNdbpOVQg/s320/matrix.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5007405380662599026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The argument I derived from that matrix where&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; clearly a shift from an open source application with a proprietary file format to an open source application with an open standardized file format improves openess.&lt;br /&gt;&lt;li&gt; however how can a shift from a proprietary application with a proprietary file format to a proprietary application with an “open” file format improved openess? And --- is it the same kind of “openess” as in case 1)?&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;I then made the argument that only an open source application with an open file format can prevent a “lock-in” situation. I illustrated the fact by a case study of supporting a “minority language”.&lt;br /&gt;&lt;br /&gt;So --- how would you fill out the matrix?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-6018404671010375724?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/6018404671010375724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=6018404671010375724' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6018404671010375724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/6018404671010375724'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/12/successfull-deployment-of-openoffice-in.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_k9bd8YQpZ7Y/RX3frNDGHWI/AAAAAAAAAAM/63Fiiv7UmTI/s72-c/IMGP0010.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-7940391181521850899</id><published>2006-11-27T11:08:00.000+01:00</published><updated>2006-11-27T11:17:22.965+01:00</updated><title type='text'></title><content type='html'>Note: This element should not be used in new documents.&lt;br /&gt;&lt;br /&gt;I still got a lot feedback regarding the use of the word „deprecated“. So please let me explain what I had in mind when I wrote this.&lt;br /&gt;&lt;br /&gt;In the current ODF specification there is the following note in section 6.6.11 Table Formula Field. It says:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;Note: This element should not be used in new documents.&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;My idea was simply to add a similar note to e.g. section 8.2.6 Subtables.&lt;br /&gt;&lt;br /&gt;So again there are already features in ODF marked as "not to use".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-7940391181521850899?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/7940391181521850899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=7940391181521850899' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/7940391181521850899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/7940391181521850899'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/11/note-this-element-should-not-be-used-in.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-8273868475481100809</id><published>2006-11-23T16:58:00.000+01:00</published><updated>2006-11-23T17:21:25.717+01:00</updated><title type='text'></title><content type='html'>Hi Mathias,&lt;br /&gt;&lt;br /&gt;thanks so much for &lt;a href="http://blogs.sun.com/GullFOSS/entry/what%27s_up_in_the_writer"&gt;referring&lt;/a&gt; to my blog and commenting on my "ODF 1.2 suggestions".&lt;br /&gt;&lt;br /&gt;Yes --- I really believe we can work together making OpenDocument as well as OpenOffice.org better.&lt;br /&gt;&lt;br /&gt;Regarding “deprecation”. Deprecation does not mean removal or even making OpenOffice.org worse. Never intentend to say this. Sorry for the confusion. What I meant was e.g. in the case of “sub tables” that "deprecation" or "discourating" the use of "sub tables" just means helping e.g. blind people to better use OpenDocument and OpenOffice.org: &lt;a href="http://www.oasis-open.org/archives/office-accessibility/200608/msg00031.html"&gt;Subtable Accessibility Issue&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Of course the feature will stay, but I think we should offer the user an alternative way to achieve the same result and help --- not only accessibility --- but also interoperability.&lt;br /&gt;Luckily OpenDocument has this feature already by using “row spans”.&lt;br /&gt;&lt;br /&gt;I hope I could also clarify Michael Brauers &lt;a href="http://www.oasis-open.org/archives/office/200611/msg00060.html"&gt;concerns&lt;/a&gt; on the the OpenDocument TC mailing list with my &lt;a href="http://www.oasis-open.org/archives/office/200611/msg00061.html"&gt;response&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But I think we have the same idea here. Will never again use the word "deprecation" or "discourage" again. And I will not take away any feature. Promised!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;~Florian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-8273868475481100809?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/8273868475481100809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=8273868475481100809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8273868475481100809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/8273868475481100809'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/11/hi-mathias-thanks-so-much-for-referring.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-3338058536218423637</id><published>2006-11-20T17:08:00.000+01:00</published><updated>2006-11-20T17:14:41.920+01:00</updated><title type='text'></title><content type='html'>Suggested enhancement for OpenDocument V1.2&lt;br /&gt;&lt;br /&gt;Tables:&lt;br /&gt;* introduce allowCollapse attribute for paragraphs following nested tables to encode WW and HTML-like tables.&lt;br /&gt;* declare sub tables as deprecated&lt;br /&gt;&lt;br /&gt;Numbering&lt;br /&gt;* introduce text:level-text attribute to encode arbitrary number formats&lt;br /&gt;* introduce text:num-follow-char to encode WW-like numbering&lt;br /&gt;* introduce text:list-override to encode WW-like numbering&lt;br /&gt;* declare style:list-level-properties/@text:space-before as deprecated. Effect can be achieved with paragraph indent.&lt;br /&gt;&lt;br /&gt;Master-page styles&lt;br /&gt;* add header-first and footer-first to encode WW-like page-styles&lt;br /&gt;* modify master-page styles such that WW-like sections can be encoded; current CSS3.0 like text:sections are not applicable&lt;br /&gt;* declare the style:next-style-name attribute of master-page declarations as deprecated.&lt;br /&gt;&lt;br /&gt;Styles:&lt;br /&gt;* allow deriving paragraph-family styles from text-family styles.&lt;br /&gt;&lt;br /&gt;“Break chars”&lt;br /&gt;* introduce a &amp;lt;text:page-break/&amp;gt; command and a &amp;lt;text:column-break/&amp;gt; command similar to the &amp;lt;text:line-break/&amp;gt; command&lt;br /&gt;&lt;br /&gt;Fields:&lt;br /&gt;* enhance field support by introducing a &amp;lt;text:field-start/&amp;gt; and a &amp;lt;text:field-end/&amp;gt; element to which metadata can be attached.&lt;br /&gt;&lt;br /&gt;Change tracking:&lt;br /&gt;* introduce change tracking for tables&lt;br /&gt;* introduce change tracking on property level&lt;br /&gt;&lt;br /&gt;Discourage the use of the following OD features for MOOX interop:&lt;br /&gt;* nested frames &lt;br /&gt;* current CSS3.0 like text:sections&lt;br /&gt;* use fo:break-before instead of fo:break-after&lt;br /&gt;* use fo:margin-* for tables&lt;br /&gt;&lt;br /&gt;Unfortunately I think this list is not complete yet:-)&lt;br /&gt;&lt;br /&gt;Feedback appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-3338058536218423637?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/3338058536218423637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=3338058536218423637' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3338058536218423637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/3338058536218423637'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/11/suggested-enhancement-for-opendocument.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-5295201093061514158</id><published>2006-11-15T22:23:00.000+01:00</published><updated>2006-11-17T12:44:49.048+01:00</updated><title type='text'></title><content type='html'>All the small things… &lt;br /&gt;&lt;br /&gt;…are really important in document conversion. The table below shows three different ODF features (&lt;i&gt;numbered lists&lt;/i&gt;, &lt;i&gt;nested styles&lt;/i&gt; as well as &lt;i&gt;nested tables&lt;/i&gt;) and the way OpenOffice.org Writer resp. the CleverAge ODF Converter exports these. &lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;Original ODF in OO.o&lt;/th&gt;&lt;th&gt;OO.o export to .DOC&lt;/th&gt;&lt;th&gt;CleverAge ODF Converter&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.matchris.de/samples/numtab.odt"&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/numtab.jpg" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/numtab_ooo.jpg" alt=""/&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/numtab_odfconverter.jpg" alt=""/&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.matchris.de/samples/nestedstyles.odt"&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedstyles.jpg" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedstyles_odfconverter.jpg" alt="" /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedstyles_ooo.jpg" alt="" /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.matchris.de/samples/nestedtables.odt"&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedtables.jpg" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedtables_ooo.jpg" alt="" /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;img src="http://photos1.blogger.com/blogger2/3784/3546/320/nestedtables_odfconverter.jpg" alt=""/&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;The above examples look rather artificial. However these kinds of small problems can tell much about the conversion quality of a filter.&lt;br /&gt;For example handling &lt;i&gt;nested styles&lt;/i&gt; correctly is a huge effort for a rather small output. Thus everybody ignores them in the first shot and aims for the more visible features. You simply file a bug and set it to “later”.&lt;br /&gt;The problem is when “later” comes you realize that handling &lt;i&gt;nested styles&lt;/i&gt; requires major changes in your existing code. You then realize that the risk of loosing all your existing features by implementing nested styles is high. So “later” becomes a synonym for “never”.&lt;br /&gt;&lt;br /&gt;In my opinion a good test for the underlying code quality of a conversion filter is to test the nasty stuff. I believe it can tell you a lot about whether “later” means “never” or simply “not yet”.&lt;br /&gt;&lt;br /&gt;Btw. all the above features can be mapped correctly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-5295201093061514158?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/5295201093061514158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=5295201093061514158' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5295201093061514158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/5295201093061514158'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/11/all-small-things-are-really-important.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29052616.post-116354483205617537</id><published>2006-11-14T23:53:00.000+01:00</published><updated>2006-11-15T12:23:17.362+01:00</updated><title type='text'></title><content type='html'>So I started blogging. This is the first entry of my personal blog.&lt;br /&gt;&lt;br /&gt;So there is a lot to clarify. But first let me provide some background to those who don’t know me.&lt;br /&gt;&lt;br /&gt;I’ve done some work in the past on the .DOC, .RTF and WordML filters in OpenOffice.org. I also did some work on OpenDocument in the OpenDocument TC and the OpenDocument Metadata SC.&lt;br /&gt;&lt;br /&gt;I also worked together with the OpenDocument Foundation on the ODF plug-in for Microsoft Office. The ODF plug-in for Microsoft Office is based on a library called OpenDocument Infoset API I was working on. Of course I’ll continue my voluntary work as a CTO of the OpenDocument Foundation and I’m eager to see how the Foundation’s work --- especially on the OpenDocument InfoSet API --- will continue. I’m happy to tell more about this in following blog entries if there is any interest.&lt;br /&gt;&lt;br /&gt;What I discovered in all my work regarding the fileformats is that &lt;i&gt;interoperability can be improved&lt;/i&gt;. In fact minor changes in the fileformats resp. implementing applications can improve interoperability significantly. And I hope I can prove this with my future work.&lt;br /&gt;&lt;br /&gt;So what is this future work?&lt;br /&gt;&lt;br /&gt;One very interesting area is OpenDocument Version 1.2. Currently the OpenDocument TC is working on the version 1.2 of OpenDocument which targets better interoperability. Very interesting and with great potential.&lt;br /&gt;&lt;br /&gt;Another interesting area is OpenOffice.org. I really believe we can improve OpenOffice.org’s interoperability by implementing OpenDocument Version 1.2 in OpenOffice. This is a community effort for sure, so I hope I can attract people participating in this effort.&lt;br /&gt;&lt;br /&gt;Maybe the next thing I should do is to have a little tutorial about how to contribute to the OpenOffice.org filters? Good idea?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29052616-116354483205617537?l=florianreuter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://florianreuter.blogspot.com/feeds/116354483205617537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29052616&amp;postID=116354483205617537' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/116354483205617537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29052616/posts/default/116354483205617537'/><link rel='alternate' type='text/html' href='http://florianreuter.blogspot.com/2006/11/so-i-started-blogging.html' title=''/><author><name>Florian Reuter</name><uri>http://www.blogger.com/profile/18234686265006232175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
