Welcome to the Words 1.3 to OOWriter/OASIS import filter


Note: the information in this file is meant for developers, not for end users.


Following are a few points about some particularities when developing this filter.

=== Multi-Pass Overview ===
The filter is a 4 pass filter.

1. Parsing
    1a parsing documentinfo,xml (done classicaly with QDom)
    1b parsing maindoc.xml (class Words13Parser, done with Qt's SAX parser: QXml)
2. Postprocessing of parsing (class Words13PostParsing)
    * loading of pictures
    * grouping tables cells (currently not done)
    * placing bookmarks (currently not done)
3. Preparing the OASIS document (function Words13OasisGenerator::prepare)
    * creating automatical styles
4. Generating the OASIS document (function Words13OasisGenerator::generate)
    4a creating the files content.xml, styles.xml, meta.xml
    4b writing pictures
    4c writing manifest file 

=== Syntax Versions ===

Words has a few syntax variants, starting with the 3 official syntax versions
(called 1, 2 and 3) but there is also Words files predating syntax 1 and also
the files generated by Words import filters might differ too.

There are 2 big syntax groups: the old syntax and the new one. The old syntax
is syntax 1 or older, the new syntax starts with syntax 2.

The aim of this filter is to support any file claimed to be a Words file (as the
user has not chosen the version with which he has generated the file.)

So be careful when modifying code not to remove support for other syntaxes (be
it newer or older ones). This also means not to assume that a certain tag or
attribute always exists in a Words tag. Only very few ones do so.
