<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hub</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hub"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Hub"/>
	<updated>2026-05-13T17:13:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62651</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62651"/>
		<updated>2008-02-07T15:07:32Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
The code is in source/drawingml/diagram in the [[Oox]] module.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
Ideally the file format changes could mandate to have a pre-rendered representation of the diagram in order to not require to implement the feature in other readers.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://msdn.microsoft.com/msdnmag/issues/07/02/SmartArt/?topics=/msdnmag/issues/07/02/SmartArt Creating custom Smart Art]: provide a better understanding of the underlying layout model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62650</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62650"/>
		<updated>2008-02-07T15:06:43Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Future? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
Ideally the file format changes could mandate to have a pre-rendered representation of the diagram in order to not require to implement the feature in other readers.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://msdn.microsoft.com/msdnmag/issues/07/02/SmartArt/?topics=/msdnmag/issues/07/02/SmartArt Creating custom Smart Art]: provide a better understanding of the underlying layout model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62647</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=62647"/>
		<updated>2008-02-07T15:04:58Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Future? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
Ideally the file format changes could mandate to have a pre-rendered representation of the diagram in order to no require to implement the feature in other reader.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://msdn.microsoft.com/msdnmag/issues/07/02/SmartArt/?topics=/msdnmag/issues/07/02/SmartArt Creating custom Smart Art]: provide a better understanding of the underlying layout model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=61494</id>
		<title>Office Open XML/Legacy Implementation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=61494"/>
		<updated>2008-01-24T00:46:28Z</updated>

		<summary type="html">&lt;p&gt;Hub: xmlfilter03&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOXML Basics =&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Office Open XML&amp;quot; is an XML based file format that has been published as [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]. It is used as default file format by Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are plans to support this file format in OpenOffice.org for interoperation with Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are 3 major types of formats&lt;br /&gt;
&lt;br /&gt;
* [[WordprocessingML]] - For word processor documents (file extensions may be docx, docm)&lt;br /&gt;
* [[SpreadsheetML]] - For spreadsheet documents (file extensions may be xlsx, xlsm)&lt;br /&gt;
* [[PresentationML]] - For presentation documents (file extensions may be pptx, pptm)&lt;br /&gt;
* [[DrawingML]] - Used by other markup language to represent graphics data.&lt;br /&gt;
* [[VML]] - A legacy vector markup.&lt;br /&gt;
&lt;br /&gt;
== Packaging Conventions ==&lt;br /&gt;
OpenXML document is a package that consists of a flat collection of &amp;#039;&amp;#039;&amp;#039;&amp;quot;parts&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  Each &amp;quot;part&amp;quot; has a case-&amp;#039;&amp;#039;insensitive&amp;#039;&amp;#039; part name that consists of a slash (/) delimited sequence of segment names such as &amp;quot;/pres/slides/slide1.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For the most part, the ZIP compression is used to package the parts, in which case the term &amp;#039;&amp;#039;&amp;#039;&amp;quot;package&amp;quot;&amp;#039;&amp;#039;&amp;#039; refers to the ZIP archive, and the parts refer to the individual files archived within.  The part name in this case is the file path within the archive.&lt;br /&gt;
&lt;br /&gt;
Each part also has a &amp;#039;&amp;#039;&amp;#039;content type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;/[Content_Types].xml&amp;#039;&amp;#039;&amp;#039; provides the content type of each part within the archive.&lt;br /&gt;
&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Packages and parts can contains &amp;#039;&amp;#039;&amp;#039;explicit relationships&amp;#039;&amp;#039;&amp;#039; to other parts as well as to external resources.  Every explicit relationship has an ID and a type, and relationship types are named using URIs.&lt;br /&gt;
&lt;br /&gt;
The set of explicit relationships for each package or part is stored in a relationship part whose name (or path) follows a specific convention e.g. the relationship part for a part called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/c.xml&amp;quot;&amp;#039;&amp;#039;&amp;#039; is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/_rels/c.xml.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  As a special case, the relationship part for the package as a whole is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/_rels/.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= OO.o Implementation =&lt;br /&gt;
There is some code in the oox module ([[OOX]]) from the [[Xml]] project. Its initial version from the CWS xmlfilter02 has been integrated into SRC680_m243. The continuing [[CWS]] is xmlfilter03 in SRC680. ([http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter03 view the workspace on EIS])&lt;br /&gt;
&lt;br /&gt;
To fetch the oox code from CVS (using CVSROOT is set properly):&lt;br /&gt;
&lt;br /&gt;
 cvs co -r cws_src680_xmlfilter03 -d oox xml/oox&lt;br /&gt;
&lt;br /&gt;
One important note: we use the term &amp;#039;&amp;#039;&amp;#039;fragment&amp;#039;&amp;#039;&amp;#039; in the name of our source files to correspond with what the standard calls &amp;#039;&amp;#039;&amp;#039;part&amp;#039;&amp;#039;&amp;#039;.  For instance, the source file that contains class definition that handles the workbook part in [[SpreadsheetML]] is called workbookfragment.cxx.  This convention is prevalent across all application types within [[oox]] module.&lt;br /&gt;
&lt;br /&gt;
Bonsai is also convenient to follow the changes:&lt;br /&gt;
&lt;br /&gt;
[http://bonsai.go-oo.org/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_xmlfilter03&amp;amp;branchtype=match&amp;amp;dir=xml%2Foox&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=week&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fhome%2Fooweb%2Fcvsup  the changes done in the last 2 weeks]&lt;br /&gt;
&lt;br /&gt;
Word document import is in the [[WriterFilter|writerfilter]] module.&lt;br /&gt;
&lt;br /&gt;
== Implementation Generalities == &lt;br /&gt;
&lt;br /&gt;
The whole [[OOX]] filter makes use of the new [[FastParser]] service to implement an event driven [[SAX]] parser.&lt;br /&gt;
&lt;br /&gt;
== Various Resources ==&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_filters_using_the_XML_based_file_format|OpenOffice filters using the XML based file format]]&lt;br /&gt;
* [http://books.evc-cit.info/ OASIS OpenDocument Essentials]&lt;br /&gt;
* http://blogs.sun.com/GullFOSS/entry/office_open_xml_import_filter&lt;br /&gt;
* [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter03 CWS on EIS]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA published standard]&lt;br /&gt;
* [http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm Ecma Office Open XML File Formats Standard]&lt;br /&gt;
* [http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx Brian Jones introduction to the Office 12 File Format]&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=61493</id>
		<title>Oox</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=61493"/>
		<updated>2008-01-24T00:43:54Z</updated>

		<summary type="html">&lt;p&gt;Hub: release in m243&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stands for [[Office Open XML]]. The name of the module that handle [[Office Open XML]] import. Part of the [[Xml]] project.&lt;br /&gt;
&lt;br /&gt;
The Oox module has been integrated in SRC680_m243. That does not mean it is finished, just that it is in some usable state to inquire for more feedback.&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
&lt;br /&gt;
The [[WordprocessingML]] importer is part of a different effort in writerfilter2 where the refactoring of the binary and RTF filter also takes place.&lt;br /&gt;
&lt;br /&gt;
= Directory Structure =&lt;br /&gt;
== core ==&lt;br /&gt;
This directory includes common code for all filters.&lt;br /&gt;
&lt;br /&gt;
=== AttributeList (class) ===&lt;br /&gt;
Provides access to attribute values of an element.  &amp;#039;&amp;#039;&amp;#039;AttributeList&amp;#039;&amp;#039;&amp;#039; wraps a &amp;#039;&amp;#039;com.sun.star.xml.sax.XFastAttributeList&amp;#039;&amp;#039; object, and provides convenience functions that convert the string value of an attribute to various other data types.  This class is usually used as a local variable declared with an instance of [[XFastAttributeList]] passed from the [[FastParser]] instance.&lt;br /&gt;
&lt;br /&gt;
=== FragmentHandler (class) ===&lt;br /&gt;
Top-most parent class that handles fragments.  In most cases this class handles all nested contexts for increased performance.  This class implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== RelationsFragmentHandler (class) ===&lt;br /&gt;
Handles loading of relationships fragments ( &amp;#039;&amp;#039;&amp;#039;/*/_rels/*.rels&amp;#039;&amp;#039;&amp;#039; ).  Like the FragmentHandler class, this class also implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== ImportBase (class) ===&lt;br /&gt;
The base class for application specific import filters, currently sub-classed by &amp;#039;&amp;#039;&amp;#039;oox::ppt::PowerPointImport&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;oox::xls::ExcelFilter&amp;#039;&amp;#039;&amp;#039;.  It implements [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XImporter.html XImporter] and [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XFilter.html XFilter] interfaces.&lt;br /&gt;
&lt;br /&gt;
== drawingml ==&lt;br /&gt;
&lt;br /&gt;
drawingml containg the [[DrawingML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== ppt ==&lt;br /&gt;
&lt;br /&gt;
ppt contain the [[PresentationML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== token ==&lt;br /&gt;
&lt;br /&gt;
The token list is generated by parsing the XML Schemas. Then gentoken.pl will use gperf to generate a perfect hash for fast parsing of known tokens. All the token are dispatched through integer numbers.&lt;br /&gt;
&lt;br /&gt;
== xls ==&lt;br /&gt;
This directory includes code specific to parse [[SpreadsheetML]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source_directories]]&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=58222</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=58222"/>
		<updated>2007-12-17T20:11:19Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://msdn.microsoft.com/msdnmag/issues/07/02/SmartArt/?topics=/msdnmag/issues/07/02/SmartArt Creating custom Smart Art]: provide a better understanding of the underlying layout model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=58004</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=58004"/>
		<updated>2007-12-14T19:38:59Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://msdn.microsoft.com/msdnmag/issues/07/02/SmartArt/?topics=/msdnmag/issues/07/02/SmartArt Creating custom Smart Art]: provide a better understanding of the underlying data model.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=52369</id>
		<title>PowerPoint filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=52369"/>
		<updated>2007-11-06T08:15:59Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Export */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PowerPoint filter is in charge of importing and exporting from/to PowerPoint binary documents (.PPT) into [[Impress]]. If you are a looking for the PPTX files from PowerPoint 2007, please go to the [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
The [[PowerPoint filter]] is maintained by [[User:Sj|Sven Jacobi]].&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The import code is scattered between the svx and sd modules.&lt;br /&gt;
Relevant files are in:&lt;br /&gt;
* sd/source/filter/ppt&lt;br /&gt;
* svx/source/svdraw/svdfppt.cxx&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
The export code is contained in sd/source/filter/eppt&lt;br /&gt;
&lt;br /&gt;
PPTWriter is the main class that will write the binary stream. Its implementation is spread accross eppt.cxx and epptso.cxx. &lt;br /&gt;
&lt;br /&gt;
[[Category:Impress]]&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=XML_and_Filter&amp;diff=51875</id>
		<title>XML and Filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=XML_and_Filter&amp;diff=51875"/>
		<updated>2007-11-01T18:29:02Z</updated>

		<summary type="html">&lt;p&gt;Hub: to filter category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We want in this chapter examine how XML and filters work.&lt;br /&gt;
= Parsing a XML File with SAX =&lt;br /&gt;
To start, have a look at :&lt;br /&gt;
&lt;br /&gt;
[http://www.oooforum.org/forum/viewtopic.phtml?t=4907 Using UNO&amp;#039;s Xml sax parser via the API]&lt;br /&gt;
 &lt;br /&gt;
It&amp;#039;s a [[CppSDKAuthors|Danny Brewer&amp;#039;s]] OooBasic program which use SAX. To avoid searching I begin to give the code here.&lt;br /&gt;
== Sax and OooBasic (Danny Brewer) ==&lt;br /&gt;
&lt;br /&gt;
This example demonstrates several things. &lt;br /&gt;
&lt;br /&gt;
* Using the UCB&amp;#039;s SimpleFileAccess to read from a file. (UCB = Universal Content Broker) &lt;br /&gt;
&lt;br /&gt;
* Using OOo&amp;#039;s XML sax parser. &lt;br /&gt;
&lt;br /&gt;
* Creating a listener with Basic&amp;#039;s CreateUnoListener() function. &lt;br /&gt;
&lt;br /&gt;
If you have never used a Sax Xml parser before, then this example may not be for you. &lt;br /&gt;
&lt;br /&gt;
OOo has a Sax Xml parser available via. the Uno api. The following program, in Basic, shows how to use it to parse an Xml document. As the document is parsed, events are fired which print little annoying dialog boxes on the screen. (Be sure to parse a VERY SMALL xml document so that you only have to click OK about a dozen or so times!) &lt;br /&gt;
&amp;lt;code&amp;gt;[oobas]&lt;br /&gt;
&lt;br /&gt;
REM Listing 1 Using SAX with OooBasic&lt;br /&gt;
REM  *****  BASIC  *****&lt;br /&gt;
REM  **** Danny Brewer (Mon Jan 12, 2004) ****&lt;br /&gt;
Sub Main &lt;br /&gt;
  cXmlFile = &amp;quot;C:\TestData.xml&amp;quot;  &lt;br /&gt;
  cXmlUrl = ConvertToURL( cXmlFile ) &lt;br /&gt;
  ReadXmlFromUrl( cXmlUrl ) &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
&amp;#039; This routine demonstrates how to use the Universal Content Broker&amp;#039;s &lt;br /&gt;
&amp;#039; SimpleFileAccess to read from a local file. &lt;br /&gt;
Sub ReadXmlFromUrl( cUrl ) &lt;br /&gt;
&amp;#039; The SimpleFileAccess service provides mechanisms to open, read, write files, &lt;br /&gt;
&amp;#039; as well as scan the directories of folders to see what they contain. &lt;br /&gt;
&amp;#039; The advantage of this over Basic&amp;#039;s ugly file manipulation is that this &lt;br /&gt;
&amp;#039; technique works the same way in any programming language. &lt;br /&gt;
&amp;#039; Furthermore, the program could be running on one machine, while the SimpleFileAccess &lt;br /&gt;
&amp;#039; accesses files from the point of view of the machine running OOo, not the machine &lt;br /&gt;
&amp;#039; where, say a remote Java or Python program is running. &lt;br /&gt;
  oSimpleFileAccess = createUnoService( &amp;quot;com.sun.star.ucb.SimpleFileAccess&amp;quot; )  &lt;br /&gt;
&amp;#039; Open input file. &lt;br /&gt;
  oInputStream = oSimpleFileAccess.openFileRead( cUrl ) &lt;br /&gt;
&lt;br /&gt;
ReadXmlFromInputStream( oInputStream ) &lt;br /&gt;
  oInputStream.closeInput() &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub ReadXmlFromInputStream( oInputStream ) &lt;br /&gt;
&amp;#039; Create a Sax Xml parser. &lt;br /&gt;
  oSaxParser = createUnoService( &amp;quot;com.sun.star.xml.sax.Parser&amp;quot; ) &lt;br /&gt;
&amp;#039; Create a document event handler object. &lt;br /&gt;
&amp;#039; As methods of this object are called, Basic arranges &lt;br /&gt;
&amp;#039; for global routines (see below) to be called. &lt;br /&gt;
  oDocEventsHandler = CreateDocumentHandler() &lt;br /&gt;
&amp;#039; Plug our event handler into the parser. &lt;br /&gt;
&amp;#039; As the parser reads an Xml document, it calls methods &lt;br /&gt;
&amp;#039; of the object, and hence global subroutines below &lt;br /&gt;
&amp;#039; to notify them of what it is seeing within the Xml document. &lt;br /&gt;
  oSaxParser.setDocumentHandler( oDocEventsHandler ) &lt;br /&gt;
&amp;#039; Create an InputSource structure. &lt;br /&gt;
  oInputSource = createUnoStruct( &amp;quot;com.sun.star.xml.sax.InputSource&amp;quot; ) &lt;br /&gt;
  With oInputSource &lt;br /&gt;
    .aInputStream = oInputStream &amp;#039; plug in the input stream &lt;br /&gt;
  End With &lt;br /&gt;
&amp;#039; Now parse the document. &lt;br /&gt;
&amp;#039; This reads in the entire document. &lt;br /&gt;
&amp;#039; Methods of the oDocEventsHandler object are called as &lt;br /&gt;
&amp;#039; the document is scanned. &lt;br /&gt;
  oSaxParser.parseStream( oInputSource ) &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
&amp;#039;================================================== &lt;br /&gt;
&amp;#039;  Xml Sax document handler. &lt;br /&gt;
&amp;#039;================================================== &lt;br /&gt;
&amp;#039; Global variables used by our document handler. &lt;br /&gt;
&amp;#039; &lt;br /&gt;
&amp;#039; Once the Sax parser has given us a document locator, &lt;br /&gt;
&amp;#039; the glLocatorSet variable is set to True, &lt;br /&gt;
&amp;#039; and the goLocator contains the locator object. &lt;br /&gt;
&amp;#039; &lt;br /&gt;
&amp;#039; The methods of the locator object has cool methods &lt;br /&gt;
&amp;#039; which can tell you where within the current Xml document &lt;br /&gt;
&amp;#039; being parsed that the current Sax event occured. &lt;br /&gt;
&amp;#039; The locator object implements com.sun.star.xml.sax.XLocator. &lt;br /&gt;
&amp;#039; &lt;br /&gt;
Private goLocator As Object &lt;br /&gt;
Private glLocatorSet As Boolean &lt;br /&gt;
&lt;br /&gt;
&amp;#039; This creates an object which implements the interface &lt;br /&gt;
&amp;#039; com.sun.star.xml.sax.XDocumentHandler. &lt;br /&gt;
&amp;#039; The doucment handler is returned as the function result. &lt;br /&gt;
Function CreateDocumentHandler() &lt;br /&gt;
&amp;#039; Use the CreateUnoListener function of Basic. &lt;br /&gt;
&amp;#039; Basic creates and returns an object that implements a particular interface. &lt;br /&gt;
&amp;#039; When methods of that object are called, &lt;br /&gt;
&amp;#039; Basic will call global Basic functions whose names are the same &lt;br /&gt;
&amp;#039; as the methods, but prefixed with a certian prefix. &lt;br /&gt;
  oDocHandler = CreateUnoListener( &amp;quot;DocHandler_&amp;quot;, &amp;quot;com.sun.star.xml.sax.XDocumentHandler&amp;quot; ) &lt;br /&gt;
  glLocatorSet = False &lt;br /&gt;
  CreateDocumentHandler() = oDocHandler &lt;br /&gt;
End Function &lt;br /&gt;
&lt;br /&gt;
&amp;#039;================================================== &lt;br /&gt;
&amp;#039;  Methods of our document handler call these &lt;br /&gt;
&amp;#039;  global functions. &lt;br /&gt;
&amp;#039;  These methods look strangely similar to &lt;br /&gt;
&amp;#039;  a SAX event handler. ;-) &lt;br /&gt;
&amp;#039;  These global routines are called by the Sax parser &lt;br /&gt;
&amp;#039;  as it reads in an XML document. &lt;br /&gt;
&amp;#039;  These subroutines must be named with a prefix that is &lt;br /&gt;
&amp;#039;  followed by the event name of the com.sun.star.xml.sax.XDocumentHandler interface. &lt;br /&gt;
&amp;#039;================================================== &lt;br /&gt;
Sub DocHandler_startDocument() &lt;br /&gt;
  Print &amp;quot;Start document&amp;quot; &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_endDocument() &lt;br /&gt;
&amp;#039; Print &amp;quot;End document&amp;quot; &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_startElement( cName As String, oAttributes As com.sun.star.xml.sax.XAttributeList ) &lt;br /&gt;
  Print &amp;quot;Start element&amp;quot;, cName &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_endElement( cName As String ) &lt;br /&gt;
&amp;#039;  Print &amp;quot;End element&amp;quot;, cName &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_characters( cChars As String ) &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_ignorableWhitespace( cWhitespace As String ) &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_processingInstruction( cTarget As String, cData As String ) &lt;br /&gt;
End Sub &lt;br /&gt;
&lt;br /&gt;
Sub DocHandler_setDocumentLocator( oLocator As com.sun.star.xml.sax.XLocator ) &lt;br /&gt;
&amp;#039; Save the locator object in a global variable. &lt;br /&gt;
&amp;#039; The locator object has valuable methods that we can &lt;br /&gt;
&amp;#039; call to determine &lt;br /&gt;
  goLocator = oLocator &lt;br /&gt;
  glLocatorSet = True &lt;br /&gt;
End Sub &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code installs an eventListener with a  com.sun.star.xml.sax.XDocumentHandler interface.The corresponding IDL documentation of this interface is :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[nowiki]&lt;br /&gt;
//Listing 2 IDL XdocumentHandler Interface&lt;br /&gt;
// IDL&lt;br /&gt;
module com {  module sun {  module star {  module xml {  module sax {  &lt;br /&gt;
interface XDocumentHandler: com::sun::star::uno::XInterface&lt;br /&gt;
{ &lt;br /&gt;
	void startDocument() &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void endDocument() &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void startElement( [in] string aName, &lt;br /&gt;
			 [in] com::sun::star::xml::sax::XAttributeList xAttribs ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void endElement( [in] string aName ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void characters( [in] string aChars ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void ignorableWhitespace( [in] string aWhitespaces ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void processingInstruction( [in] string aTarget, &lt;br /&gt;
			 [in] string aData ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException ); &lt;br /&gt;
	void setDocumentLocator( [in] com::sun::star::xml::sax::XLocator xLocator ) &lt;br /&gt;
			raises( com::sun::star::xml::sax::SAXException );  &lt;br /&gt;
}; &lt;br /&gt;
}; }; }; }; };&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
You can find the complete implementation of this interface in the OooBasic code of Listing 1.&lt;br /&gt;
We have then to write an Event Listener in C++. If you want to remember how Event Listener works in C++ have a look  [[OpenOffice_Calc#Event_Listener |here]].&lt;br /&gt;
&lt;br /&gt;
==The C++ Event Listener==&lt;br /&gt;
We have first to create a C++ class : &lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 3 Class Definition (could be in hxx file)&lt;br /&gt;
// C++&lt;br /&gt;
class XFlatXml : public ::cppu::WeakImplHelper1&amp;lt; ::com::sun::star::xml::sax::XDocumentHandler&amp;gt; &lt;br /&gt;
{ &lt;br /&gt;
private: &lt;br /&gt;
 Reference&amp;lt; XMultiServiceFactory &amp;gt; xMSF; &lt;br /&gt;
public: &lt;br /&gt;
&lt;br /&gt;
 XFlatXml( const Reference&amp;lt; XMultiServiceFactory &amp;gt; &amp;amp;r ) : xMSF( r ) &lt;br /&gt;
 {} &lt;br /&gt;
&lt;br /&gt;
// Reference &amp;lt; com::sun::star::io::XOutputStream &amp;gt; xOutputStream; &lt;br /&gt;
  virtual void SAL_CALL startDocument() throw (SAXException,RuntimeException) ; &lt;br /&gt;
  virtual void SAL_CALL endDocument() throw (SAXException,RuntimeException); &lt;br /&gt;
  virtual void SAL_CALL startElement(const OUString&amp;amp; str, const Reference&amp;lt;XAttributeList&amp;gt;&amp;amp; attriblist) throw (SAXException,RuntimeException); &lt;br /&gt;
  virtual void SAL_CALL endElement(const OUString&amp;amp; str) throw (SAXException,RuntimeException); &lt;br /&gt;
  virtual void SAL_CALL characters(const OUString&amp;amp; str) throw (SAXException,RuntimeException); &lt;br /&gt;
  virtual void SAL_CALL ignorableWhitespace(const OUString&amp;amp; str) throw (SAXException,RuntimeException); &lt;br /&gt;
  virtual void SAL_CALL processingInstruction(const OUString&amp;amp; str, const OUString&amp;amp; str2) throw (SAXException,RuntimeException) ; &lt;br /&gt;
  virtual void SAL_CALL setDocumentLocator(const Reference&amp;lt;XLocator&amp;gt;&amp;amp; doclocator) throw (SAXException,RuntimeException) ; &lt;br /&gt;
}; &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
A C++ correponding implementation code could be&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 4 The Event Listener Class Implementation&lt;br /&gt;
// C++&lt;br /&gt;
void XFlatXml::startDocument() throw (SAXException,RuntimeException){ &lt;br /&gt;
  printf(&amp;quot;StartDocument\n&amp;quot;); &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::endDocument() throw (SAXException,RuntimeException){ &lt;br /&gt;
  printf(&amp;quot;EndDocument\n&amp;quot;); &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::startElement(const OUString&amp;amp; str, const Reference&amp;lt;XAttributeList&amp;gt;&amp;amp; attriblist) throw (SAXException,RuntimeException){ &lt;br /&gt;
  Ostring OStr = OUStringToOString ( str,RTL_TEXTENCODING_UTF8); &lt;br /&gt;
  cout&amp;lt;&amp;lt; &amp;quot;StartElement : &amp;lt;&amp;quot; &amp;lt;&amp;lt; OStr &amp;lt;&amp;lt; &amp;quot; &amp;quot;; &lt;br /&gt;
  for (short i=0;i&amp;lt;attriblist-&amp;gt;getLength();i++){ &lt;br /&gt;
    OStr = OUStringToOString ( attriblist-&amp;gt;getNameByIndex(i),RTL_TEXTENCODING_UTF8); &lt;br /&gt;
    cout &amp;lt;&amp;lt; OStr &amp;lt;&amp;lt;&amp;quot;=&amp;quot;; &lt;br /&gt;
    OStr = OUStringToOString ( attriblist-&amp;gt;getValueByIndex(i),RTL_TEXTENCODING_UTF8); &lt;br /&gt;
    cout &amp;lt;&amp;lt; OStr; &lt;br /&gt;
  } &lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;&amp;gt;&amp;quot; &amp;lt;&amp;lt; endl; &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::endElement(const OUString&amp;amp; str) throw (SAXException,RuntimeException) { &lt;br /&gt;
  Ostring OStr = OUStringToOString ( str,RTL_TEXTENCODING_UTF8); &lt;br /&gt;
  cout&amp;lt;&amp;lt; &amp;quot;EndElement : &amp;lt;/&amp;quot; &amp;lt;&amp;lt; OStr &amp;lt;&amp;lt; &amp;quot;&amp;gt;&amp;quot; &amp;lt;&amp;lt; endl;  &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::characters(const OUString&amp;amp; str) throw (SAXException,RuntimeException) { &lt;br /&gt;
  OString OStr = OUStringToOString ( str,RTL_TEXTENCODING_UTF8); &lt;br /&gt;
  cout&amp;lt;&amp;lt; &amp;quot;Characers : &amp;quot; &amp;lt;&amp;lt; OStr &amp;lt;&amp;lt; endl; &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::ignorableWhitespace(const OUString&amp;amp; str) throw (SAXException,RuntimeException){ &lt;br /&gt;
  printf(&amp;quot;ignorableWhitespace\n&amp;quot;); &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
void XFlatXml::processingInstruction(const OUString&amp;amp; str, const OUString&amp;amp; str2) throw (SAXException,RuntimeException) { &lt;br /&gt;
  printf(&amp;quot;processingInstruction\n&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
void XFlatXml::setDocumentLocator(const Reference&amp;lt;XLocator&amp;gt;&amp;amp; doclocator) throw (SAXException,RuntimeException) { &lt;br /&gt;
  printf(&amp;quot;setDocumentLocator\n&amp;quot;); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Now it&amp;#039;s time to make this event listener working.&lt;br /&gt;
&lt;br /&gt;
== Main Program ==&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 5  The Main Program&lt;br /&gt;
// C++ &lt;br /&gt;
int main( ) &lt;br /&gt;
{ &lt;br /&gt;
//retrieve an instance of the remote service manager &lt;br /&gt;
  Reference&amp;lt; XMultiServiceFactory &amp;gt; rOfficeServiceManager; &lt;br /&gt;
  rOfficeServiceManager = ooConnect(); &lt;br /&gt;
  OSL_ENSURE(rOfficeServiceManager.is(), &amp;quot;Unable to connected to the office\n&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
// Installing our new XDocumentHandler &lt;br /&gt;
  XFlatXml *xListener = new XFlatXml(rOfficeServiceManager); &lt;br /&gt;
  Reference&amp;lt; XDocumentHandler &amp;gt; xHandler = static_cast&amp;lt; XDocumentHandler* &amp;gt; ( xListener ); &lt;br /&gt;
// getting oSimpleFileAcess &lt;br /&gt;
  // com.sun.star.ucb.XSimpleFileAccess \ added in makefile &lt;br /&gt;
  // #include &amp;lt;com/sun/star/ucb/XSimpleFileAccess.hpp&amp;gt; added in this file &lt;br /&gt;
  // using namespace com::sun::star::ucb; added in this file &lt;br /&gt;
  Reference&amp;lt; XSimpleFileAccess &amp;gt; xSFI( rOfficeServiceManager-&amp;gt;createInstance &lt;br /&gt;
       (OUString::createFromAscii(&amp;quot;com.sun.star.ucb.SimpleFileAccess&amp;quot;)),UNO_QUERY); &lt;br /&gt;
  OSL_ENSURE(xSFI.is(), &amp;quot;Unable to get SimpleFileAcessService\n&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
  // Don&amp;#039;t forget #include &amp;lt;osl/file.hxx&amp;gt;&lt;br /&gt;
  OUStr sUrl;&lt;br /&gt;
  osl::FileBase::getFileURLFromSystemPath(&lt;br /&gt;
                 OUString::createFromAscii(&amp;quot;/home/smoutou/TestData.xml&amp;quot;),sUrl);&lt;br /&gt;
 &lt;br /&gt;
// getting oInputStream &lt;br /&gt;
  // using namespace com::sun::star::io; added in this file &lt;br /&gt;
  Reference &amp;lt;XInputStream &amp;gt; oInputStream=xSFI-&amp;gt;openFileRead(sUrl); &lt;br /&gt;
&lt;br /&gt;
// oSaxParser = createUnoService( &amp;quot;com.sun.star.xml.sax.Parser&amp;quot; ) &lt;br /&gt;
  // com.sun.star.xml.sax.XParser \ added in Makefile &lt;br /&gt;
  //#include &amp;lt;com/sun/star/xml/sax/XParser.hpp&amp;gt; added in this file &lt;br /&gt;
  Reference &amp;lt; XParser &amp;gt; oSaxParser( rOfficeServiceManager-&amp;gt;createInstance &lt;br /&gt;
         ( OUString::createFromAscii( &amp;quot;com.sun.star.xml.sax.Parser&amp;quot; ) ), UNO_QUERY ); &lt;br /&gt;
  OSL_ENSURE(oSaxParser.is(), &amp;quot;Unable to get Sax Parser\n&amp;quot;); &lt;br /&gt;
  oSaxParser-&amp;gt;setDocumentHandler( xHandler ); &lt;br /&gt;
&lt;br /&gt;
 // com.sun.star.xml.sax.InputSource \ added in Makefile &lt;br /&gt;
 // #include &amp;lt;com/sun/star/xml/sax/InputSource.hpp&amp;gt; added in this file &lt;br /&gt;
  struct InputSource oInputSource; &lt;br /&gt;
  oInputSource.aInputStream = oInputStream; &lt;br /&gt;
&lt;br /&gt;
  oSaxParser-&amp;gt;parseStream(oInputSource); &lt;br /&gt;
  oInputStream-&amp;gt;closeInput(); &lt;br /&gt;
  return 0; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
To test how the program works we have to provide a XML file. We can take Danny&amp;#039;s example :&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Listing 6 XML file for test&lt;br /&gt;
&amp;lt;code&amp;gt;[xml]&lt;br /&gt;
&amp;lt;Employees&amp;gt; &lt;br /&gt;
  &amp;lt;Employee id=&amp;quot;101&amp;quot;&amp;gt; &lt;br /&gt;
    &amp;lt;Name&amp;gt; &lt;br /&gt;
      &amp;lt;First&amp;gt;John&amp;lt;/First&amp;gt; &lt;br /&gt;
      &amp;lt;Last&amp;gt;Smith&amp;lt;/Last&amp;gt; &lt;br /&gt;
    &amp;lt;/Name&amp;gt; &lt;br /&gt;
    &amp;lt;Address&amp;gt; &lt;br /&gt;
      &amp;lt;Street&amp;gt;123 Main&amp;lt;/Street&amp;gt; &lt;br /&gt;
      &amp;lt;City&amp;gt;Lawrence&amp;lt;/City&amp;gt; &lt;br /&gt;
      &amp;lt;State&amp;gt;KS&amp;lt;/State&amp;gt; &lt;br /&gt;
      &amp;lt;Zip&amp;gt;66049&amp;lt;/Zip&amp;gt; &lt;br /&gt;
    &amp;lt;/Address&amp;gt; &lt;br /&gt;
    &amp;lt;Phone type=&amp;quot;Home&amp;quot;&amp;gt;785-555-1234&amp;lt;/Phone&amp;gt; &lt;br /&gt;
  &amp;lt;/Employee&amp;gt; &lt;br /&gt;
&amp;lt;Employee id=&amp;quot;102&amp;quot;&amp;gt; &lt;br /&gt;
  &amp;lt;Name&amp;gt; &lt;br /&gt;
    &amp;lt;First&amp;gt;Bob&amp;lt;/First&amp;gt; &lt;br /&gt;
    &amp;lt;Last&amp;gt;Jones&amp;lt;/Last&amp;gt; &lt;br /&gt;
  &amp;lt;/Name&amp;gt; &lt;br /&gt;
  &amp;lt;Address&amp;gt; &lt;br /&gt;
    &amp;lt;Street&amp;gt;456 Puke Drive&amp;lt;/Street&amp;gt; &lt;br /&gt;
    &amp;lt;City&amp;gt;Lawrence&amp;lt;/City&amp;gt; &lt;br /&gt;
    &amp;lt;State&amp;gt;KS&amp;lt;/State&amp;gt; &lt;br /&gt;
    &amp;lt;Zip&amp;gt;66049&amp;lt;/Zip&amp;gt; &lt;br /&gt;
  &amp;lt;/Address&amp;gt; &lt;br /&gt;
  &amp;lt;Phone type=&amp;quot;Home&amp;quot;&amp;gt;785-555-1235&amp;lt;/Phone&amp;gt; &lt;br /&gt;
  &amp;lt;/Employee&amp;gt; &lt;br /&gt;
&amp;lt;/Employees&amp;gt; &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This file prints out in a shell :&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Listing 7 Result&lt;br /&gt;
&amp;lt;code&amp;gt;[nowiki]&lt;br /&gt;
setDocumentLocator &lt;br /&gt;
StartDocument &lt;br /&gt;
StartElement : &amp;lt;Employees &amp;gt; &lt;br /&gt;
Characers : &lt;br /&gt;
 &lt;br /&gt;
Characers : &lt;br /&gt;
StartElement : &amp;lt;Employee id=101&amp;gt; &lt;br /&gt;
Characers : &lt;br /&gt;
&lt;br /&gt;
Characers : &lt;br /&gt;
StartElement : &amp;lt;Name &amp;gt; &lt;br /&gt;
Characers : &lt;br /&gt;
 &lt;br /&gt;
Characers : &lt;br /&gt;
StartElement : &amp;lt;First &amp;gt; &lt;br /&gt;
Characers : John &lt;br /&gt;
EndElement : &amp;lt;/First&amp;gt; &lt;br /&gt;
Characers : &lt;br /&gt;
 &lt;br /&gt;
Characers : &lt;br /&gt;
StartElement : &amp;lt;Last &amp;gt; &lt;br /&gt;
Characers : Smith &lt;br /&gt;
EndElement : &amp;lt;/Last&amp;gt; &lt;br /&gt;
Characers : &lt;br /&gt;
 &lt;br /&gt;
Characers : &lt;br /&gt;
..... &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Writing directly XML Instructions in a Document =&lt;br /&gt;
&lt;br /&gt;
Since I read [http://xml.openoffice.org/filter/ OpenOffice.org filters using the XML based file format] I wanted to understand exactly the concepts and make some working code. It was for me a very hard task : I have to read extensively OOo source code because the example code given in the article cannot work without little corrections. I finally found the clues in :&lt;br /&gt;
*&amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog (attributelist.hxx and the corresponding attributelist.cxx)&lt;br /&gt;
*&amp;lt;OOB680_m5&amp;gt;/filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx&lt;br /&gt;
&lt;br /&gt;
== Our Goal and the corresponding Code ==&lt;br /&gt;
&lt;br /&gt;
Our goal is very well described in the comments of the Listing 9 below (given again in Listing 8): send the XML text in a document which gives the famous « Hello World! » into a writer document. The difficulty is, we don&amp;#039;t want to see all the Listing 8 in our writer document but only the text « Hello World! » as a paragraph : this is the meaning of the corresponding XML text.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Listing 8 What we would want to send in a Writer Document for interpretation&lt;br /&gt;
&amp;lt;code&amp;gt;[xml]&lt;br /&gt;
&amp;lt;office:document &lt;br /&gt;
      office:class=&amp;quot;text&amp;quot; &lt;br /&gt;
      xmlns:office=&amp;quot;http://openoffice.org/2000/office&amp;quot; &lt;br /&gt;
      xmlns:text=&amp;quot;http://openoffice.org/2000/text&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;office:body&amp;gt;&lt;br /&gt;
     &amp;lt;text:p&amp;gt;Hello World!&amp;lt;/text:p&amp;gt;&lt;br /&gt;
   &amp;lt;/office:body&amp;gt;&lt;br /&gt;
&amp;lt;/office:document&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Please note that, at the moment it&amp;#039;s the only XML program I can send to Openoffice and every others don&amp;#039;t work.&lt;br /&gt;
&lt;br /&gt;
I provide now the code [http://xml.openoffice.org/filter/ from the XML article] where I have added comments which show the little errors in the code.&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 9 http://xml.openoffice.org/filter/Code&lt;br /&gt;
// C++&lt;br /&gt;
using namespace ::com::sun::star;&lt;br /&gt;
&lt;br /&gt;
// instantiate the XML import component !!!! fell a &amp;#039;;&amp;#039; !!!!&lt;br /&gt;
::rtl::OUString sService =&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;com.sun.star.comp.Writer.XMLImporter&amp;quot;)&lt;br /&gt;
// !!!!!!!!! xHandler instead of xImport because xHandler is used below&lt;br /&gt;
uno::Reference&amp;lt;xml::sax::XDocumentHandler&amp;gt; xImport(&lt;br /&gt;
    xServiceFactory-&amp;gt;createInstance(sService), uno::UNO_QUERY );&lt;br /&gt;
ASSERT( xImport.is(), &amp;quot;can&amp;#039;t instantiate XML import&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
// OK. Now we have the import. Let&amp;#039;s make a real simple document.&lt;br /&gt;
&lt;br /&gt;
// a few comments:&lt;br /&gt;
// 1. We will use string constants from xmloff/xmlkywd.hxx&lt;br /&gt;
// 2. For convenience, we&amp;#039;ll use a globally shared attribute list from the &lt;br /&gt;
//    xmloff project (xmloff/attrlist.hxx)&lt;br /&gt;
// 3. In a real project, we would pre-construct our OUString, rather than use&lt;br /&gt;
//    the slow createFromAscii(…) method every time.&lt;br /&gt;
&lt;br /&gt;
// We will write the following document: (the unavoidable &amp;#039;Hello World!&amp;#039;)&lt;br /&gt;
// &amp;lt;office:document &lt;br /&gt;
//      office:class=&amp;quot;text&amp;quot; &lt;br /&gt;
//      xmlns:office=&amp;quot;http://openoffice.org/2000/office&amp;quot; &lt;br /&gt;
//      xmlns:text=&amp;quot;http://openoffice.org/2000/text&amp;quot; &amp;gt;&lt;br /&gt;
//   &amp;lt;office:body&amp;gt;&lt;br /&gt;
//     &amp;lt;text:p&amp;gt;Hello World!&amp;lt;/text:p&amp;gt;&lt;br /&gt;
//   &amp;lt;/office:body&amp;gt;&lt;br /&gt;
// &amp;lt;/office:document&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SvXMLAttributeList aAttrList;&lt;br /&gt;
&lt;br /&gt;
xHandler-&amp;gt;startDocument();&lt;br /&gt;
&lt;br /&gt;
// our first element: first build up the attribute list, then start the element&lt;br /&gt;
// DON&amp;#039;T FORGET TO ADD THE NAMESPACES!&lt;br /&gt;
aAttrList.AddAttribute(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;xmlns:office&amp;quot;), &lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;http://openoffice.org/2000/office&amp;quot;) );&lt;br /&gt;
aAttrList.AddAttribute(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;xmlns:text&amp;quot;), &lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;http://openoffice.org/2000/text&amp;quot;) );&lt;br /&gt;
aAttrList.AddAttribute(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;office:class&amp;quot;), &lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
        ::rtl::OUString::createFromAscii(&amp;quot;text&amp;quot;) );&lt;br /&gt;
xHandler-&amp;gt;startElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;office:document&amp;quot;),&lt;br /&gt;
    aAttrList );&lt;br /&gt;
&lt;br /&gt;
// body element (no attributes)&lt;br /&gt;
aAttrList.clear();&lt;br /&gt;
xHandler-&amp;gt;startElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;office:body&amp;quot;),&lt;br /&gt;
    aAtrList );&lt;br /&gt;
&lt;br /&gt;
// paragraph element (no attributes)&lt;br /&gt;
aAttrList.clear();&lt;br /&gt;
xHandler-&amp;gt;startElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;text:p&amp;quot;),&lt;br /&gt;
    aAtrList );&lt;br /&gt;
&lt;br /&gt;
// write text&lt;br /&gt;
xHandler-&amp;gt;characters(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;Hello World!&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close paragraph !!!!!!! Error here &amp;#039;,&amp;#039; instead of &amp;#039;;&amp;#039; !!!!!&lt;br /&gt;
xHandler-&amp;gt;startElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;text:p&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
// close body&lt;br /&gt;
xHandler-&amp;gt;endElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;office:body&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close document element&lt;br /&gt;
xHandler-&amp;gt;endElement(&lt;br /&gt;
    ::rtl::OUString::createFromAscii(&amp;quot;office:document&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close document&lt;br /&gt;
xHandler-&amp;gt;endDocument();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first difficulty is with the instruction :&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
// C++&lt;br /&gt;
SvXMLAttributeList aAttrList;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Why ? Because when writing a C++ automation program we haven&amp;#039;t the SvXMLAttributeList type defined. Then we have to write it. I have take the corresponding code from OOo source code :&lt;br /&gt;
&amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog (attributelist.hxx and the corresponding attributelist.cxx) but because the reader could not have downloaded the corresponding code, I provide it completely here.&lt;br /&gt;
&lt;br /&gt;
== The AttributeList Class ==&lt;br /&gt;
&lt;br /&gt;
First we provide the corresponding class :&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 10 AttributList class&lt;br /&gt;
// C++&lt;br /&gt;
struct AttributeList_Impl&lt;br /&gt;
{&lt;br /&gt;
	AttributeList_Impl()&lt;br /&gt;
	{&lt;br /&gt;
		// performance improvement during adding&lt;br /&gt;
		vecAttribute.reserve(20);&lt;br /&gt;
	}&lt;br /&gt;
	vector&amp;lt;struct TagAttribute_Impl&amp;gt; vecAttribute;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//  From  &amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog/attributelist.hxx &lt;br /&gt;
class AttributeList : public WeakImplHelper1 &amp;lt; XAttributeList &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	AttributeList_Impl *m_pImpl;&lt;br /&gt;
public:&lt;br /&gt;
	AttributeList();&lt;br /&gt;
	virtual ~AttributeList();&lt;br /&gt;
&lt;br /&gt;
	// methods that are not contained in any interface&lt;br /&gt;
	void AddAttribute( const OUString &amp;amp;sName , const OUString &amp;amp;sType , const OUString &amp;amp;sValue );&lt;br /&gt;
	void Clear();&lt;br /&gt;
	void RemoveAttribute( const OUString sName );&lt;br /&gt;
	void SetAttributeList( const Reference&amp;lt; XAttributeList &amp;gt; &amp;amp; );&lt;br /&gt;
	void AppendAttributeList( const Reference&amp;lt; XAttributeList &amp;gt; &amp;amp; );&lt;br /&gt;
&lt;br /&gt;
	// ::com::sun::star::xml::sax::XAttributeList&lt;br /&gt;
	virtual sal_Int16 SAL_CALL getLength(void) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
	virtual OUString SAL_CALL getNameByIndex(sal_Int16 i) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
	virtual OUString SAL_CALL getTypeByIndex(sal_Int16 i) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
	virtual OUString SAL_CALL getTypeByName(const OUString&amp;amp; aName) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
	virtual OUString SAL_CALL getValueByIndex(sal_Int16 i) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
	virtual OUString SAL_CALL getValueByName(const OUString&amp;amp; aName) &lt;br /&gt;
		throw( RuntimeException );&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The complete implementation is :&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 11 AttributList class Implementation&lt;br /&gt;
// C++&lt;br /&gt;
//*************** AttributeList impementation&lt;br /&gt;
// from    &amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog/attributelist.hxx &lt;br /&gt;
sal_Int16 SAL_CALL AttributeList::getLength(void) throw( RuntimeException ){&lt;br /&gt;
	return m_pImpl-&amp;gt;vecAttribute.size();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
OUString SAL_CALL AttributeList::getNameByIndex(sal_Int16 i) throw( RuntimeException ){&lt;br /&gt;
	if( i &amp;lt; static_cast &amp;lt; sal_Int16 &amp;gt; (m_pImpl-&amp;gt;vecAttribute.size()) ) {&lt;br /&gt;
		return m_pImpl-&amp;gt;vecAttribute[i].sName;&lt;br /&gt;
	}&lt;br /&gt;
	return OUString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
OUString SAL_CALL AttributeList::getTypeByIndex(sal_Int16 i) throw( RuntimeException ){&lt;br /&gt;
	if( i &amp;lt; static_cast &amp;lt; sal_Int16 &amp;gt; (m_pImpl-&amp;gt;vecAttribute.size() ) ) {&lt;br /&gt;
		return m_pImpl-&amp;gt;vecAttribute[i].sType;&lt;br /&gt;
	}&lt;br /&gt;
	return OUString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
OUString SAL_CALL  AttributeList::getValueByIndex(sal_Int16 i) throw( RuntimeException ){&lt;br /&gt;
	if( i &amp;lt; static_cast &amp;lt; sal_Int16 &amp;gt; (m_pImpl-&amp;gt;vecAttribute.size() ) ) {&lt;br /&gt;
		return m_pImpl-&amp;gt;vecAttribute[i].sValue;&lt;br /&gt;
	}&lt;br /&gt;
	return OUString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
OUString SAL_CALL AttributeList::getTypeByName( const OUString&amp;amp; sName ) throw( RuntimeException ){&lt;br /&gt;
	vector&amp;lt;struct TagAttribute_Impl&amp;gt;::iterator ii = m_pImpl-&amp;gt;vecAttribute.begin();&lt;br /&gt;
&lt;br /&gt;
	for( ; ii != m_pImpl-&amp;gt;vecAttribute.end() ; ii ++ ) {&lt;br /&gt;
		if( (*ii).sName == sName ) {&lt;br /&gt;
			return (*ii).sType;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return OUString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
OUString SAL_CALL AttributeList::getValueByName(const OUString&amp;amp; sName) throw( RuntimeException ){&lt;br /&gt;
	vector&amp;lt;struct TagAttribute_Impl&amp;gt;::iterator ii = m_pImpl-&amp;gt;vecAttribute.begin();&lt;br /&gt;
&lt;br /&gt;
	for( ; ii != m_pImpl-&amp;gt;vecAttribute.end() ; ii ++ ) {&lt;br /&gt;
		if( (*ii).sName == sName ) {&lt;br /&gt;
			return (*ii).sValue;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return OUString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
AttributeList::AttributeList(){&lt;br /&gt;
	m_pImpl = new AttributeList_Impl;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
AttributeList::~AttributeList(){&lt;br /&gt;
	delete m_pImpl;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AttributeList::AddAttribute(const OUString &amp;amp;sName ,&lt;br /&gt;
                                 const OUString &amp;amp;sType ,&lt;br /&gt;
                                 const OUString &amp;amp;sValue ){&lt;br /&gt;
	m_pImpl-&amp;gt;vecAttribute.push_back( TagAttribute_Impl( sName , sType , sValue ) );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AttributeList::Clear(){&lt;br /&gt;
	m_pImpl-&amp;gt;vecAttribute.clear();&lt;br /&gt;
&lt;br /&gt;
	OSL_ENSURE( ! getLength(), &amp;quot;Length &amp;gt; 0 after AttributeList::Clear!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AttributeList::RemoveAttribute( const OUString sName ){&lt;br /&gt;
	vector&amp;lt;struct TagAttribute_Impl&amp;gt;::iterator ii = m_pImpl-&amp;gt;vecAttribute.begin();&lt;br /&gt;
&lt;br /&gt;
	for( ; ii != m_pImpl-&amp;gt;vecAttribute.end() ; ii ++ ) {&lt;br /&gt;
		if( (*ii).sName == sName ) {&lt;br /&gt;
			m_pImpl-&amp;gt;vecAttribute.erase( ii );&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AttributeList::SetAttributeList( const Reference&amp;lt; XAttributeList &amp;gt;  &amp;amp;r ){&lt;br /&gt;
	Clear();&lt;br /&gt;
	AppendAttributeList( r );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void AttributeList::AppendAttributeList( const Reference&amp;lt; XAttributeList &amp;gt;  &amp;amp;r ){&lt;br /&gt;
	OSL_ENSURE( r.is(), &amp;quot;r isn&amp;#039;t!&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
	sal_Int32 nMax = r-&amp;gt;getLength();&lt;br /&gt;
	sal_Int32 nTotalSize = m_pImpl-&amp;gt;vecAttribute.size() + nMax;&lt;br /&gt;
	m_pImpl-&amp;gt;vecAttribute.reserve( nTotalSize );&lt;br /&gt;
&lt;br /&gt;
	for( sal_Int16 i = 0 ; i &amp;lt; nMax ; i ++ ) {&lt;br /&gt;
		m_pImpl-&amp;gt;vecAttribute.push_back( TagAttribute_Impl(&lt;br /&gt;
			r-&amp;gt;getNameByIndex( i ) ,&lt;br /&gt;
			r-&amp;gt;getTypeByIndex( i ) ,&lt;br /&gt;
			r-&amp;gt;getValueByIndex( i )));&lt;br /&gt;
	}&lt;br /&gt;
	OSL_ENSURE( nTotalSize == getLength(), &amp;quot;nTotalSize != getLength()&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The main Program ==&lt;br /&gt;
&lt;br /&gt;
To make a complete automation program, we have to provide a main program.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[cpp]&lt;br /&gt;
//Listing 12  The corrected Listing 9 program for automation.&lt;br /&gt;
// C++&lt;br /&gt;
int main( )&lt;br /&gt;
{&lt;br /&gt;
//retrieve an instance of the remote service manager&lt;br /&gt;
    Reference&amp;lt; XMultiServiceFactory &amp;gt; rOfficeServiceManager;&lt;br /&gt;
    rOfficeServiceManager = ooConnect();&lt;br /&gt;
    OSL_ENSURE(rOfficeServiceManager.is(), &amp;quot;Unable to connected to the office\n&amp;quot;);&lt;br /&gt;
//get the desktop service using createInstance returns an XInterface type&lt;br /&gt;
    Reference&amp;lt; XInterface  &amp;gt; Desktop = rOfficeServiceManager-&amp;gt;createInstance(&lt;br /&gt;
    OUString::createFromAscii( &amp;quot;com.sun.star.frame.Desktop&amp;quot; ));&lt;br /&gt;
&lt;br /&gt;
//query for the XComponentLoader interface&lt;br /&gt;
    Reference&amp;lt; XComponentLoader &amp;gt; rComponentLoader (Desktop, UNO_QUERY);&lt;br /&gt;
    OSL_ENSURE(rComponentLoader.is() , &amp;quot;Unable to get XComponentloader service\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
   Reference&amp;lt; XDesktop &amp;gt; rDesktop(Desktop,UNO_QUERY);&lt;br /&gt;
   OSL_ENSURE(rDesktop.is() , &amp;quot;Unable to get XDesktop service\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
//get an instance of the OOowriter document&lt;br /&gt;
    Reference&amp;lt; XComponent &amp;gt; xWriterComponent = rComponentLoader-&amp;gt;loadComponentFromURL(&lt;br /&gt;
	OUString::createFromAscii(&amp;quot;private:factory/swriter&amp;quot;),&lt;br /&gt;
        OUString::createFromAscii(&amp;quot;_blank&amp;quot;),&lt;br /&gt;
        0,&lt;br /&gt;
        Sequence &amp;lt; ::com::sun::star::beans::PropertyValue &amp;gt;());&lt;br /&gt;
&lt;br /&gt;
// instantiate the XML import component &lt;br /&gt;
    OUString sService = OUString::createFromAscii(&amp;quot;com.sun.star.comp.Writer.XMLImporter&amp;quot;);&lt;br /&gt;
    Reference&amp;lt;XDocumentHandler&amp;gt; xImport(&lt;br /&gt;
			rOfficeServiceManager-&amp;gt;createInstance(sService), UNO_QUERY );&lt;br /&gt;
    OSL_ENSURE( xImport.is(), &amp;quot;can&amp;#039;t instantiate XML import&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
// ******** These important lines where not in the original listing&lt;br /&gt;
// I find the clue in &amp;lt;OOB680_m5&amp;gt;/filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx&lt;br /&gt;
// #include &amp;lt;com/sun/star/document/XImporter.hpp&amp;gt; added in this file&lt;br /&gt;
// using namespace com::sun::star::document; added in this file&lt;br /&gt;
// com.sun.star.document.XImporter \ added in the MakeFile&lt;br /&gt;
    Reference &amp;lt; XImporter &amp;gt; xImporter( xImport, UNO_QUERY );&lt;br /&gt;
    xImporter-&amp;gt;setTargetDocument ( xWriterComponent );&lt;br /&gt;
&lt;br /&gt;
// OK. Now we have the import. Let&amp;#039;s make a real simple document.&lt;br /&gt;
&lt;br /&gt;
// a few comments:&lt;br /&gt;
// 1. We will use string constants from xmloff/xmlkywd.hxx&lt;br /&gt;
// 2. For convenience, we&amp;#039;ll use a globally shared attribute list from the &lt;br /&gt;
//    xmloff project (xmloff/attrlist.hxx)&lt;br /&gt;
// 3. In a real project, we would pre-construct our OUString, rather than use&lt;br /&gt;
//    the slow createFromAscii(\x{2026}) method every time.&lt;br /&gt;
&lt;br /&gt;
// We will write the following document: (the unavoidable &amp;#039;Hello World!&amp;#039;)&lt;br /&gt;
// &amp;lt;office:document &lt;br /&gt;
//      office:class=&amp;quot;text&amp;quot; &lt;br /&gt;
//      xmlns:office=&amp;quot;http://openoffice.org/2000/office&amp;quot; &lt;br /&gt;
//      xmlns:text=&amp;quot;http://openoffice.org/2000/text&amp;quot; &amp;gt;&lt;br /&gt;
//   &amp;lt;office:body&amp;gt;&lt;br /&gt;
//     &amp;lt;text:p&amp;gt;Hello World!&amp;lt;/text:p&amp;gt;&lt;br /&gt;
//   &amp;lt;/office:body&amp;gt;&lt;br /&gt;
// &amp;lt;/office:document&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    xImport-&amp;gt;startDocument();&lt;br /&gt;
&lt;br /&gt;
//  SvXMLAttributeList aAttrList; in http://xml.openoffice.org/filter/&lt;br /&gt;
// It is possible to find the corresponding code in source :&lt;br /&gt;
//    &amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog/attributelist.hxx and&lt;br /&gt;
//    &amp;lt;OOB680_m5&amp;gt;/filter/source/xsltdialog/attributelist.cxx&lt;br /&gt;
    AttributeList *xAttrList = new AttributeList();&lt;br /&gt;
    Reference&amp;lt; XAttributeList &amp;gt; aAttrList = static_cast&amp;lt; XAttributeList* &amp;gt; ( xAttrList );&lt;br /&gt;
    &lt;br /&gt;
// our first element: first build up the attribute list, then start the element&lt;br /&gt;
// DON&amp;#039;T FORGET TO ADD THE NAMESPACES!&lt;br /&gt;
&lt;br /&gt;
xAttrList-&amp;gt;AddAttribute(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;xmlns:office&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;http://openoffice.org/2000/office&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
xAttrList-&amp;gt;AddAttribute(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;xmlns:text&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;http://openoffice.org/2000/text&amp;quot;) );&lt;br /&gt;
xAttrList-&amp;gt;AddAttribute(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;office:class&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;CDATA&amp;quot;), &lt;br /&gt;
    OUString::createFromAscii(&amp;quot;text&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
xImport-&amp;gt;startElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;office:document&amp;quot;),&lt;br /&gt;
    aAttrList );&lt;br /&gt;
&lt;br /&gt;
// body element (no attributes)&lt;br /&gt;
aAttrList.clear();&lt;br /&gt;
xImport-&amp;gt;startElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;office:body&amp;quot;),&lt;br /&gt;
    aAttrList );&lt;br /&gt;
&lt;br /&gt;
// paragraph element (no attributes)&lt;br /&gt;
aAttrList.clear();&lt;br /&gt;
xImport-&amp;gt;startElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;text:p&amp;quot;),&lt;br /&gt;
    aAttrList );&lt;br /&gt;
&lt;br /&gt;
// write text&lt;br /&gt;
xImport-&amp;gt;characters(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;Hello World!&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close paragraph&lt;br /&gt;
xImport-&amp;gt;endElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;text:p&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close body&lt;br /&gt;
xImport-&amp;gt;endElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;office:body&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close document element&lt;br /&gt;
xImport-&amp;gt;endElement(&lt;br /&gt;
    OUString::createFromAscii(&amp;quot;office:document&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
// close document&lt;br /&gt;
xImport-&amp;gt;endDocument();&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s easy to find the program [[UNO_automation_with_a_binary_%28executable%29#Preparing_a_new_Code_as_a_starting_Point|ooConnect()]] in this document.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51874</id>
		<title>PowerPoint filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51874"/>
		<updated>2007-11-01T18:28:16Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PowerPoint filter is in charge of importing and exporting from/to PowerPoint binary documents (.PPT) into [[Impress]]. If you are a looking for the PPTX files from PowerPoint 2007, please go to the [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
The [[PowerPoint filter]] is maintained by [[User:Sj|Sven Jacobi]].&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The import code is scattered between the svx and sd modules.&lt;br /&gt;
Relevant files are in:&lt;br /&gt;
* sd/source/filter/ppt&lt;br /&gt;
* svx/source/svdraw/svdfppt.cxx&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
The export code is contained in sd/source/filter/eppt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Impress]]&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51873</id>
		<title>PowerPoint filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51873"/>
		<updated>2007-11-01T18:27:28Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PowerPoint filter is in charge of import and export of PowerPoint binary document (.PPT) into [[Impress]]. If you are a looking for the PPTX files from PowerPoint 2007, please go to the [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
The [[PowerPoint filter]] is maintained by [[User:Sj|Sven Jacobi]].&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The import code is scattered between the svx and sd modules.&lt;br /&gt;
Relevant files are in:&lt;br /&gt;
* sd/source/filter/ppt&lt;br /&gt;
* svx/source/svdraw/svdfppt.cxx&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
The export code is contained in sd/source/filter/eppt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Impress]]&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=51872</id>
		<title>Office Open XML/Legacy Implementation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=51872"/>
		<updated>2007-11-01T18:26:27Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* OO.o Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOXML Basics =&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Office Open XML&amp;quot; is an XML based file format that has been published as [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]. It is used as default file format by Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are plans to support this file format in OpenOffice.org for interoperation with Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are 3 major types of formats&lt;br /&gt;
&lt;br /&gt;
* [[WordprocessingML]] - For word processor documents (file extensions may be docx, docm)&lt;br /&gt;
* [[SpreadsheetML]] - For spreadsheet documents (file extensions may be xlsx, xlsm)&lt;br /&gt;
* [[PresentationML]] - For presentation documents (file extensions may be pptx, pptm)&lt;br /&gt;
* [[DrawingML]] - Used by other markup language to represent graphics data.&lt;br /&gt;
* [[VML]] - A legacy vector markup.&lt;br /&gt;
&lt;br /&gt;
== Packaging Conventions ==&lt;br /&gt;
OpenXML document is a package that consists of a flat collection of &amp;#039;&amp;#039;&amp;#039;&amp;quot;parts&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  Each &amp;quot;part&amp;quot; has a case-&amp;#039;&amp;#039;insensitive&amp;#039;&amp;#039; part name that consists of a slash (/) delimited sequence of segment names such as &amp;quot;/pres/slides/slide1.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For the most part, the ZIP compression is used to package the parts, in which case the term &amp;#039;&amp;#039;&amp;#039;&amp;quot;package&amp;quot;&amp;#039;&amp;#039;&amp;#039; refers to the ZIP archive, and the parts refer to the individual files archived within.  The part name in this case is the file path within the archive.&lt;br /&gt;
&lt;br /&gt;
Each part also has a &amp;#039;&amp;#039;&amp;#039;content type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;/[Content_Types].xml&amp;#039;&amp;#039;&amp;#039; provides the content type of each part within the archive.&lt;br /&gt;
&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Packages and parts can contains &amp;#039;&amp;#039;&amp;#039;explicit relationships&amp;#039;&amp;#039;&amp;#039; to other parts as well as to external resources.  Every explicit relationship has an ID and a type, and relationship types are named using URIs.&lt;br /&gt;
&lt;br /&gt;
The set of explicit relationships for each package or part is stored in a relationship part whose name (or path) follows a specific convention e.g. the relationship part for a part called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/c.xml&amp;quot;&amp;#039;&amp;#039;&amp;#039; is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/_rels/c.xml.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  As a special case, the relationship part for the package as a whole is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/_rels/.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= OO.o Implementation =&lt;br /&gt;
There is some code in the oox module ([[OOX]]) from the [[Xml]] project. The [[CWS]] is xmlfilter02 in SRC680. ([http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 view the workspace on EIS])&lt;br /&gt;
&lt;br /&gt;
To fetch the oox code from CVS (using CVS_ROOT is set properly):&lt;br /&gt;
&lt;br /&gt;
 cvs co -r cws_src680_xmlfilter02 -d oox xml/oox&lt;br /&gt;
&lt;br /&gt;
One important note: we use the term &amp;#039;&amp;#039;&amp;#039;fragment&amp;#039;&amp;#039;&amp;#039; in the name of our source files to correspond with what the standard calls &amp;#039;&amp;#039;&amp;#039;part&amp;#039;&amp;#039;&amp;#039;.  For instance, the source file that contains class definition that handles the workbook part in [[SpreadsheetML]] is called workbookfragment.cxx.  This convention is prevalent across all application types within [[oox]] module.&lt;br /&gt;
&lt;br /&gt;
Bonsai is also convenient to follow the changes:&lt;br /&gt;
&lt;br /&gt;
[http://bonsai.go-oo.org/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_xmlfilter02&amp;amp;branchtype=match&amp;amp;dir=xml%2Foox&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=week&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fhome%2Fooweb%2Fcvsup  the changes done in the last 2 weeks]&lt;br /&gt;
&lt;br /&gt;
Word document import is in the [[WriterFilter|writerfilter]] module.&lt;br /&gt;
&lt;br /&gt;
== Implementation Generalities == &lt;br /&gt;
&lt;br /&gt;
The whole [[OOX]] filter makes use of the new [[FastParser]] service to implement an event driven [[SAX]] parser.&lt;br /&gt;
&lt;br /&gt;
== Various Resources ==&lt;br /&gt;
&lt;br /&gt;
* http://blogs.sun.com/GullFOSS/entry/office_open_xml_import_filter&lt;br /&gt;
* [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 CWS on EIS]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA published standard]&lt;br /&gt;
* [http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm Ecma Office Open XML File Formats Standard]&lt;br /&gt;
* [http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx Brian Jones introduction to the Office 12 File Format]&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=FastParser&amp;diff=51871</id>
		<title>FastParser</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=FastParser&amp;diff=51871"/>
		<updated>2007-11-01T18:24:45Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DRAFT&lt;br /&gt;
&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
The service &amp;#039;&amp;#039;com.sun.star.xml.sax.FastParser&amp;#039;&amp;#039; provides an xml parser that generates sax like events&lt;br /&gt;
by implementing a [[XFastParser]]&lt;br /&gt;
&lt;br /&gt;
= IDL =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service : XFastParser;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Namespace =&lt;br /&gt;
&lt;br /&gt;
com::sun::star::xml::sax&lt;br /&gt;
&lt;br /&gt;
= Motivation =&lt;br /&gt;
&lt;br /&gt;
For implementing the first OOo xml filters in 2000 we decided to use a sax api to parse the&lt;br /&gt;
xml streams. At this time there where some already proven sax implementations we could&lt;br /&gt;
choose from. We decided to use the [http://expat.sourceforge.net expat - XML Parser Toolkit].&lt;br /&gt;
Under the namespace &amp;#039;&amp;#039;com.sun.star.xml.sax&amp;#039;&amp;#039; we developed a set of [[UNO]] interfaces that assembled&lt;br /&gt;
a sax api interface. A component was implemented that used expat to implement a reader and&lt;br /&gt;
a writer. This component is used in the [[XMLOFF]] project that implements the import and export&lt;br /&gt;
filter for the [[OpenDocumentFormat]].&lt;br /&gt;
&lt;br /&gt;
This solution has two drawbacks:&lt;br /&gt;
&lt;br /&gt;
* The initial sax api didn&amp;#039;t know about xml namespaces, so namespaces have to be handled in each filter.&lt;br /&gt;
* The utf8 strings from the xml stream have to be converted to the UNO strings that use utf16 for encoding. This is one of the major bottlenecks when dealing with larger xml documents.&lt;br /&gt;
&lt;br /&gt;
An additional feature that is not provided by the sax api is the concept of import contexts.&lt;br /&gt;
Usually a sax import filter implements one document handler that gets all xml events for the whole&lt;br /&gt;
xml stream. Therefor this document handler must know about all valid elements. In the [[XMLOFF]]&lt;br /&gt;
project we added a context stack to the document handler.&lt;br /&gt;
Basically, we added a &amp;#039;&amp;#039;create child event&amp;#039;&amp;#039; to the existing sax&lt;br /&gt;
events. This event was called on the current context to create a new child context for each&lt;br /&gt;
direct child element of the current context. When the child element was processed its context&lt;br /&gt;
would be put on top of the stack and became the current. After the current context gets the&lt;br /&gt;
end event it is removed from the stack.&lt;br /&gt;
This made implementing an importer for a rather complex format very easy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The problem is that the namespace handling and the context feature is buried deep in the [[XMLOFF]]&lt;br /&gt;
project. So new filter implementations would have to reimplement it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To simplify implementations of xml import filters I designed a new sax like UNO api that&lt;br /&gt;
implements the following key features:&lt;br /&gt;
* Support for namespaces&lt;br /&gt;
* Support for the context feature&lt;br /&gt;
* Replacing xml names strings with integer tokens&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The last feature, replacing xml names with integer tokens, should overcome the string performance&lt;br /&gt;
issue we had with the old sax api. It also simplifies the implementation of an xml import filter.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For example consider the following code from [[XMLOFF]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void AnimationNodeContext::StartElement( const Reference&amp;lt; XAttributeList &amp;gt;&amp;amp; xAttrList )&lt;br /&gt;
{&lt;br /&gt;
  for( sal_Int16 nAttribute = 0; nAttribute &amp;lt; nCount; nAttribute++ )&lt;br /&gt;
  {&lt;br /&gt;
    const OUString&amp;amp; rAttrName = xAttrList-&amp;gt;getNameByIndex( nAttribute );&lt;br /&gt;
    const OUString&amp;amp; rValue = xAttrList-&amp;gt;getValueByIndex( nAttribute );&lt;br /&gt;
&lt;br /&gt;
    OUString aLocalName;&lt;br /&gt;
    sal_uInt16 nPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName, &amp;amp;aLocalName );&lt;br /&gt;
&lt;br /&gt;
    if( IsXMLToken( aLocalName, XML_PAR ) &amp;amp;&amp;amp; nPrefix == XML_NAMESPACE_ANIMATION )&lt;br /&gt;
    {&lt;br /&gt;
      ...&lt;br /&gt;
    }&lt;br /&gt;
    else if( IsXMLToken( aLocalName, XML_NODE ) &amp;amp;&amp;amp; nPrefix == XML_NAMESPACE_SMIL ) )&lt;br /&gt;
    {&lt;br /&gt;
      ...&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This contains multiple string conversions, namespace lookups and string compares.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;With the fast sax parser api this would look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void AnimationNodeContext::startFastElement( sal_Int32 Element, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
{&lt;br /&gt;
  switch( Element )&lt;br /&gt;
  {&lt;br /&gt;
    case NMSP_ANIMATION|XML_PAR:&lt;br /&gt;
      ...&lt;br /&gt;
      break;&lt;br /&gt;
    case NMSP_SMIL|XML_NODE:&lt;br /&gt;
      ...&lt;br /&gt;
      break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Implementing an xml format import filter with the fast sax api  =&lt;br /&gt;
&lt;br /&gt;
To parse an xml stream you need to create an instance of the service &amp;#039;&amp;#039;com.sun.star.xml.sax.FastParser&amp;#039;&amp;#039;.&lt;br /&gt;
This parser needs a [[XFastDocumentHandler]] that you must set via the method &amp;#039;&amp;#039;setFastDocumentHandler()&amp;#039;&amp;#039;.&lt;br /&gt;
This [[XFastDocumentHandler]] must be implemented by your filter component. The important method of the [[XFastDocumentHandler]]&lt;br /&gt;
is &amp;#039;&amp;#039;createFastChildContext()&amp;#039;&amp;#039; from its parent interface [[XFastContextHandler]]. It is called from the parser&lt;br /&gt;
to create a context for the root element of the xml stream.&lt;br /&gt;
&lt;br /&gt;
== The fast context handler ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When the [[XFastDocumentHandler]] returns a [[XFastContextHandler]] for the root element to the parser,&lt;br /&gt;
the parser uses that context to send him the sax events for the root element.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For each child element of an xml element its context is also asked by the parser to return a context&lt;br /&gt;
for the child element. The returned context then gets all sax events for that element.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A filter can return the same instance of a [[XFastContextHandler]] more than once.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Since the [[XFastDocumentHandler]] interface is derived from [[XFastContextHandler]] you can implement a filter&lt;br /&gt;
with only one instance by always returning your [[XFastDocumentHandler]] as a child context. This way you disable&lt;br /&gt;
the context feature and you get the sax events the same way as with an old sax api XDocumentHandler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The fast token handler ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You should implement an object with the interface [[XFastTokenHandler]]. It is used by&lt;br /&gt;
the parser to convert xml element local names and attribute names to integer tokens. Usually the parser will&lt;br /&gt;
retrieve integer tokens by calling &amp;#039;&amp;#039;getTokenFromUTF8&amp;#039;&amp;#039;. This method takes an uft8 encoded string as a byte sequence.&lt;br /&gt;
Since xml files are usually encoded in utf8, no format conversion is needed in the default case.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When the parser processes an xml element it first asks the token handler if he has a valid integer token for the&lt;br /&gt;
local name of that element.&lt;br /&gt;
If the token handler does not know the element local name the parser handles this element as an unknown element.&lt;br /&gt;
Elements with a namespace that was not registered at the parser are also handled as unknown elements, even if the&lt;br /&gt;
local name is known by the token handler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optimize your fast token handler ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For maximum performance the fast token handler should know all valid element and attribute names. You can also add&lt;br /&gt;
common attribute values. It is very easy to automatically generate such a token handler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For the ms office 12 import filter I used [http://www.gnu.org/software/gperf/gperf.html gperf] to create a perfect hash&lt;br /&gt;
for all xml names of that format at compile time. See [[XFastTokenHandler]] for a sample implementation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pseudo code to parse an xml stream ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// namespace id must be &amp;lt; 0x10000&lt;br /&gt;
const sal_Int32 NMSP_SAMPLE_1 = (1 &amp;lt;&amp;lt; 16);&lt;br /&gt;
const sal_Int32 NMSP_SAMPLE_2 = (2 &amp;lt;&amp;lt; 16);&lt;br /&gt;
&lt;br /&gt;
class MyContext : public XFastContextHandler&lt;br /&gt;
{&lt;br /&gt;
	// XFastContextHandler&lt;br /&gt;
    void startFastElement( sal_Int32 Element, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
		if( Element == NMSP_SAMPLE_1|XML_sampleelement )&lt;br /&gt;
		{&lt;br /&gt;
			maName = Attribs-&amp;gt;getOptionalValue[NMSP_SAMPLE_2|XML_name];&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void endFastElement( sal_Int32 Element ) {}&lt;br /&gt;
&lt;br /&gt;
    void startUnknownElement( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs ) {}&lt;br /&gt;
    void endUnknownElement( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name ) {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Reference&amp;lt; XFastContextHandler &amp;gt; createFastChildContext( sal_Int32 Element, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
		if( Element == NMSP_SAMPLE_1|XML_sampleelement )&lt;br /&gt;
			return this;&lt;br /&gt;
		else&lt;br /&gt;
			return 0;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    Reference&amp;lt; XFastContextHandler &amp;gt; createUnknownChildContext( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
		return 0;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	void characters( const OUString&amp;amp; aChars ) {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class MyHandler : public XFastDocumentHandler&lt;br /&gt;
{&lt;br /&gt;
	// XFastDocumentHandler&lt;br /&gt;
    void startDocument()&lt;br /&gt;
	{&lt;br /&gt;
		// parsing one xml file is started&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void endDocument()&lt;br /&gt;
	{&lt;br /&gt;
		// parsing one xml file is finished&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void SAL_CALL setDocumentLocator( const Reference&amp;lt; XLocator &amp;gt;&amp;amp; xLocator ) {}&lt;br /&gt;
&lt;br /&gt;
	// XFastContextHandler&lt;br /&gt;
    void startFastElement( sal_Int32 Element, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void startUnknownElement( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void endFastElement( sal_Int32 Element )&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    void endUnknownElement( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name )&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    Reference&amp;lt; XFastContextHandler &amp;gt; createFastChildContext( sal_Int32 Element, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
		if( Element == NMSP_SAMPLE_1|XML_sampleelement )&lt;br /&gt;
		{&lt;br /&gt;
			return new MyContext; // pipe sax events for this element to my context&lt;br /&gt;
		}&lt;br /&gt;
		return 0; // ignore sax events for this element and all child elements&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
    Reference&amp;lt; XFastContextHandler &amp;gt; createUnknownChildContext( const OUString&amp;amp; Namespace, const OUString&amp;amp; Name, const Reference&amp;lt; XFastAttributeList &amp;gt;&amp;amp; Attribs )&lt;br /&gt;
	{&lt;br /&gt;
		// this is called for elements with an unknown namespace or elements which are unknown to the token handler&lt;br /&gt;
		// so in general they can be ignored as we don&amp;#039;t know anything about them&lt;br /&gt;
		return 0;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	void characters( const OUString&amp;amp; aChars ) {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void parse( const Reference&amp;lt; XInputStream &amp;gt;&amp;amp; xInputStream, OUString&amp;amp; sSystemId )&lt;br /&gt;
{&lt;br /&gt;
	xml::sax::InputSource aParserInput;&lt;br /&gt;
	aParserInput.sSystemId = rFragmentPath;&lt;br /&gt;
	aParserInput.aInputStream = sSystemId&lt;br /&gt;
&lt;br /&gt;
	Reference&amp;lt; XFastDocumentHandler &amp;gt; xHandler( new MyHandler );&lt;br /&gt;
&lt;br /&gt;
	// can be reused for multiple xml file parsings&lt;br /&gt;
	// see xmlfilter02/oox/source/token for possible implementation&lt;br /&gt;
	Reference&amp;lt; XFastTokenHandler &amp;gt; xTokenHandler( new MyTokenHandler );&lt;br /&gt;
&lt;br /&gt;
	Reference&amp;lt; XFastParser &amp;gt; xParser( mxServiceFactory-&amp;gt;createInstance( &amp;quot;com.sun.star.xml.sax.FastParser&amp;quot;, UNO_QUERY_THROW ) );&lt;br /&gt;
	xParser-&amp;gt;setFastDocumentHandler( xHandler );&lt;br /&gt;
	xParser-&amp;gt;setTokenHandler( xTokenHandler );&lt;br /&gt;
	xParser-&amp;gt;registerNamespace( &amp;quot;http://sample_namespace_1&amp;quot;, NMSP_SAMPLE_1 );&lt;br /&gt;
	xParser-&amp;gt;registerNamespace( &amp;quot;http://sample_namespace_2&amp;quot;, NMSP_SAMPLE_2 );&lt;br /&gt;
	xParser-&amp;gt;parseStream( aParserInput );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Migration for [[XMLOFF]] project =&lt;br /&gt;
&lt;br /&gt;
Since the current major performance bottleneck of the filters inside the [[XMLOFF]] project is the string handling,&lt;br /&gt;
a migration of the filters to the fast sax api should be considered. As this project is already a huge one, a migration&lt;br /&gt;
where the code is adapted in small pieces may be advisable.&lt;br /&gt;
&lt;br /&gt;
In the first step the class &amp;#039;&amp;#039;SvXMLImport&amp;#039;&amp;#039; must be rewritten to use the new sax parser api.&lt;br /&gt;
The SvXMLImportContext would be derived from the [[XFastContextHandler]] interface. The base implementation of its&lt;br /&gt;
method could call the old sax methods. Therefore all derivations from SvXMLImportContext that do not excplicitly&lt;br /&gt;
override the methods from [[XFastContextHandler]] will still work as before until someone migrate them to the new&lt;br /&gt;
api.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;todo, write more details&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
= Todo List =&lt;br /&gt;
&lt;br /&gt;
== Design an interface for an xml writer using tokens ==&lt;br /&gt;
&lt;br /&gt;
The current solution only allows implementing an xml import filter. A writer component and interfaces would be needed to also support export filters.&lt;br /&gt;
&lt;br /&gt;
== Implement a connecter that feeds a [[XFastDocumentContext]] ==&lt;br /&gt;
&lt;br /&gt;
There are already some implementations that do not use xml streams but feed the old sax api directly.&lt;br /&gt;
It is very easy to add the old &amp;#039;&amp;#039;com.sun.star.xml.sax.XDocumentHandler&amp;#039;&amp;#039; interface to the FastParser&lt;br /&gt;
service. This would allow that a filter implemented with the new fast sax api can be feed with events&lt;br /&gt;
by a component using the old sax api.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Building_with_ooobuild&amp;diff=51779</id>
		<title>Building with ooobuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Building_with_ooobuild&amp;diff=51779"/>
		<updated>2007-11-01T04:13:24Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* get the source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Vanilla Up-stream builds ==&lt;br /&gt;
&lt;br /&gt;
See the [http://tools.openoffice.org#Build tools] project for build guides for various platforms.&lt;br /&gt;
&lt;br /&gt;
Also for OS/X see [[MacOSXBuildInstructions]]&lt;br /&gt;
&lt;br /&gt;
For GNU/Linux Sparc, with gcc4.1 &amp;amp; gcj, see [[GNULinuxSparcPorting]]&lt;br /&gt;
&lt;br /&gt;
== ooo-build builds ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If you are looking for additional building tips for Windows check [[Windows |this]] page first.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== get the source ===&lt;br /&gt;
&lt;br /&gt;
You need to checkout the source code using SVN:&lt;br /&gt;
&lt;br /&gt;
 svn checkout http://svn.gnome.org/svn/ooo-build/trunk ooo-build&lt;br /&gt;
&lt;br /&gt;
=== configure ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      The build process is pretty complicated; you have a choice&lt;br /&gt;
      of commands now; although running both won&amp;#039;t actually hurt:&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
      ./autogen.sh --with-distro=&amp;lt;b&amp;gt;HelloMum&amp;lt;/b&amp;gt;  # only for the CVS version&lt;br /&gt;
      ./configure  --with-distro=&amp;lt;b&amp;gt;HelloMum&amp;lt;/b&amp;gt; # the packaged version&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      This will guess which branch snapshot you want to build; if&lt;br /&gt;
      you have other ideas use the --with-tag option; eg.&lt;br /&gt;
      &amp;lt;code&amp;gt;--with-tag=src680-m65&amp;lt;/code&amp;gt; for a legacy branch.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      NB. getting your distro right is quite important; values like&lt;br /&gt;
      SUSE-10.1 (also SLED10), UbuntuDapper, DebianEtch64 may float&lt;br /&gt;
      your boat. Checkout &amp;lt;code&amp;gt;ls distro-configs&amp;lt;/code&amp;gt; to see more.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      If for some reason you have a 31337 multi-threaded computer,&lt;br /&gt;
      with great slabs of RAM; you&amp;#039;ll want to use --with-num-cpus=8&lt;br /&gt;
      etc. NB. it&amp;#039;s not clever to force the build to swap like a&lt;br /&gt;
      demented pawnbroker by using an artificially high number; C++&lt;br /&gt;
      compilation is seriously memory hungry.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      In particular, building SRC680 requires a recent jdk &amp;amp;amp; a&lt;br /&gt;
      version of apache-ant. If you use a Novell system, just do:&lt;br /&gt;
      &amp;lt;code&amp;gt;sudo rug in apache-ant&amp;lt;/code&amp;gt;, alternatively download&lt;br /&gt;
      a package from [http://www.rpmfind.net/linux/rpm2html/search.php?query=apache-ant&amp;amp;submit=Search+...&amp;quot; rpmfind.net] or failing that see [http://ant.apache.org/bindownload.cgi Ant download]&lt;br /&gt;
&amp;amp;amp; set the ANT environment variable&lt;br /&gt;
      appropriately before configuring.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;h4&amp;gt;Known ./configure parameters&amp;lt;/h4&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;up-stream options&amp;lt;/h5&amp;gt;&amp;lt;p&amp;gt; - all options are passed through directly&lt;br /&gt;
    to the internal configure, so they should work nicely here too.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--with-system-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;where &amp;amp;lt;package name&amp;gt; is replaced by the package to use. I don&amp;#039;t&lt;br /&gt;
        have a particularly good understanding of its full effects beyond&lt;br /&gt;
        the fact that it (probably) doesn&amp;#039;t then build its own copy of the&lt;br /&gt;
        package.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-python&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-mozilla&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-gcc&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-neon&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-curl&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--without-system-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-system-mozilla&amp;lt;/code&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--with-&amp;lt;package or tag&amp;gt;[=value]&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-lang=en-US&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-build-version=&amp;quot;Build 2.0.1.3&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-distro=Gentoo&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--without-&amp;lt;package or tag&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-myspell-dicts&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-java&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-nas&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--enable-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--enable-openldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--disable-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-openldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-qadevoo&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-mozilla&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-access&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-evolution2&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--mandir=&amp;lt;dir&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
*A recent version of automake, such as the 1.9 series.&lt;br /&gt;
*If you don&amp;#039;t have a working Java VM (i.e. any runtime), you should pass &amp;lt;code&amp;gt;--with-java=no&amp;lt;/code&amp;gt; to either &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need the Archive/Zip module for Perl (perl-Archive-Zip on RPM-based distributions, libarchive-zip-perl on dpkg-based distributions). Alternatively, see instructions[http://ooo.ximian.com/cpan.html] for obtaining Perl modules through CPAN.&lt;br /&gt;
*You need the development package for Python (this would be python-devel on RPM-based distributions).&lt;br /&gt;
*You need curl and curl-devel.&lt;br /&gt;
*You need odbc_config to be present.  On SUSE systems, this is in the unixODBC-devel package.&lt;br /&gt;
*You need libsndfile and libsndfile-devel.&lt;br /&gt;
*If you don&amp;#039;t have a recent enough openldap, pass &amp;lt;code&amp;gt;--disable-openldap&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need neon and neon-devel.&lt;br /&gt;
*You need qt3 and qt3-devel, or if you don&amp;#039;t have the KDE development packages, pass &amp;lt;code&amp;gt;--disable-kde&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need mozilla-nss-devel.&lt;br /&gt;
*In SuSE, you need gecko-sdk, mono-devel and cups-devel&lt;br /&gt;
&lt;br /&gt;
=== download ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      By the time you&amp;#039;ve upgraded your system to the point that it&lt;br /&gt;
      has all the packages you need to start building OO.o (mozilla etc. etc.) you&amp;#039;re almost at the point that you&lt;br /&gt;
      can download the bulk of the source. To do this, after a&lt;br /&gt;
      successful configure simply type: &amp;lt;code&amp;gt;./download&amp;lt;/code&amp;gt; and wait.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      If for whatever reason this fails, you can verify your download&lt;br /&gt;
      by fetching the equivalent .md5 file &amp;amp;amp; comparing it to&lt;br /&gt;
      the result of &amp;lt;code&amp;gt;md5sum &amp;lt;archive&amp;gt;&amp;lt;/code&amp;gt;. The source&lt;br /&gt;
      archives are http://download.go-oo.org/SRC680&lt;br /&gt;
       - put the source in ooo-build/src.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== make ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      This is the taxing bit - type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; and don&amp;#039;t forget&lt;br /&gt;
      to press enter. Quite possibly you want to log the output, so&lt;br /&gt;
      why not &amp;lt;code&amp;gt;make 2&amp;gt;&amp;amp;1 | tee /tmp/log&amp;lt;/code&amp;gt;.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      Since ooo-build wraps the actual OO.o configuration &amp;amp;amp;&lt;br /&gt;
      build process, there are a number of internal config checks that&lt;br /&gt;
      also need to pass. For a first time build it&amp;#039;s well worth staying&lt;br /&gt;
      near the console while everything unpacks, and the internal&lt;br /&gt;
      configure runs; if that completes without incident - you&amp;#039;re&lt;br /&gt;
      usually into the heavy-duty thumb twiddling.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Installing]]&lt;br /&gt;
*[[Tinderbox Setup]]&lt;br /&gt;
*[[BuildSpeedup]]&lt;br /&gt;
*[[OpenSUSE Build Instructions]]&lt;br /&gt;
*[[SUSE9.3 Build Instructions]]&lt;br /&gt;
*[[Ubuntu Build Instructions]]&lt;br /&gt;
*OpenOffice.org &amp;quot;Tools&amp;quot; page [http://tools.openoffice.org/dev_docs/build_linux.html]&lt;br /&gt;
*[[Build Tool Requirements]]&lt;br /&gt;
*[[O3-build|O3 Build]], an ISO image containing all the required software to build OOo on Linux.&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Building_with_ooobuild&amp;diff=51778</id>
		<title>Building with ooobuild</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Building_with_ooobuild&amp;diff=51778"/>
		<updated>2007-11-01T04:12:55Z</updated>

		<summary type="html">&lt;p&gt;Hub: update instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Vanilla Up-stream builds ==&lt;br /&gt;
&lt;br /&gt;
See the [http://tools.openoffice.org#Build tools] project for build guides for various platforms.&lt;br /&gt;
&lt;br /&gt;
Also for OS/X see [[MacOSXBuildInstructions]]&lt;br /&gt;
&lt;br /&gt;
For GNU/Linux Sparc, with gcc4.1 &amp;amp; gcj, see [[GNULinuxSparcPorting]]&lt;br /&gt;
&lt;br /&gt;
== ooo-build builds ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If you are looking for additional building tips for Windows check [[Windows |this]] page first.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== get the source ===&lt;br /&gt;
&lt;br /&gt;
You need to checkout the source code using SVN:&lt;br /&gt;
&lt;br /&gt;
 $ svn checkout http://svn.gnome.org/svn/ooo-build/trunk ooo-build&lt;br /&gt;
&lt;br /&gt;
=== configure ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      The build process is pretty complicated; you have a choice&lt;br /&gt;
      of commands now; although running both won&amp;#039;t actually hurt:&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
      ./autogen.sh --with-distro=&amp;lt;b&amp;gt;HelloMum&amp;lt;/b&amp;gt;  # only for the CVS version&lt;br /&gt;
      ./configure  --with-distro=&amp;lt;b&amp;gt;HelloMum&amp;lt;/b&amp;gt; # the packaged version&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      This will guess which branch snapshot you want to build; if&lt;br /&gt;
      you have other ideas use the --with-tag option; eg.&lt;br /&gt;
      &amp;lt;code&amp;gt;--with-tag=src680-m65&amp;lt;/code&amp;gt; for a legacy branch.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      NB. getting your distro right is quite important; values like&lt;br /&gt;
      SUSE-10.1 (also SLED10), UbuntuDapper, DebianEtch64 may float&lt;br /&gt;
      your boat. Checkout &amp;lt;code&amp;gt;ls distro-configs&amp;lt;/code&amp;gt; to see more.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      If for some reason you have a 31337 multi-threaded computer,&lt;br /&gt;
      with great slabs of RAM; you&amp;#039;ll want to use --with-num-cpus=8&lt;br /&gt;
      etc. NB. it&amp;#039;s not clever to force the build to swap like a&lt;br /&gt;
      demented pawnbroker by using an artificially high number; C++&lt;br /&gt;
      compilation is seriously memory hungry.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      In particular, building SRC680 requires a recent jdk &amp;amp;amp; a&lt;br /&gt;
      version of apache-ant. If you use a Novell system, just do:&lt;br /&gt;
      &amp;lt;code&amp;gt;sudo rug in apache-ant&amp;lt;/code&amp;gt;, alternatively download&lt;br /&gt;
      a package from [http://www.rpmfind.net/linux/rpm2html/search.php?query=apache-ant&amp;amp;submit=Search+...&amp;quot; rpmfind.net] or failing that see [http://ant.apache.org/bindownload.cgi Ant download]&lt;br /&gt;
&amp;amp;amp; set the ANT environment variable&lt;br /&gt;
      appropriately before configuring.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;h4&amp;gt;Known ./configure parameters&amp;lt;/h4&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;up-stream options&amp;lt;/h5&amp;gt;&amp;lt;p&amp;gt; - all options are passed through directly&lt;br /&gt;
    to the internal configure, so they should work nicely here too.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--with-system-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;where &amp;amp;lt;package name&amp;gt; is replaced by the package to use. I don&amp;#039;t&lt;br /&gt;
        have a particularly good understanding of its full effects beyond&lt;br /&gt;
        the fact that it (probably) doesn&amp;#039;t then build its own copy of the&lt;br /&gt;
        package.&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-python&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-mozilla&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-gcc&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-neon&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
           &amp;lt;code&amp;gt;--with-system-curl&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--without-system-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-system-mozilla&amp;lt;/code&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--with-&amp;lt;package or tag&amp;gt;[=value]&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-lang=en-US&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-build-version=&amp;quot;Build 2.0.1.3&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--with-distro=Gentoo&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--without-&amp;lt;package or tag&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-myspell-dicts&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-java&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--without-nas&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--enable-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--enable-openldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--disable-&amp;lt;package name&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Examples:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-openldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-qadevoo&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-mozilla&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-access&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;--disable-evolution2&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
         &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;h5&amp;gt;&amp;lt;code&amp;gt;--mandir=&amp;lt;dir&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/h5&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
*A recent version of automake, such as the 1.9 series.&lt;br /&gt;
*If you don&amp;#039;t have a working Java VM (i.e. any runtime), you should pass &amp;lt;code&amp;gt;--with-java=no&amp;lt;/code&amp;gt; to either &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need the Archive/Zip module for Perl (perl-Archive-Zip on RPM-based distributions, libarchive-zip-perl on dpkg-based distributions). Alternatively, see instructions[http://ooo.ximian.com/cpan.html] for obtaining Perl modules through CPAN.&lt;br /&gt;
*You need the development package for Python (this would be python-devel on RPM-based distributions).&lt;br /&gt;
*You need curl and curl-devel.&lt;br /&gt;
*You need odbc_config to be present.  On SUSE systems, this is in the unixODBC-devel package.&lt;br /&gt;
*You need libsndfile and libsndfile-devel.&lt;br /&gt;
*If you don&amp;#039;t have a recent enough openldap, pass &amp;lt;code&amp;gt;--disable-openldap&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need neon and neon-devel.&lt;br /&gt;
*You need qt3 and qt3-devel, or if you don&amp;#039;t have the KDE development packages, pass &amp;lt;code&amp;gt;--disable-kde&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;autogen.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;.&lt;br /&gt;
*You need mozilla-nss-devel.&lt;br /&gt;
*In SuSE, you need gecko-sdk, mono-devel and cups-devel&lt;br /&gt;
&lt;br /&gt;
=== download ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      By the time you&amp;#039;ve upgraded your system to the point that it&lt;br /&gt;
      has all the packages you need to start building OO.o (mozilla etc. etc.) you&amp;#039;re almost at the point that you&lt;br /&gt;
      can download the bulk of the source. To do this, after a&lt;br /&gt;
      successful configure simply type: &amp;lt;code&amp;gt;./download&amp;lt;/code&amp;gt; and wait.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      If for whatever reason this fails, you can verify your download&lt;br /&gt;
      by fetching the equivalent .md5 file &amp;amp;amp; comparing it to&lt;br /&gt;
      the result of &amp;lt;code&amp;gt;md5sum &amp;lt;archive&amp;gt;&amp;lt;/code&amp;gt;. The source&lt;br /&gt;
      archives are http://download.go-oo.org/SRC680&lt;br /&gt;
       - put the source in ooo-build/src.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== make ===&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      This is the taxing bit - type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; and don&amp;#039;t forget&lt;br /&gt;
      to press enter. Quite possibly you want to log the output, so&lt;br /&gt;
      why not &amp;lt;code&amp;gt;make 2&amp;gt;&amp;amp;1 | tee /tmp/log&amp;lt;/code&amp;gt;.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
      Since ooo-build wraps the actual OO.o configuration &amp;amp;amp;&lt;br /&gt;
      build process, there are a number of internal config checks that&lt;br /&gt;
      also need to pass. For a first time build it&amp;#039;s well worth staying&lt;br /&gt;
      near the console while everything unpacks, and the internal&lt;br /&gt;
      configure runs; if that completes without incident - you&amp;#039;re&lt;br /&gt;
      usually into the heavy-duty thumb twiddling.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
*[[Installing]]&lt;br /&gt;
*[[Tinderbox Setup]]&lt;br /&gt;
*[[BuildSpeedup]]&lt;br /&gt;
*[[OpenSUSE Build Instructions]]&lt;br /&gt;
*[[SUSE9.3 Build Instructions]]&lt;br /&gt;
*[[Ubuntu Build Instructions]]&lt;br /&gt;
*OpenOffice.org &amp;quot;Tools&amp;quot; page [http://tools.openoffice.org/dev_docs/build_linux.html]&lt;br /&gt;
*[[Build Tool Requirements]]&lt;br /&gt;
*[[O3-build|O3 Build]], an ISO image containing all the required software to build OOo on Linux.&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51396</id>
		<title>WriterFilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51396"/>
		<updated>2007-10-26T20:06:27Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Dump OOXML tokens */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download Install Sets for Current Milestone ==&lt;br /&gt;
&lt;br /&gt;
We provide downloads for the current milestone (Solaris SPARC, Linux and Windows) here:&lt;br /&gt;
&lt;br /&gt;
http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/writerfilter2/&lt;br /&gt;
&lt;br /&gt;
== Getting Current Source Code for WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
WriterFilter is currently not included in the build system. You have to check it out manually:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co sw/writerfilter &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The current [[CWS]] for WriterFilter is &amp;lt;code&amp;gt;xmlfilter02&amp;lt;/code&amp;gt;. It previously was in &amp;lt;code&amp;gt;writerfilter2&amp;lt;/code&amp;gt;. Have a look in [[EIS]] for details on the CWS.&lt;br /&gt;
&lt;br /&gt;
You will need an installed StarOffice/OOo and the following projects:&lt;br /&gt;
* comphelper 	 			&lt;br /&gt;
* filter 				&lt;br /&gt;
* jurt 				&lt;br /&gt;
* offapi 				&lt;br /&gt;
* offuh 				&lt;br /&gt;
* scp2 				&lt;br /&gt;
* svtools 				&lt;br /&gt;
* svx 				&lt;br /&gt;
* sw&lt;br /&gt;
&lt;br /&gt;
Compile these projects and deliver the libraries to your installation in &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Changing Filter Detection ===&lt;br /&gt;
&lt;br /&gt;
In &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_writer_filters.xcu&amp;lt;/code&amp;gt;&lt;br /&gt;
add node with attribute &amp;lt;code&amp;gt;oor:name=&amp;quot;MS Word 97&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;node oor:name=&amp;quot;MS Word 97&amp;quot; oor:op=&amp;quot;replace&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Flags&amp;quot;&amp;gt;&amp;lt;value&amp;gt;IMPORT EXPORT ALIEN 3RDPARTYFILTER&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIComponent&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FilterService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.comp.Writer.WriterFilter&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UserData&amp;quot;&amp;gt;&amp;lt;value&amp;gt;CWW8&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value xml:lang=&amp;quot;x-default&amp;quot;&amp;gt;Microsoft Word 97/2000/XP (new)&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FileFormatVersion&amp;quot;&amp;gt;&amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Type&amp;quot;&amp;gt;&amp;lt;value&amp;gt;writer_MS_Word_97&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;TemplateName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;DocumentService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.text.TextDocument&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember to grant yourself write access to the xcu.&lt;br /&gt;
&lt;br /&gt;
=== Create Resource Database for New Intefaces ===&lt;br /&gt;
&lt;br /&gt;
Note: This is only necessary if you do not use CWS xmlfilter02.&lt;br /&gt;
&lt;br /&gt;
Generate resource database for new interfaces: In &amp;lt;code&amp;gt;offapi/&amp;lt;platform&amp;gt;/ucr/com/sun/star/text&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;regmerge /tmp/merge.rdb -UCR XTextAppend.urd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register New Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Note: Again, only necessary if not using the CWS xmlfilter02&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./unopkg add /tmp/merge.rdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register filter component ===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod u+w services.rdb&lt;br /&gt;
regcomp -register -r services.rdb -c &amp;lt;writerfilter lib&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, if you load a file recognized as &amp;quot;Word 97&amp;quot;, WriterFilter will be used.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Documentation generated by Doxygen (will be available soon)&lt;br /&gt;
&lt;br /&gt;
== Debug tokenizers ==&lt;br /&gt;
&lt;br /&gt;
You will need an installation of OpenOffice.org with the libraries from writerfilter delivered into the $SOINST/program directory.&lt;br /&gt;
&lt;br /&gt;
=== Dump WW8 tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.doctok.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dump WordprocessingML tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.ooxml.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The properties of sprm 0x6a03 (sprmCPicLocation) have to be resolved. Otherwise the FC of the picture to come is not stored.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51355</id>
		<title>WriterFilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51355"/>
		<updated>2007-10-26T16:43:59Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download Install Sets for Current Milestone ==&lt;br /&gt;
&lt;br /&gt;
We provide downloads for the current milestone (Solaris SPARC, Linux and Windows) here:&lt;br /&gt;
&lt;br /&gt;
http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/writerfilter2/&lt;br /&gt;
&lt;br /&gt;
== Getting Current Source Code for WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
WriterFilter is currently not included in the build system. You have to check it out manually:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co sw/writerfilter &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The current [[CWS]] for WriterFilter is &amp;lt;code&amp;gt;xmlfilter02&amp;lt;/code&amp;gt;. It previously was in &amp;lt;code&amp;gt;writerfilter2&amp;lt;/code&amp;gt;. Have a look in [[EIS]] for details on the CWS.&lt;br /&gt;
&lt;br /&gt;
You will need an installed StarOffice/OOo and the following projects:&lt;br /&gt;
* comphelper 	 			&lt;br /&gt;
* filter 				&lt;br /&gt;
* jurt 				&lt;br /&gt;
* offapi 				&lt;br /&gt;
* offuh 				&lt;br /&gt;
* scp2 				&lt;br /&gt;
* svtools 				&lt;br /&gt;
* svx 				&lt;br /&gt;
* sw&lt;br /&gt;
&lt;br /&gt;
Compile these projects and deliver the libraries to your installation in &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Changing Filter Detection ===&lt;br /&gt;
&lt;br /&gt;
In &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_writer_filters.xcu&amp;lt;/code&amp;gt;&lt;br /&gt;
add node with attribute &amp;lt;code&amp;gt;oor:name=&amp;quot;MS Word 97&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;node oor:name=&amp;quot;MS Word 97&amp;quot; oor:op=&amp;quot;replace&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Flags&amp;quot;&amp;gt;&amp;lt;value&amp;gt;IMPORT EXPORT ALIEN 3RDPARTYFILTER&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIComponent&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FilterService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.comp.Writer.WriterFilter&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UserData&amp;quot;&amp;gt;&amp;lt;value&amp;gt;CWW8&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value xml:lang=&amp;quot;x-default&amp;quot;&amp;gt;Microsoft Word 97/2000/XP (new)&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FileFormatVersion&amp;quot;&amp;gt;&amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Type&amp;quot;&amp;gt;&amp;lt;value&amp;gt;writer_MS_Word_97&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;TemplateName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;DocumentService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.text.TextDocument&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember to grant yourself write access to the xcu.&lt;br /&gt;
&lt;br /&gt;
=== Create Resource Database for New Intefaces ===&lt;br /&gt;
&lt;br /&gt;
Note: This is only necessary if you do not use CWS xmlfilter02.&lt;br /&gt;
&lt;br /&gt;
Generate resource database for new interfaces: In &amp;lt;code&amp;gt;offapi/&amp;lt;platform&amp;gt;/ucr/com/sun/star/text&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;regmerge /tmp/merge.rdb -UCR XTextAppend.urd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register New Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Note: Again, only necessary if not using the CWS xmlfilter02&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./unopkg add /tmp/merge.rdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register filter component ===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod u+w services.rdb&lt;br /&gt;
regcomp -register -r services.rdb -c &amp;lt;writerfilter lib&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, if you load a file recognized as &amp;quot;Word 97&amp;quot;, WriterFilter will be used.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Documentation generated by Doxygen (will be available soon)&lt;br /&gt;
&lt;br /&gt;
== Debug tokenizers ==&lt;br /&gt;
&lt;br /&gt;
You will need an installation of OpenOffice.org with the libraries from writerfilter delivered into the $SOINST/program directory.&lt;br /&gt;
&lt;br /&gt;
=== Dump WW8 tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.doctok.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dump OOXML tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.ooxml.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The properties of sprm 0x6a03 (sprmCPicLocation) have to be resolved. Otherwise the FC of the picture to come is not stored.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=51354</id>
		<title>Oox</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=51354"/>
		<updated>2007-10-26T16:43:15Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stands for [[Office Open XML]]. The name of the module that handle [[Office Open XML]] import. Part of the [[Xml]] project.&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
&lt;br /&gt;
The [[WordprocessingML]] importer is part of a different effort in writerfilter2 where the refactoring of the binary and RTF filter also takes place.&lt;br /&gt;
&lt;br /&gt;
= Directory Structure =&lt;br /&gt;
== core ==&lt;br /&gt;
This directory includes common code for all filters.&lt;br /&gt;
&lt;br /&gt;
=== AttributeList (class) ===&lt;br /&gt;
Provides access to attribute values of an element.  &amp;#039;&amp;#039;&amp;#039;AttributeList&amp;#039;&amp;#039;&amp;#039; wraps a &amp;#039;&amp;#039;com.sun.star.xml.sax.XFastAttributeList&amp;#039;&amp;#039; object, and provides convenience functions that convert the string value of an attribute to various other data types.  This class is usually used as a local variable declared with an instance of [[XFastAttributeList]] passed from the [[FastParser]] instance.&lt;br /&gt;
&lt;br /&gt;
=== FragmentHandler (class) ===&lt;br /&gt;
Top-most parent class that handles fragments.  In most cases this class handles all nested contexts for increased performance.  This class implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== RelationsFragmentHandler (class) ===&lt;br /&gt;
Handles loading of relationships fragments ( &amp;#039;&amp;#039;&amp;#039;/*/_rels/*.rels&amp;#039;&amp;#039;&amp;#039; ).  Like the FragmentHandler class, this class also implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== ImportBase (class) ===&lt;br /&gt;
The base class for application specific import filters, currently sub-classed by &amp;#039;&amp;#039;&amp;#039;oox::ppt::PowerPointImport&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;oox::xls::ExcelFilter&amp;#039;&amp;#039;&amp;#039;.  It implements [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XImporter.html XImporter] and [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XFilter.html XFilter] interfaces.&lt;br /&gt;
&lt;br /&gt;
== drawingml ==&lt;br /&gt;
&lt;br /&gt;
drawingml containg the [[DrawingML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== ppt ==&lt;br /&gt;
&lt;br /&gt;
ppt contain the [[PresentationML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== token ==&lt;br /&gt;
&lt;br /&gt;
The token list is generated by parsing the XML Schemas. Then gentoken.pl will use gperf to generate a perfect hash for fast parsing of known tokens. All the token are dispatched through integer numbers.&lt;br /&gt;
&lt;br /&gt;
== xls ==&lt;br /&gt;
This directory includes code specific to parse [[SpreadsheetML]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source_directories]]&lt;br /&gt;
[[Category:Filter]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=51353</id>
		<title>Office Open XML/Legacy Implementation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=51353"/>
		<updated>2007-10-26T16:42:42Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* OO.o Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOXML Basics =&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Office Open XML&amp;quot; is an XML based file format that has been published as [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]. It is used as default file format by Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are plans to support this file format in OpenOffice.org for interoperation with Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are 3 major types of formats&lt;br /&gt;
&lt;br /&gt;
* [[WordprocessingML]] - For word processor documents (file extensions may be docx, docm)&lt;br /&gt;
* [[SpreadsheetML]] - For spreadsheet documents (file extensions may be xlsx, xlsm)&lt;br /&gt;
* [[PresentationML]] - For presentation documents (file extensions may be pptx, pptm)&lt;br /&gt;
* [[DrawingML]] - Used by other markup language to represent graphics data.&lt;br /&gt;
* [[VML]] - A legacy vector markup.&lt;br /&gt;
&lt;br /&gt;
== Packaging Conventions ==&lt;br /&gt;
OpenXML document is a package that consists of a flat collection of &amp;#039;&amp;#039;&amp;#039;&amp;quot;parts&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  Each &amp;quot;part&amp;quot; has a case-&amp;#039;&amp;#039;insensitive&amp;#039;&amp;#039; part name that consists of a slash (/) delimited sequence of segment names such as &amp;quot;/pres/slides/slide1.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For the most part, the ZIP compression is used to package the parts, in which case the term &amp;#039;&amp;#039;&amp;#039;&amp;quot;package&amp;quot;&amp;#039;&amp;#039;&amp;#039; refers to the ZIP archive, and the parts refer to the individual files archived within.  The part name in this case is the file path within the archive.&lt;br /&gt;
&lt;br /&gt;
Each part also has a &amp;#039;&amp;#039;&amp;#039;content type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;/[Content_Types].xml&amp;#039;&amp;#039;&amp;#039; provides the content type of each part within the archive.&lt;br /&gt;
&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Packages and parts can contains &amp;#039;&amp;#039;&amp;#039;explicit relationships&amp;#039;&amp;#039;&amp;#039; to other parts as well as to external resources.  Every explicit relationship has an ID and a type, and relationship types are named using URIs.&lt;br /&gt;
&lt;br /&gt;
The set of explicit relationships for each package or part is stored in a relationship part whose name (or path) follows a specific convention e.g. the relationship part for a part called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/c.xml&amp;quot;&amp;#039;&amp;#039;&amp;#039; is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/_rels/c.xml.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  As a special case, the relationship part for the package as a whole is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/_rels/.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= OO.o Implementation =&lt;br /&gt;
There is some code in the oox module ([[OOX]]) from the [[Xml]] project. The [[CWS]] is xmlfilter02 in SRC680. ([http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 view the workspace on EIS])&lt;br /&gt;
&lt;br /&gt;
To fetch the oox code from CVS (using CVS_ROOT is set properly):&lt;br /&gt;
&lt;br /&gt;
 cvs co -r cws_src680_xmlfilter02 -d oox xml/oox&lt;br /&gt;
&lt;br /&gt;
One important note: we use the term &amp;#039;&amp;#039;&amp;#039;fragment&amp;#039;&amp;#039;&amp;#039; in the name of our source files to correspond with what the standard calls &amp;#039;&amp;#039;&amp;#039;part&amp;#039;&amp;#039;&amp;#039;.  For instance, the source file that contains class definition that handles the workbook part in [[SpreadsheetML]] is called workbookfragment.cxx.  This convention is prevalent across all application types within [[oox]] module.&lt;br /&gt;
&lt;br /&gt;
Bonsai is also convenient to follow the changes:&lt;br /&gt;
&lt;br /&gt;
[http://www.go-oo.org/bonsai/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_xmlfilter02&amp;amp;branchtype=match&amp;amp;dir=xml%2Foox&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=week&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fvar%2Fcvsup  the changes done in the last 2 weeks]&lt;br /&gt;
&lt;br /&gt;
Word document import is in the [[WriterFilter|writerfilter]] module.&lt;br /&gt;
&lt;br /&gt;
== Implementation Generalities == &lt;br /&gt;
&lt;br /&gt;
The whole [[OOX]] filter makes use of the new [[FastParser]] service to implement an event driven [[SAX]] parser.&lt;br /&gt;
&lt;br /&gt;
== Various Resources ==&lt;br /&gt;
&lt;br /&gt;
* http://blogs.sun.com/GullFOSS/entry/office_open_xml_import_filter&lt;br /&gt;
* [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 CWS on EIS]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA published standard]&lt;br /&gt;
* [http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm Ecma Office Open XML File Formats Standard]&lt;br /&gt;
* [http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx Brian Jones introduction to the Office 12 File Format]&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51352</id>
		<title>WriterFilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51352"/>
		<updated>2007-10-26T16:42:12Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Prerequisites */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download Install Sets for Current Milestone ==&lt;br /&gt;
&lt;br /&gt;
We provide downloads for the current milestone (Solaris SPARC, Linux and Windows) here:&lt;br /&gt;
&lt;br /&gt;
http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/writerfilter2/&lt;br /&gt;
&lt;br /&gt;
== Getting Current Source Code for WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
WriterFilter is currently not included in the build system. You have to check it out manually:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co sw/writerfilter &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The current [[CWS]] for WriterFilter is &amp;lt;code&amp;gt;xmlfilter02&amp;lt;/code&amp;gt;. It previously was in &amp;lt;code&amp;gt;writerfilter2&amp;lt;/code&amp;gt;. Have a look in [[EIS]] for details on the CWS.&lt;br /&gt;
&lt;br /&gt;
You will need an installed StarOffice/OOo and the following projects:&lt;br /&gt;
* comphelper 	 			&lt;br /&gt;
* filter 				&lt;br /&gt;
* jurt 				&lt;br /&gt;
* offapi 				&lt;br /&gt;
* offuh 				&lt;br /&gt;
* scp2 				&lt;br /&gt;
* svtools 				&lt;br /&gt;
* svx 				&lt;br /&gt;
* sw&lt;br /&gt;
&lt;br /&gt;
Compile these projects and deliver the libraries to your installation in &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Changing Filter Detection ===&lt;br /&gt;
&lt;br /&gt;
In &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_writer_filters.xcu&amp;lt;/code&amp;gt;&lt;br /&gt;
add node with attribute &amp;lt;code&amp;gt;oor:name=&amp;quot;MS Word 97&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;node oor:name=&amp;quot;MS Word 97&amp;quot; oor:op=&amp;quot;replace&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Flags&amp;quot;&amp;gt;&amp;lt;value&amp;gt;IMPORT EXPORT ALIEN 3RDPARTYFILTER&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIComponent&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FilterService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.comp.Writer.WriterFilter&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UserData&amp;quot;&amp;gt;&amp;lt;value&amp;gt;CWW8&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value xml:lang=&amp;quot;x-default&amp;quot;&amp;gt;Microsoft Word 97/2000/XP (new)&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FileFormatVersion&amp;quot;&amp;gt;&amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Type&amp;quot;&amp;gt;&amp;lt;value&amp;gt;writer_MS_Word_97&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;TemplateName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;DocumentService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.text.TextDocument&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember to grant yourself write access to the xcu.&lt;br /&gt;
&lt;br /&gt;
=== Create Resource Database for New Intefaces ===&lt;br /&gt;
&lt;br /&gt;
Note: This is only necessary if you do not use CWS xmlfilter02.&lt;br /&gt;
&lt;br /&gt;
Generate resource database for new interfaces: In &amp;lt;code&amp;gt;offapi/&amp;lt;platform&amp;gt;/ucr/com/sun/star/text&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;regmerge /tmp/merge.rdb -UCR XTextAppend.urd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register New Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Note: Again, only necessary if not using the CWS xmlfilter02&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./unopkg add /tmp/merge.rdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register filter component ===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod u+w services.rdb&lt;br /&gt;
regcomp -register -r services.rdb -c &amp;lt;writerfilter lib&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, if you load a file recognized as &amp;quot;Word 97&amp;quot;, WriterFilter will be used.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Documentation generated by Doxygen (will be available soon)&lt;br /&gt;
&lt;br /&gt;
== Debug tokenizers ==&lt;br /&gt;
&lt;br /&gt;
You will need an installation of OpenOffice.org with the libraries from writerfilter delivered into the $SOINST/program directory.&lt;br /&gt;
&lt;br /&gt;
=== Dump WW8 tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.doctok.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dump OOXML tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.ooxml.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The properties of sprm 0x6a03 (sprmCPicLocation) have to be resolved. Otherwise the FC of the picture to come is not stored.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51351</id>
		<title>WriterFilter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=WriterFilter&amp;diff=51351"/>
		<updated>2007-10-26T16:41:26Z</updated>

		<summary type="html">&lt;p&gt;Hub: xmlfilter02 move + category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download Install Sets for Current Milestone ==&lt;br /&gt;
&lt;br /&gt;
We provide downloads for the current milestone (Solaris SPARC, Linux and Windows) here:&lt;br /&gt;
&lt;br /&gt;
http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/writerfilter2/&lt;br /&gt;
&lt;br /&gt;
== Getting Current Source Code for WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
WriterFilter is currently not included in the build system. You have to check it out manually:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs co sw/writerfilter &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing WriterFilter ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The current [[CWS]] for WriterFilter is &amp;lt;code&amp;gt;xmlfilter02&amp;lt;/code&amp;gt;. It previously was in &amp;lt;code&amp;gt;wrinterfilter2&amp;lt;/code&amp;gt;. Have a look in [[EIS]] for details on the CWS.&lt;br /&gt;
&lt;br /&gt;
You will need an installed StarOffice/OOo and the following projects:&lt;br /&gt;
* comphelper 	 			&lt;br /&gt;
* filter 				&lt;br /&gt;
* jurt 				&lt;br /&gt;
* offapi 				&lt;br /&gt;
* offuh 				&lt;br /&gt;
* scp2 				&lt;br /&gt;
* svtools 				&lt;br /&gt;
* svx 				&lt;br /&gt;
* sw&lt;br /&gt;
&lt;br /&gt;
Compile these projects and deliver the libraries to your installation in &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Changing Filter Detection ===&lt;br /&gt;
&lt;br /&gt;
In &lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_writer_filters.xcu&amp;lt;/code&amp;gt;&lt;br /&gt;
add node with attribute &amp;lt;code&amp;gt;oor:name=&amp;quot;MS Word 97&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;node oor:name=&amp;quot;MS Word 97&amp;quot; oor:op=&amp;quot;replace&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Flags&amp;quot;&amp;gt;&amp;lt;value&amp;gt;IMPORT EXPORT ALIEN 3RDPARTYFILTER&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIComponent&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FilterService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.comp.Writer.WriterFilter&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UserData&amp;quot;&amp;gt;&amp;lt;value&amp;gt;CWW8&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;UIName&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;value xml:lang=&amp;quot;x-default&amp;quot;&amp;gt;Microsoft Word 97/2000/XP (new)&amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;FileFormatVersion&amp;quot;&amp;gt;&amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;Type&amp;quot;&amp;gt;&amp;lt;value&amp;gt;writer_MS_Word_97&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;TemplateName&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;prop oor:name=&amp;quot;DocumentService&amp;quot;&amp;gt;&amp;lt;value&amp;gt;com.sun.star.text.TextDocument&amp;lt;/value&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember to grant yourself write access to the xcu.&lt;br /&gt;
&lt;br /&gt;
=== Create Resource Database for New Intefaces ===&lt;br /&gt;
&lt;br /&gt;
Note: This is only necessary if you do not use CWS xmlfilter02.&lt;br /&gt;
&lt;br /&gt;
Generate resource database for new interfaces: In &amp;lt;code&amp;gt;offapi/&amp;lt;platform&amp;gt;/ucr/com/sun/star/text&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;regmerge /tmp/merge.rdb -UCR XTextAppend.urd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register New Interfaces ===&lt;br /&gt;
&lt;br /&gt;
Note: Again, only necessary if not using the CWS xmlfilter02&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./unopkg add /tmp/merge.rdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register filter component ===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;code&amp;gt;&amp;lt;SOINST&amp;gt;/program&amp;lt;/code&amp;gt; call&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod u+w services.rdb&lt;br /&gt;
regcomp -register -r services.rdb -c &amp;lt;writerfilter lib&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, if you load a file recognized as &amp;quot;Word 97&amp;quot;, WriterFilter will be used.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* Documentation generated by Doxygen (will be available soon)&lt;br /&gt;
&lt;br /&gt;
== Debug tokenizers ==&lt;br /&gt;
&lt;br /&gt;
You will need an installation of OpenOffice.org with the libraries from writerfilter delivered into the $SOINST/program directory.&lt;br /&gt;
&lt;br /&gt;
=== Dump WW8 tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.doctok.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dump OOXML tokens ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$SOINST/program/uno -l libwriterfilter.uno.so -c debugservices.ooxml.ScannerTestService -- file://...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The properties of sprm 0x6a03 (sprmCPicLocation) have to be resolved. Otherwise the FC of the picture to come is not stored.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filter]]&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51350</id>
		<title>PowerPoint filter</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PowerPoint_filter&amp;diff=51350"/>
		<updated>2007-10-26T16:32:23Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PowerPoint filter =&lt;br /&gt;
&lt;br /&gt;
The PowerPoint filter is in charge of import and export of PowerPoint binary document (.PPT) into [[Impress]]. If you are a looking for the PPTX files from PowerPoint 2007, please go to the [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
The [[PowerPoint filter]] is maintained by [[User:Sj|Sven Jacobi]].&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The import code is scattered between the svx and sd modules.&lt;br /&gt;
Relevant files are in:&lt;br /&gt;
* sd/source/filter/ppt&lt;br /&gt;
* svx/source/svdraw/svdfppt.cxx&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
&lt;br /&gt;
The export code is contained in sd/source/filter/eppt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Impress&amp;diff=51349</id>
		<title>Impress</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Impress&amp;diff=51349"/>
		<updated>2007-10-26T16:27:03Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;OpenOffice.org Impress&amp;#039;&amp;#039;&amp;#039; is the presentation application of [[OpenOffice.org]].&lt;br /&gt;
&lt;br /&gt;
The application&amp;#039;s source code is located in module sd. The mailing list for developer discussions related to Impress is dev@graphics.openoffice.org, to subscribe mailto:dev-subscribe@graphics.openoffice.org and then reply to the subscription mail sent to you to verify subscription. The project&amp;#039;s webpage is http://graphics.openoffice.org/&lt;br /&gt;
&lt;br /&gt;
For wiki articles related to the project see [[:Category:Impress]].&lt;br /&gt;
&lt;br /&gt;
== People ==&lt;br /&gt;
&lt;br /&gt;
* working permanently on the code&lt;br /&gt;
*; [[User:Ka|Kai Ahrens]] : project lead, all areas&lt;br /&gt;
*; [[User:Cl|Christian Lippka]] : co-lead, view, core, API, ODF&lt;br /&gt;
*; [[User:Af|Andre Fischer]] : view, Accessibility, [[Presenter Screen]], [[drawing framework]]&lt;br /&gt;
*; [[User:Sj|Sven Jacobi]] : [[PowerPoint filter|Microsoft Powerpoint import/export filters]], [[graphic filters]], [[custom shapes]], extensions&lt;br /&gt;
*; [[User:Aw|Armin Le Grand]] : [[drawing engine]], [[basegfx]]&lt;br /&gt;
*; [[User:Thb|Thorsten Behrens]] : [[presentation module]], [[basegfx]]&lt;br /&gt;
&lt;br /&gt;
* QA&lt;br /&gt;
*; [[User:Wg|Wolfram Garten]] : all areas&lt;br /&gt;
*; [[User:Cgu|Christian Guenther]] : all areas&lt;br /&gt;
*; [[User:Fha|Fredrik Haegg]] : testtool automation&lt;br /&gt;
&lt;br /&gt;
== Work in Progress ==&lt;br /&gt;
&lt;br /&gt;
* Adding native tables to impress &amp;amp; draw&lt;br /&gt;
* Adding the [[Presenter Screen]] for Impress.&lt;br /&gt;
* Adding [[DrawingPrimitive|primitive]] support for drawing layer (supporting smother geometry and anti aliasing)&lt;br /&gt;
* [[Oox|Office 12 XML import filter]]&lt;br /&gt;
&lt;br /&gt;
== Draft Specifications ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of specifications for draw or impress that is currently working on. Please feel free to discuss&lt;br /&gt;
this specifications on the dev@graphics.openoffice.org mailing list.&lt;br /&gt;
&lt;br /&gt;
* [[Draw_Tables|Tables in impress]]&lt;br /&gt;
* [[Impress_Terminology|Working on terminology in impress]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Impress|Impress]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Quality Assurance]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=51345</id>
		<title>DrawingML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=51345"/>
		<updated>2007-10-26T15:38:10Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* SmartArt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DrawingML]] is the ML for graphics data in [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
It is used throughout the whole Office suite for graphics data like in [[PresentationML]] and [[WordprocessingML]]&lt;br /&gt;
&lt;br /&gt;
== Data model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shapes ===&lt;br /&gt;
&lt;br /&gt;
oox::drawingml::Shape is the main data structure for the [[DrawingML]]. It will contain many XShape all created from the drawingml.&lt;br /&gt;
&lt;br /&gt;
The class Shape, every hard shape attribute is stored there. The text will be stored in the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
The class &amp;quot;TextListStyle&amp;quot; is storing style information &lt;br /&gt;
&amp;quot;TextParagraphProperties&amp;quot; for&lt;br /&gt;
each of the ten text paragraphs (also a aggregation list style that is &lt;br /&gt;
used for sub titles)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;TextParagraphProperties&amp;quot; class is storing paragraph and character &lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SmartArt ===&lt;br /&gt;
&lt;br /&gt;
[[SmartArt]] is the &amp;quot;diagramming&amp;quot; part of DrawingML. OpenOffice.org do not have an equivalent feature so the import will have to include the logic of SmartArt to generate Shapes from the whole diagram description.&lt;br /&gt;
&lt;br /&gt;
Diagrams are in their own fragments and in it their own XML namespace.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51344</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51344"/>
		<updated>2007-10-26T15:37:34Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* SmartArt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawingML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51343</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51343"/>
		<updated>2007-10-26T15:37:12Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawningML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the [[Office Open XML]] document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51342</id>
		<title>SmartArt</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=SmartArt&amp;diff=51342"/>
		<updated>2007-10-26T15:36:37Z</updated>

		<summary type="html">&lt;p&gt;Hub: initial documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SmartArt =&lt;br /&gt;
&lt;br /&gt;
SmartArt is one of the new features of MS-Office 2007 and is about simply creating diagrams automatically. You select a layout, select colors, enter some textual data, and voilà.&lt;br /&gt;
&lt;br /&gt;
This is the diagram part of [[DrawningML]]&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
The current strategy to import is to generate shapes from the diagram data. The result will be lossy compared to the MS-Office document as it will not include the diagram information anymore. Don&amp;#039;t expect round-trip conversion.&lt;br /&gt;
&lt;br /&gt;
== Generation ==&lt;br /&gt;
&lt;br /&gt;
The generation of a SmartArt is the action of generating drawing elements from the data model, layout and color style combination.&lt;br /&gt;
&lt;br /&gt;
== Future? ==&lt;br /&gt;
&lt;br /&gt;
This is just ideas for the future. These are not actual plans.&lt;br /&gt;
&lt;br /&gt;
Ideally in the future, OpenOffice.org could have a similar feature with a UI. That would require changes in both the file format and the importer. It could be written as an extension, and should be available to all the OpenOffice.org components: Writer, Calc, Draw and Impress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=51341</id>
		<title>DrawingML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=51341"/>
		<updated>2007-10-26T15:30:29Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DrawingML]] is the ML for graphics data in [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
It is used throughout the whole Office suite for graphics data like in [[PresentationML]] and [[WordprocessingML]]&lt;br /&gt;
&lt;br /&gt;
== Data model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shapes ===&lt;br /&gt;
&lt;br /&gt;
oox::drawingml::Shape is the main data structure for the [[DrawingML]]. It will contain many XShape all created from the drawingml.&lt;br /&gt;
&lt;br /&gt;
The class Shape, every hard shape attribute is stored there. The text will be stored in the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
The class &amp;quot;TextListStyle&amp;quot; is storing style information &lt;br /&gt;
&amp;quot;TextParagraphProperties&amp;quot; for&lt;br /&gt;
each of the ten text paragraphs (also a aggregation list style that is &lt;br /&gt;
used for sub titles)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;TextParagraphProperties&amp;quot; class is storing paragraph and character &lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SmartArt ===&lt;br /&gt;
&lt;br /&gt;
[[SmartArt]] is the &amp;quot;diagramming&amp;quot; part of DrawingML. OpenOffice.org do not have an equivalent feature so the import will have to include the logic of SmartArt to generate Shapes from the whole diagram description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=51340</id>
		<title>Oox</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=51340"/>
		<updated>2007-10-26T15:28:19Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* drawingml */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stands for [[Office Open XML]]. The name of the module that handle [[Office Open XML]] import. Part of the [[Xml]] project.&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
&lt;br /&gt;
The [[WordprocessingML]] importer is part of a different effort in writerfilter2 where the refactoring of the binary and RTF filter also takes place.&lt;br /&gt;
&lt;br /&gt;
= Directory Structure =&lt;br /&gt;
== core ==&lt;br /&gt;
This directory includes common code for all filters.&lt;br /&gt;
&lt;br /&gt;
=== AttributeList (class) ===&lt;br /&gt;
Provides access to attribute values of an element.  &amp;#039;&amp;#039;&amp;#039;AttributeList&amp;#039;&amp;#039;&amp;#039; wraps a &amp;#039;&amp;#039;com.sun.star.xml.sax.XFastAttributeList&amp;#039;&amp;#039; object, and provides convenience functions that convert the string value of an attribute to various other data types.  This class is usually used as a local variable declared with an instance of [[XFastAttributeList]] passed from the [[FastParser]] instance.&lt;br /&gt;
&lt;br /&gt;
=== FragmentHandler (class) ===&lt;br /&gt;
Top-most parent class that handles fragments.  In most cases this class handles all nested contexts for increased performance.  This class implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== RelationsFragmentHandler (class) ===&lt;br /&gt;
Handles loading of relationships fragments ( &amp;#039;&amp;#039;&amp;#039;/*/_rels/*.rels&amp;#039;&amp;#039;&amp;#039; ).  Like the FragmentHandler class, this class also implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== ImportBase (class) ===&lt;br /&gt;
The base class for application specific import filters, currently sub-classed by &amp;#039;&amp;#039;&amp;#039;oox::ppt::PowerPointImport&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;oox::xls::ExcelFilter&amp;#039;&amp;#039;&amp;#039;.  It implements [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XImporter.html XImporter] and [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XFilter.html XFilter] interfaces.&lt;br /&gt;
&lt;br /&gt;
== drawingml ==&lt;br /&gt;
&lt;br /&gt;
drawingml containg the [[DrawingML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== ppt ==&lt;br /&gt;
&lt;br /&gt;
ppt contain the [[PresentationML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== token ==&lt;br /&gt;
&lt;br /&gt;
The token list is generated by parsing the XML Schemas. Then gentoken.pl will use gperf to generate a perfect hash for fast parsing of known tokens. All the token are dispatched through integer numbers.&lt;br /&gt;
&lt;br /&gt;
== xls ==&lt;br /&gt;
This directory includes code specific to parse [[SpreadsheetML]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source_directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=UNO&amp;diff=46339</id>
		<title>UNO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=UNO&amp;diff=46339"/>
		<updated>2007-09-13T17:34:30Z</updated>

		<summary type="html">&lt;p&gt;Hub: alias&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Uno]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=45178</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=45178"/>
		<updated>2007-09-06T22:18:26Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a (somewhat terse) description of the various directories for OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[agg]] || antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[animation]] || Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[autodoc]] || html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[automation]] || Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[avmedia]] || Audio/Video media implementation - requires a working Java Media Framework (JMF)&lt;br /&gt;
* currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
|-&lt;br /&gt;
| [[basctl]] || controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[basebmp]] || algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[basegfx]] || algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[basic]] || basic interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] || office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[beanshell]] || java interpreter - so you can write java in command shell,&lt;br /&gt;
* interactive java -- good for prototyping /macros&lt;br /&gt;
* from http://www.beanshell.org/ with some patches&lt;br /&gt;
|-&lt;br /&gt;
| [[berkeleydb]] || external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]]  || [[StarOffice]] 5.2 compatibility layer, the UI and everything. Basically a little SO 5.2 inside OO.o. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[boost]] || external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/bridges|bridges]] || Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[canvas]] || new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[chart2]] || new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli_ure|cli_ure]]  || &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/codemaker|codemaker]] || [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[configmgr]]&amp;lt;/div&amp;gt; || the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[config_office]] || build configs, configure scripts, autotools, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[connectivity]] || database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[cosv]] || &amp;quot;Common Services,&amp;quot; part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[cppcanvas]] || helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/CPPU|cppu]] || [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/CPPUhelper|cppuhelper]] || [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPUtools|cpputools]] || [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[crashrep]] || reports crashes (Novell disabled that)&lt;br /&gt;
|-&lt;br /&gt;
| [[curl]] || external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[dbaccess]] || data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[default_images]] || all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[desktop]] || what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[dmake]] || the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[dtrans]] || clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[embeddedobj]] || Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[embedserv]] || Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[epm]] || enhanced package manager- nasty hack for packaging&lt;br /&gt;
* not useful - but default build uses, every linux packager disables this&lt;br /&gt;
|-&lt;br /&gt;
| [[eventattacher]] || how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[expat]] || external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[extensions_(source_code_module)|extensions]] || browser plugin, activex control, scanner bits&lt;br /&gt;
|-&lt;br /&gt;
| [[external]] || placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[extras]] || templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[fileaccess]] || tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[filter]] || filter registration and some simple filters (also descriptions&lt;br /&gt;
|-&lt;br /&gt;
| [[forms]] || embedded forms control and pieces (design forms in documents, fields and database driven) &lt;br /&gt;
|-&lt;br /&gt;
| [[fpicker]] || native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows &lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] || UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/freetype|freetype]] || Font rasterrizer.&lt;br /&gt;
|-&lt;br /&gt;
| [[goodies]] || graphics filters, 3d and 2d graqphics pieces&lt;br /&gt;
|-&lt;br /&gt;
| [[helpcontent2]] || for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[hsqldb]] || external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[hwpfilter]] || filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[i18npool]] || internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[i18nutil]] || small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] || external library. International (IBM? ;-)) Components for Unicode, http://icu.sourceforge.net/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[idl]] || SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/idlc|idlc]] || The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[instsetoo_native]] || install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/IO|io]] || Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/javaunohelper|javaunohelper]] || [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/JURT|jurt]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/JUT|jut]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ools - Tools for [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[jvmaccess]], [[jvmfwk]] || wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[libwpd]] || external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[libxmlsec]] || external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[lingucomponent]] || spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[linguistic]] || This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[lpsolve]] || external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[mathmldtd]] || MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[msfontextract]] || external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont))&lt;br /&gt;
|-&lt;br /&gt;
| [[nas]] || The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[neon]] || web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[netbeans_integration]] || java?&lt;br /&gt;
|-&lt;br /&gt;
| [[np_sdk]] || Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[odk]] || office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[offapi]] || all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[officecfg]] || the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[offuh]] || Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[oocustomimages]] || themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] || [[OpenXML]] parser&lt;br /&gt;
|-&lt;br /&gt;
| [[packages]] || reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[padmin]] || printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/portaudio|portaudio]] || an audio output library for various sound setups.&lt;br /&gt;
|-&lt;br /&gt;
| [[postprocess]] || Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint]] || postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint_config]] || ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[pyuno]] || [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[qadevOOo]] || qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/rdbmaker|rdbmaker]] || makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[readlicense_oo]] || reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[regexp]] || regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[registry]] || registry reading, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/remotebridges|remotebridges]] || [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[rhino]] || java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/ridljar|ridljar]] || Generators [[Uno/Java|Java Uno]] types (like [[offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[rsc]] || resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[rvpapi]] || Obsolete.&lt;br /&gt;
|-&lt;br /&gt;
| [[sablot]] || external library. yet another xslt implementation in the tree (in C++)&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Module/SAL|sal]] || system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/SALhelper|salhelper]] || C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/sandbox|sandbox]] || Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Might be obsolet.&lt;br /&gt;
|-&lt;br /&gt;
| [[sane]] || external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[sax]] || wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[sc]] || calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[scaddins]] || extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[scp2]] || script particles - being rewritten for oo2. all of installation was driven by starbasic - this is now in instsetoo-native&lt;br /&gt;
|-&lt;br /&gt;
| [[scripting]] || scripting framework - for java, python, etc. to play together and uses UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[scsolver]] || [[Optimization Solver]] for Calc&lt;br /&gt;
|-&lt;br /&gt;
| [[sd]] || Impress and Draw components. Think of Impress as hack on top of Draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdext]] || Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdk_oo]] || software development kit OO - implements the second step on the way to the OpenOffice.org SDK tarball (see odk)&lt;br /&gt;
|-&lt;br /&gt;
| [[setup-native]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[sfx2]] || gui code, much of which is now deprecated - list of documents open would be tracked - raw C++ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[shell]] || system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[sj2]]  || Java Applet support.&lt;br /&gt;
|-&lt;br /&gt;
| [[slideshow]] || new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[smoketestoo_native]] || Test code to launch each component for a smoke test.&lt;br /&gt;
|-&lt;br /&gt;
| [[sndfile]] || soundfile - library for loading all kinds of sound - external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[so3]] || StarObject (v3)&lt;br /&gt;
|-&lt;br /&gt;
| [[solenv]] || make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[soltools]] || all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[solver]] || dumping ground for binaries as object output&lt;br /&gt;
|-&lt;br /&gt;
| [[sot]] || compound file storage tools code (?)&lt;br /&gt;
|-&lt;br /&gt;
| [[starmath]] || formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] || external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/STOC|stoc]] || Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[store]] || Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[svtools]] || useful code, common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[svx]] || Graphics related helper code - xoutdev - rendering - This is where a lot of work would happen to move to the canvas.  svdraw - transparent gradient stuff. Lot of the Draw and Impress code is in this module. Part if the PPT binary importer is in there too.&lt;br /&gt;
|-&lt;br /&gt;
| [[sw]] || writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[sysui]] || .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[toolkit]] || abstract windowing thing- [[Uno]] implementations of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[tools]] || predates sal - string etc. functions, url manip, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[transex3]] || translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[twain]] || Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[ucb]] || &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[ucbhelper]] || C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[udkapi]]&amp;lt;/div&amp;gt; || URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[udm]] || part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[unixODBC]] || external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[unocontrols]] || separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[unoil]] || Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[unotools]] || helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[unoxml]] || [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[unzip]] || used by installer&lt;br /&gt;
|-&lt;br /&gt;
| [[ure]] || beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[uui]] || An Interaction Handler for the UCB.  It uses VCL to visualize and handle interaction requests.&lt;br /&gt;
|-&lt;br /&gt;
| [[vcl]] || base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[vigra]] || Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[vos]] || (Virtual Object System) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[wizards]] || java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[writerperfect]] || word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11_extensions]] || headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[xalan]] || external library. java xslt implementation&lt;br /&gt;
|-&lt;br /&gt;
| [[xmerge]] || The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[xml2cmp]] || Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlhelp]] || Help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[xmloff]] || OpenDocument import / export filter.&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlscript]] || Implements XML dialogs serialization. &lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSearch]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSecurity]] || Document signing&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43654</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43654"/>
		<updated>2007-08-27T20:24:56Z</updated>

		<summary type="html">&lt;p&gt;Hub: more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a (somewhat terse) description of the various directories for OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[agg]] || antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[animation]] || Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[autodoc]] || html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[automation]] || Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[avmedia]] || Audio/Video media implementation - requires a working Java Media Framework (JMF)&lt;br /&gt;
* currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
|-&lt;br /&gt;
| [[basctl]] || controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[basebmp]] || algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[basegfx]] || algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[basic]] || basic interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] || office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[beanshell]] || java interpreter - so you can write java in command shell,&lt;br /&gt;
* interactive java -- good for prototyping /macros&lt;br /&gt;
* from http://www.beanshell.org/ with some patches&lt;br /&gt;
|-&lt;br /&gt;
| [[berkeleydb]] || external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]]  || [[StarOffice]] 5.2 compatibility layer, the UI and everything. Basically a little SO 5.2 inside OO.o. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[boost]] || external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/bridges|bridges]] || Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[canvas]] || new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[chart2]] || new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli_ure|cli_ure]]  || &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/codemaker|codemaker]] || [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[configmgr]]&amp;lt;/div&amp;gt; || the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[config_office]] || build configs, configure scripts, autotools, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[connectivity]] || database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[cosv]] || &amp;quot;Common Services,&amp;quot; part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[cppcanvas]] || helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPU|cppu]] || [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/CPPUhelper|cppuhelper]] || [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPUtools|cpputools]] || [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[crashrep]] || reports crashes (Novell disabled that)&lt;br /&gt;
|-&lt;br /&gt;
| [[curl]] || external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[dbaccess]] || data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[default_images]] || all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[desktop]] || what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[dmake]] || the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[dtrans]] || clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[embeddedobj]] || Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[embedserv]] || Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[epm]] || enhanced package manager- nasty hack for packaging&lt;br /&gt;
* not useful - but default build uses, every linux packager disables this&lt;br /&gt;
|-&lt;br /&gt;
| [[eventattacher]] || how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[expat]] || external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[extensions_(source_code_module)|extensions]] || browser plugin, activex control, scanner bits&lt;br /&gt;
|-&lt;br /&gt;
| [[external]] || placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[extras]] || templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[fileaccess]] || tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[filter]] || filter registration and some simple filters (also descriptions&lt;br /&gt;
|-&lt;br /&gt;
| [[forms]] || embedded forms control and pieces (design forms in documents, fields and database driven) &lt;br /&gt;
|-&lt;br /&gt;
| [[fpicker]] || native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows &lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] || UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/freetype|freetype]] || Font rasterrizer.&lt;br /&gt;
|-&lt;br /&gt;
| [[goodies]] || graphics filters, 3d and 2d graqphics pieces&lt;br /&gt;
|-&lt;br /&gt;
| [[helpcontent2]] || for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[hsqldb]] || external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[hwpfilter]] || filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[i18npool]] || internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[i18nutil]] || small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] || external library. International (IBM? ;-)) Components for Unicode, http://icu.sourceforge.net/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[idl]] || SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/idlc|idlc]] || The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[instsetoo_native]] || install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/IO|io]] || Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/javaunohelper|javaunohelper]] || [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/JURT|jurt]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/JUT|jut]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ools - Tools for [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[jvmaccess]], [[jvmfwk]] || wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[libwpd]] || external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[libxmlsec]] || external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[lingucomponent]] || spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[linguistic]] || This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[lpsolve]] || external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[mathmldtd]] || MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[msfontextract]] || external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont))&lt;br /&gt;
|-&lt;br /&gt;
| [[nas]] || The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[neon]] || web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[netbeans_integration]] || java?&lt;br /&gt;
|-&lt;br /&gt;
| [[np_sdk]] || Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[odk]] || office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[offapi]] || all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[officecfg]] || the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[offuh]] || Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[oocustomimages]] || themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] || [[OpenXML]] parser&lt;br /&gt;
|-&lt;br /&gt;
| [[packages]] || reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[padmin]] || printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/portaudio|portaudio]] || an audio output library for various sound setups.&lt;br /&gt;
|-&lt;br /&gt;
| [[postprocess]] || Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint]] || postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint_config]] || ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[pyuno]] || [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[qadevOOo]] || qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/rdbmaker|rdbmaker]] || makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[readlicense_oo]] || reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[regexp]] || regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[registry]] || registry reading, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/remotebridges|remotebridges]] || [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[rhino]] || java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/ridljar|ridljar]] || Generators [[Uno/Java|Java Uno]] types (like [[offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[rsc]] || resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[rvpapi]] || Obsolete.&lt;br /&gt;
|-&lt;br /&gt;
| [[sablot]] || external library. yet another xslt implementation in the tree (in C++)&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Module/SAL|sal]] || system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/SALhelper|salhelper]] || C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/sandbox|sandbox]] || Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Might be obsolet.&lt;br /&gt;
|-&lt;br /&gt;
| [[sane]] || external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[sax]] || wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[sc]] || calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[scaddins]] || extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[scp2]] || script particles - being rewritten for oo2. all of installation was driven by starbasic - this is now in instsetoo-native&lt;br /&gt;
|-&lt;br /&gt;
| [[scripting]] || scripting framework - for java, python, etc. to play together and uses UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[scsolver]] || [[Optimization Solver]] for Calc&lt;br /&gt;
|-&lt;br /&gt;
| [[sd]] || Impress and Draw components. Think of Impress as hack on top of Draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdext]] || Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdk_oo]] || software development kit OO - implements the second step on the way to the OpenOffice.org SDK tarball (see odk)&lt;br /&gt;
|-&lt;br /&gt;
| [[setup-native]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[sfx2]] || gui code, much of which is now deprecated - list of documents open would be tracked - raw C++ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[shell]] || system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[sj2]]  || Java Applet support.&lt;br /&gt;
|-&lt;br /&gt;
| [[slideshow]] || new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[smoketestoo_native]] || Test code to launch each component for a smoke test.&lt;br /&gt;
|-&lt;br /&gt;
| [[sndfile]] || soundfile - library for loading all kinds of sound - external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[so3]] || StarObject (v3)&lt;br /&gt;
|-&lt;br /&gt;
| [[solenv]] || make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[soltools]] || all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[solver]] || dumping ground for binaries as object output&lt;br /&gt;
|-&lt;br /&gt;
| [[sot]] || compound file storage tools code (?)&lt;br /&gt;
|-&lt;br /&gt;
| [[starmath]] || formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] || external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/STOC|stoc]] || Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[store]] || Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[svtools]] || useful code, common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[svx]] || graphics related helper code - xoutdev - rendering - this is where a lot of work would happen to move to the canvas.  svdraw - transparent gradient stuff  . lots of the draw and impress code is in this shared lib&lt;br /&gt;
|-&lt;br /&gt;
| [[sw]] || writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[sysui]] || .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[toolkit]] || abstract windowing thing- [[Uno]] implementations of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[tools]] || predates sal - string etc. functions, url manip, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[transex3]] || translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[twain]] || Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[ucb]] || &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[ucbhelper]] || C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[udkapi]]&amp;lt;/div&amp;gt; || URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[udm]] || part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[unixODBC]] || external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[unocontrols]] || separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[unoil]] || Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[unotools]] || helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[unoxml]] || [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[unzip]] || used by installer&lt;br /&gt;
|-&lt;br /&gt;
| [[ure]] || beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[uui]] || An Interaction Handler for the UCB.  It uses VCL to visualize and handle interaction requests.&lt;br /&gt;
|-&lt;br /&gt;
| [[vcl]] || base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[vigra]] || Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[vos]] || (Virtual Object System) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[wizards]] || java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[writerperfect]] || word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11_extensions]] || headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[xalan]] || external library. java xslt implementation&lt;br /&gt;
|-&lt;br /&gt;
| [[xmerge]] || The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[xml2cmp]] || Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlhelp]] || Help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[xmloff]] || OpenDocument import / export filter.&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlscript]] || Implements XML dialogs serialization. &lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSearch]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSecurity]] || Document signing&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43653</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43653"/>
		<updated>2007-08-27T20:14:57Z</updated>

		<summary type="html">&lt;p&gt;Hub: more typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a (somewhat terse) description of the various directories for OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[agg]] || antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[animation]] || Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[autodoc]] || html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[automation]] || Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[avmedia]] || Audio/Video media implementation - requires a working Java Media Framework (JMF)&lt;br /&gt;
* currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
|-&lt;br /&gt;
| [[basctl]] || controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[basebmp]] || algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[basegfx]] || algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[basic]] || basic interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] || office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[beanshell]] || java interpreter - so you can write java in command shell,&lt;br /&gt;
* interactive java -- good for prototyping /macros&lt;br /&gt;
* from http://www.beanshell.org/ with some patches&lt;br /&gt;
|-&lt;br /&gt;
| [[berkeleydb]] || external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]]  || [[StarOffice]] 5.2 compatibility layer, the UI and everything. Basically a little SO 5.2 inside OO.o. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[boost]] || external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/bridges|bridges]] || Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[canvas]] || new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[chart2]] || new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli_ure|cli_ure]]  || &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/codemaker|codemaker]] || [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[configmgr]]&amp;lt;/div&amp;gt; || the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[config_office]] || build configs, configure scripts, autotools, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[connectivity]] || database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[cosv]] || &amp;quot;Common Services,&amp;quot; part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[cppcanvas]] || helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPU|cppu]] || [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/CPPUhelper|cppuhelper]] || [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPUtools|cpputools]] || [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[crashrep]] || reports crashes (Novell disabled that)&lt;br /&gt;
|-&lt;br /&gt;
| [[curl]] || external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[dbaccess]] || data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[default_images]] || all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[desktop]] || what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[dmake]] || the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[dtrans]] || clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[embeddedobj]] || Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[embedserv]] || Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[epm]] || enhanced package manager- nasty hack for packaging&lt;br /&gt;
* not useful - but default build uses, every linux packager disables this&lt;br /&gt;
|-&lt;br /&gt;
| [[eventattacher]] || how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[expat]] || external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[extensions_(source_code_module)|extensions]] || browser plugin, activex control, scanner bits&lt;br /&gt;
|-&lt;br /&gt;
| [[external]] || placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[extras]] || templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[fileaccess]] || tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[filter]] || filter registration and some simple filters (also descriptions&lt;br /&gt;
|-&lt;br /&gt;
| [[forms]] || embedded forms control and pieces (design forms in documents, fields and database driven) &lt;br /&gt;
|-&lt;br /&gt;
| [[fpicker]] || native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows &lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] || UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/freetype|freetype]] || Font rasterrizer.&lt;br /&gt;
|-&lt;br /&gt;
| [[goodies]] || graphics filters, 3d and 2d graqphics pieces&lt;br /&gt;
|-&lt;br /&gt;
| [[helpcontent2]] || for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[hsqldb]] || external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[hwpfilter]] || filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[i18npool]] || internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[i18nutil]] || small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] || external library. International (IBM? ;-)) Components for Unicode, http://icu.sourceforge.net/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[idl]] || SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/idlc|idlc]] || The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[instsetoo_native]] || install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/IO|io]] || Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/javaunohelper|javaunohelper]] || [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/JURT|jurt]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/JUT|jut]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ools - Tools for [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[jvmaccess]], [[jvmfwk]] || wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[libwpd]] || external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[libxmlsec]] || external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[lingucomponent]] || spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[linguistic]] || This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[lpsolve]] || external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[mathmldtd]] || MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[msfontextract]] || external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont))&lt;br /&gt;
|-&lt;br /&gt;
| [[nas]] || The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[neon]] || web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[netbeans_integration]] || java?&lt;br /&gt;
|-&lt;br /&gt;
| [[np_sdk]] || Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[odk]] || office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[offapi]] || all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[officecfg]] || the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[offuh]] || Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[oocustomimages]] || themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] || OpenXML parser&lt;br /&gt;
|-&lt;br /&gt;
| [[packages]] || reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[padmin]] || printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/portaudio|portaudio]] || an audio output library for various sound setups.&lt;br /&gt;
|-&lt;br /&gt;
| [[postprocess]] || Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint]] || postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint_config]] || ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[pyuno]] || [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[qadevOOo]] || qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/rdbmaker|rdbmaker]] || makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[readlicense_oo]] || reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[regexp]] || regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[registry]] || registry reading, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/remotebridges|remotebridges]] || [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[rhino]] || java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/ridljar|ridljar]] || Generators [[Uno/Java|Java Uno]] types (like [[offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[rsc]] || resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[rvpapi]] || Obsolete.&lt;br /&gt;
|-&lt;br /&gt;
| [[sablot]] || external library. yet another xslt implementation in the tree (in C++)&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Module/SAL|sal]] || system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/SALhelper|salhelper]] || C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/sandbox|sandbox]] || Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Might be obsolet.&lt;br /&gt;
|-&lt;br /&gt;
| [[sane]] || external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[sax]] || wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[sc]] || calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[scaddins]] || extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[scp2]] || script particles - being rewritten for oo2. all of installation was driven by starbasic - this is now in instsetoo-native&lt;br /&gt;
|-&lt;br /&gt;
| [[scripting]] || scripting framework - for java, python, etc. to play together and uses UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[scsolver]] || [[Optimization Solver]] for Calc&lt;br /&gt;
|-&lt;br /&gt;
| [[sd]] || Impress and Draw components. Think of Impress as hack on top of Draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdext]] || Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdk_oo]] || software development kit OO - implements the second step on the way to the OpenOffice.org SDK tarball (see odk)&lt;br /&gt;
|-&lt;br /&gt;
| [[setup-native]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[sfx2]] || gui code, much of which is now deprecated - list of documents open would be tracked - raw C++ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[shell]] || system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[sj2]]  || Java Applet support.&lt;br /&gt;
|-&lt;br /&gt;
| [[slideshow]] || new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[smoketestoo_native]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[sndfile]] || soundfile - library for loading all kinds of sound - external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[so3]] || StarObject (v3)&lt;br /&gt;
|-&lt;br /&gt;
| [[solenv]] || make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[soltools]] || all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[solver]] || dumping ground for binaries as object output&lt;br /&gt;
|-&lt;br /&gt;
| [[sot]] || compound file storage tools code (?)&lt;br /&gt;
|-&lt;br /&gt;
| [[starmath]] || formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] || external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/STOC|stoc]] || Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[store]] || Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[svtools]] || useful code, common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[svx]] || graphics related helper code - xoutdev - rendering - this is where a lot of wht work would happen to move to the canvas.  svdraw - transparent gradient stuff  . lots of the draw and impress code is in this shared lib&lt;br /&gt;
|-&lt;br /&gt;
| [[sw]] || writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[sysui]] || .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[toolkit]] || abstract windowing thing- [[Uno]] imples of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[tools]] || predates sal - string etc . functions, url manip, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[transex3]] || translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[twain]] || Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[ucb]] || &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[ucbhelper]] || C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[udkapi]]&amp;lt;/div&amp;gt; || URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[udm]] || part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[unixODBC]] || external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[unocontrols]] || separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[unoil]] || Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[unotools]] || helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[unoxml]] || [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[unzip]] || used by installer&lt;br /&gt;
|-&lt;br /&gt;
| [[ure]] || beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[uui]] || An Interaction Handler for the UCB.  It uses VCL to visualize and handle interaction requests.&lt;br /&gt;
|-&lt;br /&gt;
| [[vcl]] || base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[vigra]] || Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[vos]] || (virt obj system) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[wizards]] || java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[writerperfect]] || word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11_extensions]] || headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[xalan]] || external library. java xslt implementation&lt;br /&gt;
|-&lt;br /&gt;
| [[xmerge]] || The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[xml2cmp]] || Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlhelp]] || help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[xmloff]] || common xml import and export filter logic&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlscript]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSearch]] || ?&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSecurity]] || document signing&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43652</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=43652"/>
		<updated>2007-08-27T20:12:58Z</updated>

		<summary type="html">&lt;p&gt;Hub: typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a (somewhat terse) description of the various directories for OpenOffice source code.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[agg]] || antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[animation]] || Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[autodoc]] || html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[automation]] || Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[avmedia]] || Audio/Video media implementation - requires a working Java Media Framework (JMF)&lt;br /&gt;
* currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
|-&lt;br /&gt;
| [[basctl]] || controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[basebmp]] || algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[basegfx]] || algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[basic]] || basic interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] || office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[beanshell]] || java interpreter - so you can write java in command shell,&lt;br /&gt;
* interactive java -- good for prototyping /macros&lt;br /&gt;
* from http://www.beanshell.org/ with some patches&lt;br /&gt;
|-&lt;br /&gt;
| [[berkeleydb]] || external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]]  || [[StarOffice]] 5.2 compatibility layer, the UI and everything. Basically a little SO 5.2 inside OO.o. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[boost]] || external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/bridges|bridges]] || Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[canvas]] || new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[chart2]] || new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli_ure|cli_ure]]  || &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/codemaker|codemaker]] || [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[configmgr]]&amp;lt;/div&amp;gt; || the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[config_office]] || build configs, configure scripts, autotools, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[connectivity]] || database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[cosv]] || &amp;quot;Common Services,&amp;quot; part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[cppcanvas]] || helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPU|cppu]] || [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/CPPUhelper|cppuhelper]] || [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/CPPUtools|cpputools]] || [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[crashrep]] || reports crashes (novell disabled that)&lt;br /&gt;
|-&lt;br /&gt;
| [[curl]] || external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[dbaccess]] || data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[default_images]] || all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[desktop]] || what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[dmake]] || the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[dtrans]] || clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[embeddedobj]] || Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[embedserv]] || Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[epm]] || enhanced package manager- nasty hack for packaging&lt;br /&gt;
* not useful - but default build uses, every linux packager disables this&lt;br /&gt;
|-&lt;br /&gt;
| [[eventattacher]] || how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[expat]] || external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[extensions_(source_code_module)|extensions]] || browser plugin, activex control, scanner bits&lt;br /&gt;
|-&lt;br /&gt;
| [[external]] || placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[extras]] || templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[fileaccess]] || tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[filter]] || filter registration and some simple filters (also descriptions&lt;br /&gt;
|-&lt;br /&gt;
| [[forms]] || embedded forms control and pieces (design forms in documents, fields and database driven) &lt;br /&gt;
|-&lt;br /&gt;
| [[fpicker]] || native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows &lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] || UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/freetype|freetype]] || Font rasterrizer.&lt;br /&gt;
|-&lt;br /&gt;
| [[goodies]] || graphics filters, 3d and 2d graqphics pieces&lt;br /&gt;
|-&lt;br /&gt;
| [[helpcontent2]] || for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[hsqldb]] || external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[hwpfilter]] || filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[i18npool]] || internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[i18nutil]] || small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] || external library. International (IBM? ;-)) Components for Unicode, http://icu.sourceforge.net/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[idl]] || SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/idlc|idlc]] || The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[instsetoo_native]] || install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/IO|io]] || Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/javaunohelper|javaunohelper]] || [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/JURT|jurt]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/JUT|jut]] || &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ools - Tools for [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[jvmaccess]], [[jvmfwk]] || wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[libwpd]] || external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[libxmlsec]] || external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[lingucomponent]] || spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[linguistic]] || This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[lpsolve]] || external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[mathmldtd]] || MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[msfontextract]] || external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont))&lt;br /&gt;
|-&lt;br /&gt;
| [[nas]] || The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[neon]] || web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[netbeans_integration]] || java?&lt;br /&gt;
|-&lt;br /&gt;
| [[np_sdk]] || Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[odk]] || office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[offapi]] || all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[officecfg]] || the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[offuh]] || Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[oocustomimages]] || themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] || OpenXML parser&lt;br /&gt;
|-&lt;br /&gt;
| [[packages]] || reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[padmin]] || printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/portaudio|portaudio]] || an audio output library for various sound setups.&lt;br /&gt;
|-&lt;br /&gt;
| [[postprocess]] || Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint]] || postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&lt;br /&gt;
|-&lt;br /&gt;
| [[psprint_config]] || ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[pyuno]] || [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[qadevOOo]] || qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/rdbmaker|rdbmaker]] || makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[readlicense_oo]] || reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[regexp]] || regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[registry]] || registry reading, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/remotebridges|remotebridges]] || [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[rhino]] || java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Module/ridljar|ridljar]] || Generators [[Uno/Java|Java Uno]] types (like [[offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[rsc]] || resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[rvpapi]] || Obsolete.&lt;br /&gt;
|-&lt;br /&gt;
| [[sablot]] || external library. yet another xslt implementation in the tree (in C++)&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Module/SAL|sal]] || system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Module/SALhelper|salhelper]] || C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Module/sandbox|sandbox]] || Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Might be obsolet.&lt;br /&gt;
|-&lt;br /&gt;
| [[sane]] || external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[sax]] || wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[sc]] || calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[scaddins]] || extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[scp2]] || script particles - being rewritten for oo2. all of instalation was driven by starbasic - this is now in instsetoo-nativ&lt;br /&gt;
|-&lt;br /&gt;
| [[scripting]] || scripting framework - for java, python, etc. to play together and uses UNO - noel working on&lt;br /&gt;
|-&lt;br /&gt;
| [[scsolver]] || [[Optimization Solver]] for Calc&lt;br /&gt;
|-&lt;br /&gt;
| [[sd]] || impress and draw components . impress think as hack on top of draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdext]] || Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[sdk_oo]] || software development kit OO - implements the second step on the way to the OpenOffice.org SDK tarball (see odk)&lt;br /&gt;
|-&lt;br /&gt;
| [[setup-native]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[sfx2]] || gui code, much of which is now deprecated - list of documents open would be traceked - raw C__ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[shell]] || system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[sj2]]  || Java Applet support.&lt;br /&gt;
|-&lt;br /&gt;
| [[slideshow]] || new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[smoketestoo_native]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[sndfile]] || soundfile - library for loading all kinds of sound - external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[so3]] || StarObject (v3)&lt;br /&gt;
|-&lt;br /&gt;
| [[solenv]] || make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[soltools]] || all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[solver]] || dumping ground for binaries as object output&lt;br /&gt;
|-&lt;br /&gt;
| [[sot]] || compound file storage tools code (?)&lt;br /&gt;
|-&lt;br /&gt;
| [[starmath]] || formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] || external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Module/STOC|stoc]] || Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[store]] || Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[svtools]] || useful code, common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[svx]] || graphics related helper code - xoutdev - rendering - this is where a lot of wht work would happen to move to the canvas.  svdraw - transparent gradient stuff  . lots of the draw and impress code is in this shared lib&lt;br /&gt;
|-&lt;br /&gt;
| [[sw]] || writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[sysui]] || .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[toolkit]] || abstract windowing thing- [[Uno]] imples of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[tools]] || predates sal - string etc . functions, url manip, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[transex3]] || translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[twain]] || Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[ucb]] || &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[ucbhelper]] || C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[udkapi]]&amp;lt;/div&amp;gt; || URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[udm]] || part of [[autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[unixODBC]] || external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[unocontrols]] || separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[unoil]] || Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[unotools]] || helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[unoxml]] || [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[unzip]] || used by installer&lt;br /&gt;
|-&lt;br /&gt;
| [[ure]] || beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[uui]] || An Interaction Handler for the UCB.  It uses VCL to visualize and handle interaction requests.&lt;br /&gt;
|-&lt;br /&gt;
| [[vcl]] || base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[vigra]] || Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[vos]] || (virt obj system) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[wizards]] || java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[writerperfect]] || word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11_extensions]] || headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[xalan]] || external library. java xslt implementation&lt;br /&gt;
|-&lt;br /&gt;
| [[xmerge]] || The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[xml2cmp]] || Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlhelp]] || help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[xmloff]] || common xml import and export filter logic&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlscript]] || ?&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSearch]] || ?&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[xmlSecurity]] || document signing&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Source directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=CVS&amp;diff=42893</id>
		<title>CVS</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=CVS&amp;diff=42893"/>
		<updated>2007-08-18T18:47:43Z</updated>

		<summary type="html">&lt;p&gt;Hub: bonsai moved&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CVS ==&lt;br /&gt;
&lt;br /&gt;
This page describes some difficulties with the modified CVS version, which is used for OpenOffice.org&lt;br /&gt;
&lt;br /&gt;
=== FAQ ===&lt;br /&gt;
&lt;br /&gt;
==== I can&amp;#039;t checkout with a certain tag ====&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org CVS is loosing from time to time it&amp;#039;s CVSROOT/valtags file so one needs to recreate this tags, this can be done by creating just another dummy branch:&lt;br /&gt;
&lt;br /&gt;
 cvs -d:pserver:mh@my-tunnel:/cvs co test&lt;br /&gt;
 cd test/playground&lt;br /&gt;
 cvs tag -b cws_src680_asyncdialogs2 Makefile&lt;br /&gt;
&lt;br /&gt;
[[http://qa.openoffice.org/issues/show_bug.cgi?id=23306 IssueZilla 23306]]&lt;br /&gt;
&lt;br /&gt;
==== how to track the patch code of a issue which has been fixed and integrated ? ====&lt;br /&gt;
(e.g) The issue 69010, belongs to the CWS impress110, has been integrated into m192.&lt;br /&gt;
&lt;br /&gt;
 there are two possibilties to track this:&lt;br /&gt;
&lt;br /&gt;
 1. Use EIS (eis.services.openoffice.org). Login into EIS, search for the impress110 cws and look  there for the modules and files section. There you find the registered task and the files affected by this task. Following the link of the revision shows you the diff.&lt;br /&gt;
 2. use bonsai (go-ooo.org/bonsai) to track all the changes of the cws (e.g.  http://bonsai.go-oo.org/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_impress110&amp;amp;branchtype=match&amp;amp;dir=&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=all&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fhome%2Fooweb%2Fcvsup)&lt;br /&gt;
 using the first alternative work fine once a cws has been integrated, the second alternative works   fine before integration of the cws.&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Speedprof&amp;diff=42840</id>
		<title>Speedprof</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Speedprof&amp;diff=42840"/>
		<updated>2007-08-17T15:35:34Z</updated>

		<summary type="html">&lt;p&gt;Hub: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== what is it ===&lt;br /&gt;
&lt;br /&gt;
Speedprof is an LD_PRELOAD based itimer (or hard real-time, or builtin CPU timer) based snapshot profiler. It samples at regular intervals (tweakable by reading the code ;-) and then presents a rather sexy data mining view so you can wind back full stack information - what function called what and when, self &amp;amp; cumulative times down trace paths etc.&lt;br /&gt;
&lt;br /&gt;
=== how to get it ===&lt;br /&gt;
&lt;br /&gt;
Checkout &amp;#039;memprof&amp;#039; from GNOME [http://developer.gnome.org/tools/svn.html SVN]:&lt;br /&gt;
&lt;br /&gt;
    svn co http://svn.gnome.org/svn/memprof/branches/sled-fixes/ memprof&lt;br /&gt;
&lt;br /&gt;
=== install it ===&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh&lt;br /&gt;
    make&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
=== how to use it ===&lt;br /&gt;
&lt;br /&gt;
    speedprof ./soffice.bin -writer&lt;br /&gt;
&lt;br /&gt;
Of course, the most useful mode is to use the &amp;#039;reset&amp;#039; button - ie. get OO.o going to the state you&amp;#039;re interested in. Hit reset - do something slow - hit &amp;#039;Profile&amp;#039; and wander the trace.&lt;br /&gt;
&lt;br /&gt;
=== downsides ===&lt;br /&gt;
&lt;br /&gt;
* sometimes crashes the app - but hey, sometimes the app crashes under it&amp;#039;s own steam too - hard to know whom to blame.&lt;br /&gt;
* doesn&amp;#039;t work well with old systems (pre TLS / NPTL)&lt;br /&gt;
* doesn&amp;#039;t like very long C++ symbols much - makes the columns somewhat unpleasant to use, needs some app tweakage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer_Tools]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Speedprof&amp;diff=42839</id>
		<title>Speedprof</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Speedprof&amp;diff=42839"/>
		<updated>2007-08-17T15:33:31Z</updated>

		<summary type="html">&lt;p&gt;Hub: gnome is in SVN now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== what is it ===&lt;br /&gt;
&lt;br /&gt;
Speedprof is an LD_PRELOAD based itimer (or hard real-time, or builtin CPU timer) based snapshot profiler. It samples at regular intervals (tweakable by reading the code ;-) and then presents a rather sexy data mining view so you can wind back full stack information - what function called what and when, self &amp;amp; cumulative times down trace paths etc.&lt;br /&gt;
&lt;br /&gt;
=== how to get it ===&lt;br /&gt;
&lt;br /&gt;
Checkout &amp;#039;memprof&amp;#039; from GNOME [http://developer.gnome.org/tools/svn.html SVN]:&lt;br /&gt;
&lt;br /&gt;
    svn co http://svn.gnome.org/svn/memprof/branches/sled-fixes/ memprof&lt;br /&gt;
&lt;br /&gt;
=== install it ===&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh&lt;br /&gt;
    make&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
=== how to use it ===&lt;br /&gt;
&lt;br /&gt;
    speedprof ./soffice.bin -writer&lt;br /&gt;
&lt;br /&gt;
Of course, the most useful mode is to use the &amp;#039;reset&amp;#039; button - ie. get OO.o going to the state you&amp;#039;re interested in. Hit reset - do something slow - hit &amp;#039;Profile&amp;#039; and wander the trace.&lt;br /&gt;
&lt;br /&gt;
=== downsides ===&lt;br /&gt;
&lt;br /&gt;
* sometimes crashes the app - but hey, sometimes the app crashes under it&amp;#039;s own steam too - hard to know whom to blame.&lt;br /&gt;
* doesn&amp;#039;t work well with old systems (pre TLS / NPTL)&lt;br /&gt;
* doesn&amp;#039;t like very long C++ symbols much - makes the columns somewhat unpleasant to use, needs some app tweakage.&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOXML_Issues&amp;diff=40303</id>
		<title>OOXML Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOXML_Issues&amp;diff=40303"/>
		<updated>2007-07-25T14:38:54Z</updated>

		<summary type="html">&lt;p&gt;Hub: a few corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Section break properties allowed in style? ==&lt;br /&gt;
&lt;br /&gt;
Since sections breaks are paragraph properties the question is whether a sections break can really be applied using a style? In other words are the following style definitions valid?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w:style w:type=&amp;quot;paragraph&amp;quot; w:customStyle=&amp;quot;1&amp;quot; w:styleId=&amp;quot;MyStyle&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w:name w:val=&amp;quot;MyStyle&amp;quot; /&amp;gt; &lt;br /&gt;
  &amp;lt;w:basedOn w:val=&amp;quot;Normal&amp;quot; /&amp;gt; &lt;br /&gt;
  &amp;lt;w:pPr&amp;gt;&lt;br /&gt;
    &amp;lt;w:sectPr&amp;gt;&lt;br /&gt;
      &amp;lt;w:pgSz w:w=&amp;quot;12240&amp;quot; w:h=&amp;quot;15840&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:pgMar w:top=&amp;quot;1417&amp;quot; w:right=&amp;quot;1417&amp;quot; w:bottom=&amp;quot;1134&amp;quot; w:left=&amp;quot;1417&amp;quot; w:header=&amp;quot;708&amp;quot; w:footer=&amp;quot;708&amp;quot; w:gutter=&amp;quot;0&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:cols w:space=&amp;quot;708&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:docGrid w:linePitch=&amp;quot;360&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;/w:sectPr&amp;gt;&lt;br /&gt;
  &amp;lt;/w:pPr&amp;gt;&lt;br /&gt;
&amp;lt;/w:style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The answer discussed in the TC was &amp;quot;no&amp;quot; --- section break properties should not appear in styles. So the schema needs to be fixed here.&lt;br /&gt;
&lt;br /&gt;
== Merge consecutive tables? ==&lt;br /&gt;
&lt;br /&gt;
Consecutive tables (tables which follow each other) are automatically merged (if they have the same style). The questions is whether this is a Word bug or actually intended (for backward compatibility this is the right behavior).&lt;br /&gt;
&lt;br /&gt;
== Unicode BIDI algorithm. ==&lt;br /&gt;
Clarify how &amp;#039;&amp;#039;&amp;#039;w:rtl&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;w:ltr&amp;#039;&amp;#039;&amp;#039; is related to the Unicode BIDI algorithm ([[http://unicode.org/reports/tr9/]]).&lt;br /&gt;
&lt;br /&gt;
== Unicode Breaking Rules ==&lt;br /&gt;
Specify the line breaking rules used similar to [[http://unicode.org/reports/tr14/]], i.e. specify what wordWrap=”True” ( cf. 2.3.1.45 wordWrap (Allow Line Breaking At Character Level)) means. Fragments have already been described in “2.3.1.16 kinsoku (Use East Asian Typography Rules for First and Last Character per Line)”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AAAAAAAAAAAAAAA %BBBBBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will be displayed by WW as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
123456789.123456789.&lt;br /&gt;
&lt;br /&gt;
AAAAAAAAAAAAAAA %BBB&lt;br /&gt;
BBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
whereas according to [[http://unicode.org/reports/tr14/]] the text should be (IMHO) displayed as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
123456789.123456789.&lt;br /&gt;
&lt;br /&gt;
AAAAAAAAAAAAAAA %&lt;br /&gt;
BBBBBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clarify character classes Complex (resp. Non-Complex), East Asian. ==&lt;br /&gt;
Clarify the Unicode ranges of the terms “Complex Script”, “Non-Complex Script” and “East Asian” script used in the OOXML spec.&lt;br /&gt;
&lt;br /&gt;
== Clarify to which character classes w:b and w:bCS (and w:i resp. w:iCS, etc. ) is applied. ==&lt;br /&gt;
Especially it is not defined whether w:b or w:bCS will be applied to “shared characters”.&lt;br /&gt;
&lt;br /&gt;
== WMF, EMF, EMF+ ==&lt;br /&gt;
Specify the WMF, EMF, EMF+ file formats. (I understand the argumentation of the TC that specifying graphics format is currently not in the scope of the TC --- however maybe this is an item for the future...)&lt;br /&gt;
&lt;br /&gt;
== Graphics properties override ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Keep-Next in tables ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Evaluation order of DO/Shapes/etc. ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Use printer metrics ==&lt;br /&gt;
It is specified what a turned-on compatibility option usePrinterMetrics means. It is yet unspecified which metrics are used when the compatibility option is turned-off.&lt;br /&gt;
&lt;br /&gt;
== Specify Transitions (#403) ==&lt;br /&gt;
Currently the OpenXML specification, part 4, specify a &amp;quot;transition&amp;quot;&lt;br /&gt;
element in 4.4.1.46 for [[PresentationML]]. This transition element can contain 0&lt;br /&gt;
or 1 transition child elements, to define the transition itself, amongst&lt;br /&gt;
a list of 21. None of these 21 elements actually explain the visual&lt;br /&gt;
effect of the slide transition effect it describe.&lt;br /&gt;
&lt;br /&gt;
The consequence is that with only the specification, it is impossible to&lt;br /&gt;
implement the slide transition effect, even approximately.&lt;br /&gt;
&lt;br /&gt;
Something like this: [[http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table]]&lt;br /&gt;
&lt;br /&gt;
== Languages in field commands ==&lt;br /&gt;
&lt;br /&gt;
Similar to problems already reported in Excel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOXML_Issues&amp;diff=40300</id>
		<title>OOXML Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOXML_Issues&amp;diff=40300"/>
		<updated>2007-07-25T14:32:29Z</updated>

		<summary type="html">&lt;p&gt;Hub: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Section break properties allowed in style? ==&lt;br /&gt;
&lt;br /&gt;
Since sections breaks are paragraph properties the question is whether a sections break can really be applied using a style? In other words are the following style definitions valid?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;w:style w:type=&amp;quot;paragraph&amp;quot; w:customStyle=&amp;quot;1&amp;quot; w:styleId=&amp;quot;MyStyle&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;w:name w:val=&amp;quot;MyStyle&amp;quot; /&amp;gt; &lt;br /&gt;
  &amp;lt;w:basedOn w:val=&amp;quot;Normal&amp;quot; /&amp;gt; &lt;br /&gt;
  &amp;lt;w:pPr&amp;gt;&lt;br /&gt;
    &amp;lt;w:sectPr&amp;gt;&lt;br /&gt;
      &amp;lt;w:pgSz w:w=&amp;quot;12240&amp;quot; w:h=&amp;quot;15840&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:pgMar w:top=&amp;quot;1417&amp;quot; w:right=&amp;quot;1417&amp;quot; w:bottom=&amp;quot;1134&amp;quot; w:left=&amp;quot;1417&amp;quot; w:header=&amp;quot;708&amp;quot; w:footer=&amp;quot;708&amp;quot; w:gutter=&amp;quot;0&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:cols w:space=&amp;quot;708&amp;quot; /&amp;gt; &lt;br /&gt;
      &amp;lt;w:docGrid w:linePitch=&amp;quot;360&amp;quot; /&amp;gt; &lt;br /&gt;
    &amp;lt;/w:sectPr&amp;gt;&lt;br /&gt;
  &amp;lt;/w:pPr&amp;gt;&lt;br /&gt;
&amp;lt;/w:style&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The answer discussed in the TC was &amp;quot;no&amp;quot; --- section break properties should not appear in styles. So the schema needs to be fixed here.&lt;br /&gt;
&lt;br /&gt;
== Merge consecutive tables? ==&lt;br /&gt;
&lt;br /&gt;
Consecutive tables (tables which follow each other) are automatically merged (if they have the same style). The questions is whether this is a Word bug or actually intended (for backward compatibility this is the right behavior).&lt;br /&gt;
&lt;br /&gt;
== Unicode BIDI algorithm. ==&lt;br /&gt;
Clarify how &amp;#039;&amp;#039;&amp;#039;w:rtl&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;w:ltr&amp;#039;&amp;#039;&amp;#039; is related to the Unicode BIDI algorithm ([[http://unicode.org/reports/tr9/]]).&lt;br /&gt;
&lt;br /&gt;
== Unicode Breaking Rules ==&lt;br /&gt;
Specify the line breaking rules used similar to [[http://unicode.org/reports/tr14/]], i.e. specify what wordWrap=”True” ( cf. 2.3.1.45 wordWrap (Allow Line Breaking At Character Level)) means. Fragments have already been described in “2.3.1.16 kinsoku (Use East Asian Typography Rules for First and Last Character per Line)”.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AAAAAAAAAAAAAAA %BBBBBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will be displayed by WW as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
123456789.123456789.&lt;br /&gt;
&lt;br /&gt;
AAAAAAAAAAAAAAA %BBB&lt;br /&gt;
BBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
whereas according to [[http://unicode.org/reports/tr14/]] the text should be (IMHO) displayed as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
123456789.123456789.&lt;br /&gt;
&lt;br /&gt;
AAAAAAAAAAAAAAA %&lt;br /&gt;
BBBBBBBBBBB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clarify character classes Complex (resp. Non-Complex), East Asian. ==&lt;br /&gt;
Clarify the Unicode ranges of the terms “Complex Script”, “Non-Complex Script” and “East Asian” script used in the OOXML spec.&lt;br /&gt;
&lt;br /&gt;
== Clarify to which character classes w:b and w:bCS (and w:i resp. w:iCS, etc. ) is applied. ==&lt;br /&gt;
Especially it is not defined whether w:b or w:bCS will be applied to “shared characters”.&lt;br /&gt;
&lt;br /&gt;
== WMF, EMF, EMF+ ==&lt;br /&gt;
Specify the WMF, EMF, EMF+ file formats. (I understand the argumentation of the TC that specifying graphics format is currently not in the scope of the TC --- however maybe this is an item for the future...)&lt;br /&gt;
&lt;br /&gt;
== Graphics properties override ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Keep-Next in tables ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Evaluation order of DO/Shapes/etc. ==&lt;br /&gt;
Sample...&lt;br /&gt;
&lt;br /&gt;
== Use printer metrics ==&lt;br /&gt;
It is specified what a turned-on compatibility option usePrinterMetrics means. It is yet unspecified which metrics are used when the compatibility option is turned-off.&lt;br /&gt;
&lt;br /&gt;
== Specify Transitions (#403) ==&lt;br /&gt;
Currently the OpenXML specification, part 4, specify a &amp;quot;transition&amp;quot;&lt;br /&gt;
element in 4.4.1.46 for DrawingMl. This transition element can contain 0&lt;br /&gt;
or 1 transition child elements, to define the transition itself, amongst&lt;br /&gt;
a list of 21. None of these 21 elements actually explain the visual&lt;br /&gt;
effect of the slide transition effect it describe.&lt;br /&gt;
&lt;br /&gt;
The consequence is that with only the specification, it is impossible to&lt;br /&gt;
implement the slide transition effect, even approximately.&lt;br /&gt;
&lt;br /&gt;
Something like this: [[http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table]]&lt;br /&gt;
&lt;br /&gt;
== Languages in field commands ==&lt;br /&gt;
&lt;br /&gt;
Similar to problems already reported in Excel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Impress/Performance&amp;diff=34746</id>
		<title>Impress/Performance</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Impress/Performance&amp;diff=34746"/>
		<updated>2007-06-13T23:58:38Z</updated>

		<summary type="html">&lt;p&gt;Hub: ooo-build is now in SVN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== pngperf cws ==&lt;br /&gt;
&lt;br /&gt;
The slide sorter of [[Impress]] is quite slow in some situations. Many of these [[performance]] problems have to do with the load time of huge image files and with the work to downscale those images to the much smaller sizes needed for the slide previews. The [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=3074 CWS pngperf] utilizes the fact that some image formats were designed with this use case in mind. It also benefits from the much smaller memory footprint of preview images compared to the original size images. The CWS was started by hdu few months ago.&lt;br /&gt;
&lt;br /&gt;
=== CWS status ===&lt;br /&gt;
&lt;br /&gt;
The CWS pngperf will be in OOo 2.1.  Of course it will be integrated into an earlier developer build (probably SRC680m184).&lt;br /&gt;
&lt;br /&gt;
== Previews ==&lt;br /&gt;
&lt;br /&gt;
PNG images can be saved in interlaced mode. This increases the file size a little but it allows to load preview image up to 64 times faster. Without it you can for example end with loading few megabytes image - only to compute a small preview containing 64x64 pixels. (see [http://www.libpng.org/pub/png/pngintro.html http://www.libpng.org/pub/png/pngintro.html] for interlaced example)&lt;br /&gt;
&lt;br /&gt;
The JPEG image format contains data stored hierarchically and thus can even provide higher quality preview images than a naive downsampling of the original size image. For JPEGs that have been saved in &amp;quot;progressive mode&amp;quot; only a small part of the image file has to be read for previews.&lt;br /&gt;
&lt;br /&gt;
The pngperf cws adds necessary API for loading images in preview mode.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
So far there is API for previews, but OOo doesn&amp;#039;t use it yet.&lt;br /&gt;
&lt;br /&gt;
There exist slidesorter-demo-* patches in ooo-build [http://svn.gnome.org/viewcvs/ooo-build/trunk/patches/src680/ http://svn.gnome.org/viewcvs/ooo-build/trunk/patches/src680/] to use pngperf API, but they have still some problems (such as impress sometimes showing preview quality images in slideshow presentation). There is problem with using that API, as Sun needs to keep API/ABI compatability, and thus it is now only possible to set parameters to png/jpeg loaders by static functions.&lt;br /&gt;
&lt;br /&gt;
== Slide show load/save operations ==&lt;br /&gt;
&lt;br /&gt;
Loading or saving a presentation document is slower in OpenOffice.org than Microsoft PowerPoint.  Also, with many large images, OpenOffice.org consumes more memory and may crash.&lt;br /&gt;
&lt;br /&gt;
== TODO: ==&lt;br /&gt;
&lt;br /&gt;
* provide hints for more situations where big images are previewed&lt;br /&gt;
* many more optimizations are possible...&lt;br /&gt;
* make an extension to downsample large images (5megapixels is common from digital camera) to screen resolutions such as 1024x768 or 800x600&lt;br /&gt;
* add image downsampling to support to [[http://www.ooomacros.org/user.php#95976 Impress Photo Album Creator extension]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Impress issues]]&lt;br /&gt;
[[Category:Performance]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31928</id>
		<title>DrawingML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31928"/>
		<updated>2007-05-09T21:30:37Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DrawingML]] is the ML for graphics data in [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
It is used throughout the whole Office suite for graphics data like in [[PresentationML]] and [[WordprocessingML]]&lt;br /&gt;
&lt;br /&gt;
== Data model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shapes ===&lt;br /&gt;
&lt;br /&gt;
oox::drawingml::Shape is the main data structure for the [[DrawingML]]. It will contain many XShape all created from the drawingml.&lt;br /&gt;
&lt;br /&gt;
The class Shape, every hard shape attribute is stored there. The text will be stored in the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
The class &amp;quot;TextListStyle&amp;quot; is storing style information &lt;br /&gt;
&amp;quot;TextParagraphProperties&amp;quot; for&lt;br /&gt;
each of the ten text paragraphs (also a aggregation list style that is &lt;br /&gt;
used for sub titles)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;TextParagraphProperties&amp;quot; class is storing paragraph and character &lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31926</id>
		<title>DrawingML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31926"/>
		<updated>2007-05-09T21:26:22Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawingML is the ML for graphics data in [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
It is used throughout the whole Office suite for graphics data like in [[PresentationML]] and [[WordprocessingML]]&lt;br /&gt;
&lt;br /&gt;
== Data model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shapes ===&lt;br /&gt;
&lt;br /&gt;
oox::drawingml::Shape is the main data structure for the DrawingML. It will contain many XShape all created from the drawingml.&lt;br /&gt;
&lt;br /&gt;
The class Shape, every hard shape attribute is stored there. The text will be stored in the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
The class &amp;quot;TextListStyle&amp;quot; is storing style information &lt;br /&gt;
&amp;quot;TextParagraphProperties&amp;quot; for&lt;br /&gt;
each of the ten text paragraphs (also a aggregation list style that is &lt;br /&gt;
used for sub titles)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;TextParagraphProperties&amp;quot; class is storing paragraph and character &lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31925</id>
		<title>DrawingML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DrawingML&amp;diff=31925"/>
		<updated>2007-05-09T21:25:55Z</updated>

		<summary type="html">&lt;p&gt;Hub: more explanation from sj&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DrawingML is the ML for graphics data in [[Office Open XML]].&lt;br /&gt;
&lt;br /&gt;
It is used throughout the whole Office suite for graphics data like in [[PresentationML]] and [[WordprocessingML]]&lt;br /&gt;
&lt;br /&gt;
== Data model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shapes ===&lt;br /&gt;
&lt;br /&gt;
oox::drawingml::Shape is the main data structure for the DrawingML. It will contain many XShape all created from the drawingml.&lt;br /&gt;
&lt;br /&gt;
The class Shape, every hard shape attribute is stored there. The text will be stored in the shape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
&lt;br /&gt;
The class &amp;quot;TextListStyle&amp;quot; is storing style information &lt;br /&gt;
&amp;quot;TextParagraphProperties&amp;quot; for&lt;br /&gt;
each of the ten text paragraphs (also a aggregation list style that is &lt;br /&gt;
used for sub titles)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;TextParagraphProperties&amp;quot; class is storing paragraph and character &lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=31924</id>
		<title>PresentationML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=31924"/>
		<updated>2007-05-09T21:25:35Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* Slides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PresentationML is the XML format used by Microsoft PowerPoint 2007 and that is part of the [[Office Open XML]] specification. It defines all the structure for the presentation related data. Pure graphic data (ie the content of the slide) is described using [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
= Finding sample files =&lt;br /&gt;
&lt;br /&gt;
Use google and look for &amp;quot;download pptx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Code organisation =&lt;br /&gt;
&lt;br /&gt;
oox/source/ppt/ contain the [[PresentationML]] specific code for the importer as well as dealing with presentation specific data.&lt;br /&gt;
&lt;br /&gt;
oox/source/drawingml is for [[DrawingML]]. Most of the slide content is actually [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
== Data Model ==&lt;br /&gt;
&lt;br /&gt;
=== Importer ===&lt;br /&gt;
&lt;br /&gt;
The importer is the class PowerPointImport.&lt;br /&gt;
&lt;br /&gt;
 SlidePersistPtr mpActualSlidePersist;   &lt;br /&gt;
&lt;br /&gt;
The actual slide that is imported&lt;br /&gt;
    &lt;br /&gt;
    std::map&amp;lt; rtl::OUString, oox::drawingml::ThemePtr &amp;gt; maThemes; &lt;br /&gt;
&lt;br /&gt;
Storing every theme that is used so far, the theme is imported before the slide.&lt;br /&gt;
&lt;br /&gt;
    std::map&amp;lt; sal_uInt32, ::com::sun::star::uno::Reference&amp;lt; ::com::sun::star::animations::XAnimationNode &amp;gt; &amp;gt; maAnimNodesMap;&lt;br /&gt;
&lt;br /&gt;
Map of the Animation nodes by idea. (might change)&lt;br /&gt;
&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maDrawPages; &lt;br /&gt;
&lt;br /&gt;
Access to every page loaded so far.&lt;br /&gt;
&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maMasterPages;&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maNotesPages;&lt;br /&gt;
&lt;br /&gt;
Master pages and notes.&lt;br /&gt;
&lt;br /&gt;
=== Slides ===&lt;br /&gt;
&lt;br /&gt;
SlidePersist is the class that contain the slide data, including reference to the associated theme and color scheme. It can be a slide, a master slide, note page or handout master.&lt;br /&gt;
&lt;br /&gt;
 com::sun::star::uno::Reference&amp;lt; com::sun::star::drawing::XDrawPage &amp;gt; mxPage; &lt;br /&gt;
&lt;br /&gt;
(the corresponding page where the shapes are to be inserted)&lt;br /&gt;
        &lt;br /&gt;
    oox::drawingml::ThemePtr mpThemePtr; &lt;br /&gt;
&lt;br /&gt;
(the actual theme that is used for this page)&lt;br /&gt;
        &lt;br /&gt;
    oox::drawingml::ClrSchemePtr mpClrSchemePtr; &lt;br /&gt;
&lt;br /&gt;
(the local color scheme (if any))&lt;br /&gt;
&lt;br /&gt;
    SlidePersistPtr mpMasterPagePtr; &lt;br /&gt;
&lt;br /&gt;
This is the masterpage of this slide, it is only set if this slide is not a master by itself&lt;br /&gt;
&lt;br /&gt;
    // and this is important for you, each slide is containing four TextListStyles,&lt;br /&gt;
    // tilte, master, body and notes, the TextListStyle is storing information&lt;br /&gt;
    // about the default paragraph/character formatting&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maTitleTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maBodyTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maNotesTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maOtherTextStylePtr;&lt;br /&gt;
&lt;br /&gt;
so when importing a shape, we have access to the corresponding theme and &lt;br /&gt;
text styles.&lt;br /&gt;
&lt;br /&gt;
See [[DrawingML]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== XModel ===&lt;br /&gt;
&lt;br /&gt;
The objects itself are created in &lt;br /&gt;
SlideFragmentHandler::~SlideFragmentHandler&lt;br /&gt;
&lt;br /&gt;
    while( aIter != rShapes.end() )&lt;br /&gt;
        (*aIter++)-&amp;gt;addShape( mxFilter-&amp;gt;getModel(), xShapes );&lt;br /&gt;
&lt;br /&gt;
See [http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XModel.html XModel].&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
Animation are heavily based on [[SMIL]], much like the internals of Impress. There are 3 parts: slide transition, slide timing and shape animations&lt;br /&gt;
&lt;br /&gt;
==== Transitions ====&lt;br /&gt;
&lt;br /&gt;
Transition in OOx and OpenDocument are not exactly the same but there is almost a 1 to 1 mapping. They are both based on [[SMIL]] transitions. See also: http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: the XML token&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OOo Status&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;es or &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;o. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionType.hpp&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SubType&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionSubType.hpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! PowerPoint 2007 Name || ID || Param || OOo Status || Type || Subtype || Note&lt;br /&gt;
|-&lt;br /&gt;
| blinds  || blinds  || vert || Y || BLINDSWIPE       || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || BLINDSWIPE       || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| checker || checker || vert || Y || CHECKERBOARDWIPE || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || CHECKERBOARDWIPE || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| comb    || comb    || vert || Y || PUSHWIPE         || COMBVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || PUSHWIPE         || COMBHORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| cover   || cover   ||      || Y || SLIDEWIPE        ||&lt;br /&gt;
|-&lt;br /&gt;
| pull    || pull    ||      || Y || SLIDEWIPE        ||  (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     ||      || N ||                  ||                 || the bin filter ignore this too. the closest thing is not transition&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     || thruBlk || N || FADE          || FADEOVERCOLOR   || will be slower than in PPT. But the binfilter ignore it too.&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    ||      || Y || FADE             || CROSSFADE&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    || thruBlk || Y || FADE          || FADEOVERCOLOR&lt;br /&gt;
|-&lt;br /&gt;
| push    || push    || d    || Y || PUSHWIPE         || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || PUSHWIPE         || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || PUSHWIPE         || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || PUSHWIPE         || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| wipe    || wipe    || d    || Y || BARWIPE          || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || BARWIPE          || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || BARWIPE          || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || BARWIPE          || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| split   || split   ||      || Y || BARNDOORWIPE     || HORIZONTAL or VERTICAL (reverse for IN)&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;1&amp;quot;  || Y || PINWHEELWIPE     || ONEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;2&amp;quot;  || Y || PINWHEELWIPE     || TWOBLADEVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;3&amp;quot;  || Y || PINWHEELWIPE     || THREEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;4&amp;quot;  || Y || PINWHEELWIPE     || FOURBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;8&amp;quot;  || Y || PINWHEELWIPE     || EIGHTBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || *    || Y || PINWHEELWIPE     ||                 || the number is converted to 1, 2, 3, 4, 8 depending on the match. I don&amp;#039;t see how to get different numbers from PPT2007&lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || horz || Y || RANDOMBARWIPE || HORIZONTAL &lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || vert || Y || RANDOMBARWIPE || VERTICAL &lt;br /&gt;
|-&lt;br /&gt;
| circle  || circle  ||      || Y || ELLIPSEWIPE      || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| diamond || diamond ||      || Y || IRISWIPE         || DIAMOND&lt;br /&gt;
|-&lt;br /&gt;
| dissolve || dissolve ||    || Y || DISSOLVE         || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| newsflash || newsflash ||  || N ||                  ||                || The binfilter ignore it too. It seems to use the previous transition instead. Or maybe it is just a coincidence that it is crossbar.&lt;br /&gt;
|-&lt;br /&gt;
| plus    || plus    ||      || Y || FOURBOXWIPE      || CORNERSOUT     || &lt;br /&gt;
|-&lt;br /&gt;
| random  || random  ||      || Y || RANDOM           || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| wedge   || wedge   ||      || Y || FANWIPE          || CENTERTOP&lt;br /&gt;
|-&lt;br /&gt;
| zoom    || zoom    ||      || Y || ZOOM             || DEFAULT        || Couldn&amp;#039;t find it in PPT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are also some limitations: OOo does not seem to support &amp;quot;stopping sound&amp;quot;. Neither does it support embedded sound (see below).&lt;br /&gt;
&lt;br /&gt;
==== Timing ====&lt;br /&gt;
&lt;br /&gt;
==== Shape Animations ====&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&lt;br /&gt;
[[Office Open XML]] specify that sound can be embedded in the file (in the container) and use relationships to refer to it. Unfortunately as of today OpenOffice is unable to do so. To that effect sounds are copied in the gallery and opened from there. For standard built-in sound, just refer to it. For none built-in sound, discard it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=31923</id>
		<title>PresentationML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=31923"/>
		<updated>2007-05-09T21:25:07Z</updated>

		<summary type="html">&lt;p&gt;Hub: more explanation from sj&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PresentationML is the XML format used by Microsoft PowerPoint 2007 and that is part of the [[Office Open XML]] specification. It defines all the structure for the presentation related data. Pure graphic data (ie the content of the slide) is described using [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
= Finding sample files =&lt;br /&gt;
&lt;br /&gt;
Use google and look for &amp;quot;download pptx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Code organisation =&lt;br /&gt;
&lt;br /&gt;
oox/source/ppt/ contain the [[PresentationML]] specific code for the importer as well as dealing with presentation specific data.&lt;br /&gt;
&lt;br /&gt;
oox/source/drawingml is for [[DrawingML]]. Most of the slide content is actually [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
== Data Model ==&lt;br /&gt;
&lt;br /&gt;
=== Importer ===&lt;br /&gt;
&lt;br /&gt;
The importer is the class PowerPointImport.&lt;br /&gt;
&lt;br /&gt;
 SlidePersistPtr mpActualSlidePersist;   &lt;br /&gt;
&lt;br /&gt;
The actual slide that is imported&lt;br /&gt;
    &lt;br /&gt;
    std::map&amp;lt; rtl::OUString, oox::drawingml::ThemePtr &amp;gt; maThemes; &lt;br /&gt;
&lt;br /&gt;
Storing every theme that is used so far, the theme is imported before the slide.&lt;br /&gt;
&lt;br /&gt;
    std::map&amp;lt; sal_uInt32, ::com::sun::star::uno::Reference&amp;lt; ::com::sun::star::animations::XAnimationNode &amp;gt; &amp;gt; maAnimNodesMap;&lt;br /&gt;
&lt;br /&gt;
Map of the Animation nodes by idea. (might change)&lt;br /&gt;
&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maDrawPages; &lt;br /&gt;
&lt;br /&gt;
Access to every page loaded so far.&lt;br /&gt;
&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maMasterPages;&lt;br /&gt;
    std::vector&amp;lt; SlidePersistPtr &amp;gt; maNotesPages;&lt;br /&gt;
&lt;br /&gt;
Master pages and notes.&lt;br /&gt;
&lt;br /&gt;
=== Slides ===&lt;br /&gt;
&lt;br /&gt;
SlidePersist is the class that contain the slide data, including reference to the associated theme and color scheme. It can be a slide, a master slide, note page or handout master.&lt;br /&gt;
&lt;br /&gt;
 com::sun::star::uno::Reference&amp;lt; com::sun::star::drawing::XDrawPage &amp;gt; mxPage; &lt;br /&gt;
&lt;br /&gt;
(the corresponding page where the shapes are to be inserted)&lt;br /&gt;
        &lt;br /&gt;
    oox::drawingml::ThemePtr mpThemePtr; &lt;br /&gt;
&lt;br /&gt;
(the actual theme that is used for this page)&lt;br /&gt;
        &lt;br /&gt;
    oox::drawingml::ClrSchemePtr mpClrSchemePtr; &lt;br /&gt;
&lt;br /&gt;
(the local color scheme (if any))&lt;br /&gt;
&lt;br /&gt;
    SlidePersistPtr mpMasterPagePtr; &lt;br /&gt;
&lt;br /&gt;
This is the masterpage of this slide, it is only set if this slide is not a master by itself&lt;br /&gt;
&lt;br /&gt;
    // and this is important for you, each slide is containing four TextListStyles,&lt;br /&gt;
    // tilte, master, body and notes, the TextListStyle is storing information&lt;br /&gt;
    // about the default paragraph/character formatting&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maTitleTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maBodyTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maNotesTextStylePtr;&lt;br /&gt;
    oox::drawingml::TextListStylePtr  maOtherTextStylePtr;&lt;br /&gt;
&lt;br /&gt;
so when importing a shape, we have access to the corresponding theme and &lt;br /&gt;
text styles.&lt;br /&gt;
&lt;br /&gt;
=== XModel ===&lt;br /&gt;
&lt;br /&gt;
The objects itself are created in &lt;br /&gt;
SlideFragmentHandler::~SlideFragmentHandler&lt;br /&gt;
&lt;br /&gt;
    while( aIter != rShapes.end() )&lt;br /&gt;
        (*aIter++)-&amp;gt;addShape( mxFilter-&amp;gt;getModel(), xShapes );&lt;br /&gt;
&lt;br /&gt;
See [http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XModel.html XModel].&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
Animation are heavily based on [[SMIL]], much like the internals of Impress. There are 3 parts: slide transition, slide timing and shape animations&lt;br /&gt;
&lt;br /&gt;
==== Transitions ====&lt;br /&gt;
&lt;br /&gt;
Transition in OOx and OpenDocument are not exactly the same but there is almost a 1 to 1 mapping. They are both based on [[SMIL]] transitions. See also: http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: the XML token&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OOo Status&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;es or &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;o. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionType.hpp&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SubType&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionSubType.hpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! PowerPoint 2007 Name || ID || Param || OOo Status || Type || Subtype || Note&lt;br /&gt;
|-&lt;br /&gt;
| blinds  || blinds  || vert || Y || BLINDSWIPE       || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || BLINDSWIPE       || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| checker || checker || vert || Y || CHECKERBOARDWIPE || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || CHECKERBOARDWIPE || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| comb    || comb    || vert || Y || PUSHWIPE         || COMBVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || PUSHWIPE         || COMBHORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| cover   || cover   ||      || Y || SLIDEWIPE        ||&lt;br /&gt;
|-&lt;br /&gt;
| pull    || pull    ||      || Y || SLIDEWIPE        ||  (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     ||      || N ||                  ||                 || the bin filter ignore this too. the closest thing is not transition&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     || thruBlk || N || FADE          || FADEOVERCOLOR   || will be slower than in PPT. But the binfilter ignore it too.&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    ||      || Y || FADE             || CROSSFADE&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    || thruBlk || Y || FADE          || FADEOVERCOLOR&lt;br /&gt;
|-&lt;br /&gt;
| push    || push    || d    || Y || PUSHWIPE         || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || PUSHWIPE         || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || PUSHWIPE         || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || PUSHWIPE         || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| wipe    || wipe    || d    || Y || BARWIPE          || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || BARWIPE          || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || BARWIPE          || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || BARWIPE          || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| split   || split   ||      || Y || BARNDOORWIPE     || HORIZONTAL or VERTICAL (reverse for IN)&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;1&amp;quot;  || Y || PINWHEELWIPE     || ONEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;2&amp;quot;  || Y || PINWHEELWIPE     || TWOBLADEVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;3&amp;quot;  || Y || PINWHEELWIPE     || THREEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;4&amp;quot;  || Y || PINWHEELWIPE     || FOURBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;8&amp;quot;  || Y || PINWHEELWIPE     || EIGHTBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || *    || Y || PINWHEELWIPE     ||                 || the number is converted to 1, 2, 3, 4, 8 depending on the match. I don&amp;#039;t see how to get different numbers from PPT2007&lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || horz || Y || RANDOMBARWIPE || HORIZONTAL &lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || vert || Y || RANDOMBARWIPE || VERTICAL &lt;br /&gt;
|-&lt;br /&gt;
| circle  || circle  ||      || Y || ELLIPSEWIPE      || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| diamond || diamond ||      || Y || IRISWIPE         || DIAMOND&lt;br /&gt;
|-&lt;br /&gt;
| dissolve || dissolve ||    || Y || DISSOLVE         || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| newsflash || newsflash ||  || N ||                  ||                || The binfilter ignore it too. It seems to use the previous transition instead. Or maybe it is just a coincidence that it is crossbar.&lt;br /&gt;
|-&lt;br /&gt;
| plus    || plus    ||      || Y || FOURBOXWIPE      || CORNERSOUT     || &lt;br /&gt;
|-&lt;br /&gt;
| random  || random  ||      || Y || RANDOM           || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| wedge   || wedge   ||      || Y || FANWIPE          || CENTERTOP&lt;br /&gt;
|-&lt;br /&gt;
| zoom    || zoom    ||      || Y || ZOOM             || DEFAULT        || Couldn&amp;#039;t find it in PPT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are also some limitations: OOo does not seem to support &amp;quot;stopping sound&amp;quot;. Neither does it support embedded sound (see below).&lt;br /&gt;
&lt;br /&gt;
==== Timing ====&lt;br /&gt;
&lt;br /&gt;
==== Shape Animations ====&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&lt;br /&gt;
[[Office Open XML]] specify that sound can be embedded in the file (in the container) and use relationships to refer to it. Unfortunately as of today OpenOffice is unable to do so. To that effect sounds are copied in the gallery and opened from there. For standard built-in sound, just refer to it. For none built-in sound, discard it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=31140</id>
		<title>Office Open XML/Legacy Implementation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Office_Open_XML/Legacy_Implementation&amp;diff=31140"/>
		<updated>2007-05-01T15:17:37Z</updated>

		<summary type="html">&lt;p&gt;Hub: /* OOXML Basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOXML Basics =&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Office Open XML&amp;quot; is an XML based file format that has been published as [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA-376]. It is used as default file format by Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are plans to support this file format in OpenOffice.org for interoperate with Microsoft Office 2007.&lt;br /&gt;
&lt;br /&gt;
There are 3 major types of formats&lt;br /&gt;
&lt;br /&gt;
* [[WordprocessingML]] - For word processor documents (file extensions may be docx, docm)&lt;br /&gt;
* [[SpreadsheetML]] - For spreadsheet documents (file extensions may be xlsx, xlsm)&lt;br /&gt;
* [[PresentationML]] - For presentation documents (file extensions may be pptx, pptm)&lt;br /&gt;
* [[DrawingML]] - Used by other markup language to represent graphics data.&lt;br /&gt;
* [[VML]] - A legacy vector markup.&lt;br /&gt;
&lt;br /&gt;
== Packaging Conventions ==&lt;br /&gt;
OpenXML document is a package that consists of a flat collection of &amp;#039;&amp;#039;&amp;#039;&amp;quot;parts&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  Each &amp;quot;part&amp;quot; has a case-&amp;#039;&amp;#039;insensitive&amp;#039;&amp;#039; part name that consists of a slash (/) delimited sequence of segment names such as &amp;quot;/pres/slides/slide1.xml&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For the most part, the ZIP compression is used to package the parts, in which case the term &amp;#039;&amp;#039;&amp;#039;&amp;quot;package&amp;quot;&amp;#039;&amp;#039;&amp;#039; refers to the ZIP archive, and the parts refer to the individual files archived within.  The part name in this case is the file path within the archive.&lt;br /&gt;
&lt;br /&gt;
Each part also has a &amp;#039;&amp;#039;&amp;#039;content type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;/[Content_Types].xml&amp;#039;&amp;#039;&amp;#039; provides the content type of each part within the archive.&lt;br /&gt;
&lt;br /&gt;
== Relationships ==&lt;br /&gt;
Packages and parts can contains &amp;#039;&amp;#039;&amp;#039;explicit relationships&amp;#039;&amp;#039;&amp;#039; to other parts as well as to external resources.  Every explicit relationship has an ID and a type, and relationship types are named using URIs.&lt;br /&gt;
&lt;br /&gt;
The set of explicit relationships for each package or part is stored in a relationship part whose name (or path) follows a specific convention e.g. the relationship part for a part called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/c.xml&amp;quot;&amp;#039;&amp;#039;&amp;#039; is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/a/b/_rels/c.xml.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.  As a special case, the relationship part for the package as a whole is called &amp;#039;&amp;#039;&amp;#039;&amp;quot;/_rels/.rels&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
= OO.o Implementation =&lt;br /&gt;
There is some code in the oox module ([[OOX]]) from the [[Xml]] project. The [[CWS]] is xmlfilter02 in SRC680. ([http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 view the workspace on EIS])&lt;br /&gt;
&lt;br /&gt;
To fetch the oox code from CVS (using CVS_ROOT is set properly):&lt;br /&gt;
&lt;br /&gt;
 cvs co -r cws_src680_xmlfilter02 -d oox xml/oox&lt;br /&gt;
&lt;br /&gt;
One important note: we use the term &amp;#039;&amp;#039;&amp;#039;fragment&amp;#039;&amp;#039;&amp;#039; in the name of our source files to correspond with what the standard calls &amp;#039;&amp;#039;&amp;#039;part&amp;#039;&amp;#039;&amp;#039;.  For instance, the source file that contains class definition that handles the workbook part in SpreadsheetML is called workbookfragment.cxx.  This convention is prevalent across all application types within [[oox]] module.&lt;br /&gt;
&lt;br /&gt;
Bonsai is also convenient to follow the changes:&lt;br /&gt;
&lt;br /&gt;
[http://www.go-oo.org/bonsai/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=cws_src680_xmlfilter02&amp;amp;branchtype=match&amp;amp;dir=xml%2Foox&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=week&amp;amp;mindate=&amp;amp;maxdate=&amp;amp;cvsroot=%2Fvar%2Fcvsup  the changes done in the last 2 weeks]&lt;br /&gt;
&lt;br /&gt;
== Implementation Generalities == &lt;br /&gt;
&lt;br /&gt;
The whole [[OOX]] filter makes use of the new [[FastParser]] service to implement an event driven [[SAX]] parser.&lt;br /&gt;
&lt;br /&gt;
== Various Resources ==&lt;br /&gt;
&lt;br /&gt;
* http://blogs.sun.com/GullFOSS/entry/office_open_xml_import_filter&lt;br /&gt;
* [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fxmlfilter02 CWS on EIS]&lt;br /&gt;
* [http://www.ecma-international.org/publications/standards/Ecma-376.htm ECMA published standard]&lt;br /&gt;
* [http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm Ecma Office Open XML File Formats Standard]&lt;br /&gt;
* [http://blogs.msdn.com/brian_jones/archive/2005/06/20/430892.aspx Brian Jones introduction to the Office 12 File Format]&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=31139</id>
		<title>Oox</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oox&amp;diff=31139"/>
		<updated>2007-05-01T15:16:59Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stands for [[Office Open XML]]. The name of the module that handle [[Office Open XML]] import. Part of the [[Xml]] project.&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
&lt;br /&gt;
The [[WordprocessingML]] importer is part of a different effort in writerfilter2 where the refactoring of the binary and RTF filter also takes place.&lt;br /&gt;
&lt;br /&gt;
= Directory Structure =&lt;br /&gt;
== core ==&lt;br /&gt;
This directory includes common code for all filters.&lt;br /&gt;
&lt;br /&gt;
=== AttributeList (class) ===&lt;br /&gt;
Provides access to attribute values of an element.  &amp;#039;&amp;#039;&amp;#039;AttributeList&amp;#039;&amp;#039;&amp;#039; wraps a &amp;#039;&amp;#039;com.sun.star.xml.sax.XFastAttributeList&amp;#039;&amp;#039; object, and provides convenience functions that convert the string value of an attribute to various other data types.  This class is usually used as a local variable declared with an instance of [[XFastAttributeList]] passed from the [[FastParser]] instance.&lt;br /&gt;
&lt;br /&gt;
=== FragmentHandler (class) ===&lt;br /&gt;
Top-most parent class that handles fragments.  In most cases this class handles all nested contexts for increased performance.  This class implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== RelationsFragmentHandler (class) ===&lt;br /&gt;
Handles loading of relationships fragments ( &amp;#039;&amp;#039;&amp;#039;/*/_rels/*.rels&amp;#039;&amp;#039;&amp;#039; ).  Like the FragmentHandler class, this class also implements [[XFastDocumentHandler]] interface.&lt;br /&gt;
&lt;br /&gt;
=== ImportBase (class) ===&lt;br /&gt;
The base class for application specific import filters, currently sub-classed by &amp;#039;&amp;#039;&amp;#039;oox::ppt::PowerPointImport&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;oox::xls::ExcelFilter&amp;#039;&amp;#039;&amp;#039;.  It implements [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XImporter.html XImporter] and [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XFilter.html XFilter] interfaces.&lt;br /&gt;
&lt;br /&gt;
== drawingml ==&lt;br /&gt;
== ppt ==&lt;br /&gt;
&lt;br /&gt;
ppt contain the [[PresentationML]] parsing code.&lt;br /&gt;
&lt;br /&gt;
== token ==&lt;br /&gt;
&lt;br /&gt;
The token list is generated by parsing the XML Schemas. Then gentoken.pl will use gperf to generate a perfect hash for fast parsing of known tokens. All the token are dispatched through integer numbers.&lt;br /&gt;
&lt;br /&gt;
== xls ==&lt;br /&gt;
This directory includes code specific to parse [[SpreadsheetML]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Source_directories]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Export_filter_framework&amp;diff=31138</id>
		<title>Export filter framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Export_filter_framework&amp;diff=31138"/>
		<updated>2007-05-01T15:15:09Z</updated>

		<summary type="html">&lt;p&gt;Hub: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The best thing to do in order to have a good understanding of what OO.o does when you save or export a file is to read the relevant code.  A good place to start would be the &amp;#039;&amp;#039;&amp;#039;SfxObjectShell::SaveTo_Impl(...)&amp;#039;&amp;#039;&amp;#039; method in &amp;#039;&amp;#039;&amp;#039;sfx2/source/doc/objstor.cxx&amp;#039;&amp;#039;&amp;#039;.  This method depicts the overall flow of the file save / file export operation, so reading that code will give you a good overview of the process.  Beware, though, that the SaveTo_Impl method has roughly &amp;#039;&amp;#039;600-lines of code&amp;#039;&amp;#039; in it.  So, tracing the code there will probably drain a lot of your energy.  Take a lot of vitamin before you start! :-)&lt;br /&gt;
&lt;br /&gt;
The basic export framework is set by class &amp;#039;&amp;#039;&amp;#039;SfxObjectShell&amp;#039;&amp;#039;&amp;#039;, which is sub-classed by the document shell class of each application (Writer, Calc and Draw/Impress) to implement several virtual functions of SfxObjectShell.  Class &amp;#039;&amp;#039;&amp;#039;SfxMedium&amp;#039;&amp;#039;&amp;#039; represents the document to be saved, and class &amp;#039;&amp;#039;&amp;#039;SfxFilter&amp;#039;&amp;#039;&amp;#039; represents the filter that saves the document.&lt;br /&gt;
&lt;br /&gt;
The export process also makes the following distinction.&lt;br /&gt;
&lt;br /&gt;
* Native OO.o format (such as ODF) - call &amp;#039;&amp;#039;&amp;#039;SfxObjectShell::SaveAsOwnFormat(...)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Non-native, &amp;quot;alien&amp;quot; format - call &amp;#039;&amp;#039;&amp;#039;SfxObjectShell::ExportTo(...)&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;SfxObjectShell::ConvertTo(...)&amp;#039;&amp;#039;&amp;#039;, the latter being a virtual function that is overwritten by each application.&lt;br /&gt;
&lt;br /&gt;
= Export to external (alien) format =&lt;br /&gt;
This probably covers the vast majority of the export filters.  The main flow moves to either &amp;#039;&amp;#039;&amp;#039;ExportTo(...)&amp;#039;&amp;#039;&amp;#039; in SfxObjectShell, or &amp;#039;&amp;#039;&amp;#039;ConvertTo(...)&amp;#039;&amp;#039;&amp;#039; in the same class.  ConvertTo(...) is a virtual function overwritten by the current application&amp;#039;s document shell class; &amp;#039;&amp;#039;&amp;#039;ScDocShell&amp;#039;&amp;#039;&amp;#039; for Calc, &amp;#039;&amp;#039;&amp;#039;SwDocShell&amp;#039;&amp;#039;&amp;#039; for Writer, and &amp;#039;&amp;#039;&amp;#039;sd::DrawDocShell&amp;#039;&amp;#039;&amp;#039; for Draw/Impress.  The distinction between these two calls is unclear; it is differentiated based on whether or not the filter has flag &amp;lt;code&amp;gt;SFX_FILTER_STARONEFILTER&amp;lt;/code&amp;gt;, but it&amp;#039;s not clear what that flag means.&lt;br /&gt;
&lt;br /&gt;
== Zip-based package format ==&lt;br /&gt;
TODO: fill it.&lt;br /&gt;
&lt;br /&gt;
[[Category: Office Open XML]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=30544</id>
		<title>PresentationML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=30544"/>
		<updated>2007-04-20T21:01:03Z</updated>

		<summary type="html">&lt;p&gt;Hub: final polish of transition list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PresentationML is the XML format used by Microsoft PowerPoint 2007 and that is part of the [[Office Open XML]] specification. It defines all the structure for the presentation related data. Pure graphic data (ie the content of the slide) is described using [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
= Finding sample files =&lt;br /&gt;
&lt;br /&gt;
Use google and look for &amp;quot;download pptx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Code organisation =&lt;br /&gt;
&lt;br /&gt;
oox/source/ppt/ contain the [[PresentationML]] specific code for the importer as well as dealing with presentation specific data.&lt;br /&gt;
&lt;br /&gt;
oox/source/drawingml is for [[DrawingML]]. Most of the slide content is actually [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
== Data Model ==&lt;br /&gt;
&lt;br /&gt;
SlidePersist is the class that contain the slide data, including reference to the associated theme and color scheme. It can be a slide, a master slide, note page or handout master.&lt;br /&gt;
&lt;br /&gt;
It is all stored in some way in a [http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XModel.html XModel].&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
Animation are heavily based on [[SMIL]], much like the internals of Impress. There are 3 parts: slide transition, slide timing and shape animations&lt;br /&gt;
&lt;br /&gt;
==== Transitions ====&lt;br /&gt;
&lt;br /&gt;
Transition in OOx and OpenDocument are not exactly the same but there is almost a 1 to 1 mapping. They are both based on [[SMIL]] transitions. See also: http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: the XML token&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OOo Status&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;es or &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;o. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionType.hpp&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SubType&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionSubType.hpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! PowerPoint 2007 Name || ID || Param || OOo Status || Type || Subtype || Note&lt;br /&gt;
|-&lt;br /&gt;
| blinds  || blinds  || vert || Y || BLINDSWIPE       || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || BLINDSWIPE       || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| checker || checker || vert || Y || CHECKERBOARDWIPE || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || CHECKERBOARDWIPE || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| comb    || comb    || vert || Y || PUSHWIPE         || COMBVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || PUSHWIPE         || COMBHORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| cover   || cover   ||      || Y || SLIDEWIPE        ||&lt;br /&gt;
|-&lt;br /&gt;
| pull    || pull    ||      || Y || SLIDEWIPE        ||  (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     ||      || N ||                  ||                 || the bin filter ignore this too. the closest thing is not transition&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     || thruBlk || N || FADE          || FADEOVERCOLOR   || will be slower than in PPT. But the binfilter ignore it too.&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    ||      || Y || FADE             || CROSSFADE&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    || thruBlk || Y || FADE          || FADEOVERCOLOR&lt;br /&gt;
|-&lt;br /&gt;
| push    || push    || d    || Y || PUSHWIPE         || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || PUSHWIPE         || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || PUSHWIPE         || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || PUSHWIPE         || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| wipe    || wipe    || d    || Y || BARWIPE          || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || BARWIPE          || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || BARWIPE          || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || BARWIPE          || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| split   || split   ||      || Y || BARNDOORWIPE     || HORIZONTAL or VERTICAL (reverse for IN)&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;1&amp;quot;  || Y || PINWHEELWIPE     || ONEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;2&amp;quot;  || Y || PINWHEELWIPE     || TWOBLADEVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;3&amp;quot;  || Y || PINWHEELWIPE     || THREEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;4&amp;quot;  || Y || PINWHEELWIPE     || FOURBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;8&amp;quot;  || Y || PINWHEELWIPE     || EIGHTBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || *    || Y || PINWHEELWIPE     ||                 || the number is converted to 1, 2, 3, 4, 8 depending on the match. I don&amp;#039;t see how to get different numbers from PPT2007&lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || horz || Y || RANDOMBARWIPE || HORIZONTAL &lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || vert || Y || RANDOMBARWIPE || VERTICAL &lt;br /&gt;
|-&lt;br /&gt;
| circle  || circle  ||      || Y || ELLIPSEWIPE      || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| diamond || diamond ||      || Y || IRISWIPE         || DIAMOND&lt;br /&gt;
|-&lt;br /&gt;
| dissolve || dissolve ||    || Y || DISSOLVE         || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| newsflash || newsflash ||  || N ||                  ||                || The binfilter ignore it too. It seems to use the previous transition instead. Or maybe it is just a coincidence that it is crossbar.&lt;br /&gt;
|-&lt;br /&gt;
| plus    || plus    ||      || Y || FOURBOXWIPE      || CORNERSOUT     || &lt;br /&gt;
|-&lt;br /&gt;
| random  || random  ||      || Y || RANDOM           || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| wedge   || wedge   ||      || Y || FANWIPE          || CENTERTOP&lt;br /&gt;
|-&lt;br /&gt;
| zoom    || zoom    ||      || Y || ZOOM             || DEFAULT        || Couldn&amp;#039;t find it in PPT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are also some limitations: OOo does not seem to support &amp;quot;stopping sound&amp;quot;. Neither does it support embedded sound (see below).&lt;br /&gt;
&lt;br /&gt;
==== Timing ====&lt;br /&gt;
&lt;br /&gt;
==== Shape Animations ====&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&lt;br /&gt;
[[Office Open XML]] specify that sound can be embedded in the file (in the container) and use relationships to refer to it. Unfortunately as of today OpenOffice is unable to do so. To that effect sounds are copied in the gallery and opened from there. For standard built-in sound, just refer to it. For none built-in sound, discard it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=30538</id>
		<title>PresentationML</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=PresentationML&amp;diff=30538"/>
		<updated>2007-04-20T19:04:28Z</updated>

		<summary type="html">&lt;p&gt;Hub: more transitions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PresentationML is the XML format used by Microsoft PowerPoint 2007 and that is part of the [[Office Open XML]] specification. It defines all the structure for the presentation related data. Pure graphic data (ie the content of the slide) is described using [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
= Finding sample files =&lt;br /&gt;
&lt;br /&gt;
Use google and look for &amp;quot;download pptx&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Code organisation =&lt;br /&gt;
&lt;br /&gt;
oox/source/ppt/ contain the [[PresentationML]] specific code for the importer as well as dealing with presentation specific data.&lt;br /&gt;
&lt;br /&gt;
oox/source/drawingml is for [[DrawingML]]. Most of the slide content is actually [[DrawingML]].&lt;br /&gt;
&lt;br /&gt;
== Data Model ==&lt;br /&gt;
&lt;br /&gt;
SlidePersist is the class that contain the slide data, including reference to the associated theme and color scheme. It can be a slide, a master slide, note page or handout master.&lt;br /&gt;
&lt;br /&gt;
It is all stored in some way in a [http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XModel.html XModel].&lt;br /&gt;
&lt;br /&gt;
=== Animation ===&lt;br /&gt;
&lt;br /&gt;
Animation are heavily based on [[SMIL]], much like the internals of Impress. There are 3 parts: slide transition, slide timing and shape animations&lt;br /&gt;
&lt;br /&gt;
==== Transitions ====&lt;br /&gt;
&lt;br /&gt;
Transition in OOx and OpenDocument are not exactly the same but there is almost a 1 to 1 mapping. &lt;br /&gt;
&lt;br /&gt;
See also: http://www.w3.org/TR/2005/REC-SMIL2-20050107/smil-transitions.html#Table%201:%20Taxonomy%20Table&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: the XML token&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OOo Status&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;es or &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;o. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionType.hpp&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SubType&amp;#039;&amp;#039;&amp;#039;: the type as defined in com/sun/star/animations/TransitionSubType.hpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! PowerPoint 2007 Name || ID || Param || OOo Status || Type || Subtype || Note&lt;br /&gt;
|-&lt;br /&gt;
| blinds  || blinds  || vert || Y || BLINDSWIPE       || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || BLINDSWIPE       || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| checker || checker || vert || Y || CHECKERBOARDWIPE || VERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || CHECKERBOARDWIPE || HORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| comb    || comb    || vert || Y || PUSHWIPE         || COMBVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || horz || Y || PUSHWIPE         || COMBHORIZONTAL&lt;br /&gt;
|-&lt;br /&gt;
| cover   || cover   ||      || Y || SLIDEWIPE        ||&lt;br /&gt;
|-&lt;br /&gt;
| pull    || pull    ||      || Y || SLIDEWIPE        ||  (reversed)&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     ||      || N || FADE             || CROSSFADE&lt;br /&gt;
|-&lt;br /&gt;
| cut     || cut     || thruBlk || N || FADE          || FADEOVERCOLOR&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    ||      || Y || FADE             || CROSSFADE&lt;br /&gt;
|-&lt;br /&gt;
| fade    || fade    || thruBlk || Y || FADE          || FADEOVERCOLOR&lt;br /&gt;
|-&lt;br /&gt;
| push    || push    || d    || Y || PUSHWIPE         || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || PUSHWIPE         || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || PUSHWIPE         || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || PUSHWIPE         || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| wipe    || wipe    || d    || Y || BARWIPE          || FROMTOP&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || l    || Y || BARWIPE          || FROMLEFT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || r    || Y || BARWIPE          || FROMRIGHT&lt;br /&gt;
|-&lt;br /&gt;
|         ||         || u    || Y || BARWIPE          || FROMBOTTOM&lt;br /&gt;
|-&lt;br /&gt;
| split   || split   ||      || Y || BARNDOORWIPE     || HORIZONTAL or VERTICAL (reverse for IN)&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;1&amp;quot;  || Y || PINWHEELWIPE     || ONEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;2&amp;quot;  || Y || PINWHEELWIPE     || TWOBLADEVERTICAL&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;3&amp;quot;  || Y || PINWHEELWIPE     || THREEBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;4&amp;quot;  || Y || PINWHEELWIPE     || FOURBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || &amp;quot;8&amp;quot;  || Y || PINWHEELWIPE     || EIGHTBLADE&lt;br /&gt;
|-&lt;br /&gt;
| wheel   || wheel   || *    || Y || PINWHEELWIPE     ||                 || the number is converted to 1, 2, 3, 4, 8 depending on the match&lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || horz || Y || RANDOMBARWIPE || HORIZONTAL &lt;br /&gt;
|-&lt;br /&gt;
| randomBar || randomBar || vert || Y || RANDOMBARWIPE || VERTICAL &lt;br /&gt;
|-&lt;br /&gt;
| circle  || circle  ||      || Y || ELLIPSEWIPE      || CIRCLE&lt;br /&gt;
|-&lt;br /&gt;
| diamond || diamond ||      || Y || IRISWIPE         || DIAMOND&lt;br /&gt;
|-&lt;br /&gt;
| dissolve || dissolve ||    || Y || DISSOLVE         || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| newsflash || newsflash ||  || N ||                  ||&lt;br /&gt;
|-&lt;br /&gt;
| plus    || plus    ||      || Y || FOURBOXWIPE      || CORNERSOUT     || &lt;br /&gt;
|-&lt;br /&gt;
| random  || random  ||      || Y || RANDOM           || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
| wedge   || wedge   ||      || Y || FANWIPE          || CENTERTOP&lt;br /&gt;
|-&lt;br /&gt;
| zoom    || zoom    ||      || Y || ZOOM             || DEFAULT&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are also some limitations: OOo does not seem to support &amp;quot;stopping sound&amp;quot;. Neither does it support embedded sound (see below).&lt;br /&gt;
&lt;br /&gt;
==== Timing ====&lt;br /&gt;
&lt;br /&gt;
==== Shape Animations ====&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&lt;br /&gt;
[[Office Open XML]] specify that sound can be embedded in the file (in the container) and use relationships to refer to it. Unfortunately as of today OpenOffice is unable to do so. To that effect sounds are copied in the gallery and opened from there. For standard built-in sound, just refer to it. For none built-in sound, discard it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Office Open XML]]&lt;br /&gt;
[[Category:Impress]]&lt;/div&gt;</summary>
		<author><name>Hub</name></author>
	</entry>
</feed>