From Apache OpenOffice Wiki
Jump to: navigation, search

These are the Wiki pages of the Apache OpenOffice XML Project.

The following information can be found on these pages:

Current Efforts of the XML Project

  • OpenDocument: Contributions to the OpenDocument v1.2 specification, including reviews of the specification documents.

Contribution Areas

The OpenOffice.org XML project is looking for contributions in the areas listed below. If you are interested in working in one of these areas, please contact us at dev@xml.openoffice.org.

XML Based Filters

The following suggestions are related to the framwork for XML based filters.

Detection of the file type

Every time a document is being imported into OpenOffice.org the so called filter detection chooses between the existing filter implementations to find the one matching the type of document that shall be loaded. For filters that load XML documents using the filter framework, the filter detection only searches for a string with the first 1000 characters of a document. This string can be specified in the XML Filter Settings dialog.

A better solution, that we would like to have instead, would be to check the name and or XML namespace of the root node of the XML document.

Access to images

Currently XML based filters have only access to the BASE64 encoded data of embedded images an objects. Having also access to the binary data (for instance by unpacking the zip file of an OpenDocument file) or having a simple way to convert the BASE64 data into a binary file would simplify the developmenmt of filters.

Error logging

Currently error logging is comparable weak for the XML based / XSLT filters. The only way to enable logging is to set a Java environment variable (e.g. -DXSLTransformer.statsfile=/usr/local/offices/xslt_debug.txt) in the Office options for Java.

A few new features are imaginable, such as:

  • Customizing the filter logging via GUI
  • Usage of defined log level (analog to Java Logging)
  • GUI flag for a cumulative log file (instead replacing log for every transformation)


Currently, no XML validation takes place during the import or export of documents. Validation is only possible from a test dialog. This test dialog might be dropped in favor of an external development tools and/or (optional) validation during runtime. To achieve this, it is not sufficient to reuse the existing functionality, because it supports only DTDs, but no Relax-NG or other XML schema langauges like Schematron.

OpenDocument Tools at OpenOffice.org

Tools at OpenOffice.org
Tool Summary
SAXEcho SAXEcho is a tool to be used with the OpenOffice.org application. It allows to view the XML representation of a document at runtime. It can either display the native XML file format representation of an in-memory document, or the output of an an XSLT transformation on said document. It is written in Java.
xfilter tool This page documents the xfilter tool, which lets you execute XML-based filters (as explained in the Filters using XML document) outside of OpenOffice.org or StarOffice.

External OpenDocument Tools

External Tools
Tool Summary
ODFDOM ODFDOM is an OpenDocument (ODF) framework. It's purpose is to provide an easy common way to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification.
ODF Validator ODF Validator is a Java tool that validates OpenDocument files and checks them for certain conformance criteria.
ODF Online Validator ODF Online Validator is an online validation and conformance check tool for ODF documents.
ODF XSLT Runner ODF XSLT Runner is a small Java command line application that allows you to apply XSLT stylesheets to XML streams included in ODF packages without extracting them from the package.
ODF XSLT Runner Task ODF XSLT Runner Task is a task definition for Ant which allows to apply XSLT stylesheets to ODF documents similar to Ant's build-in <xslt> task.
The Perl OpenDocument Connector This toolkit allows direct OpenDocument file update and creation from Perl scripts. It works with the main document classes (texts, spreadsheets, presentations, and drawings), and provides an easy access to a large set of content and presentation elements.
CMFOODocument OpenOffice Documents for icoya Content & Collaboration Management - With CMFOODocument OpenOffice Writer files can easily be integrated inside your Plone site. The OO-Documents are converted by XSL transformation into HTML.
OpenOffice.org Perl Library The OpenOffice.org Perl Library (ooolib) can be used to create simple OpenOffice.org Calc spreadsheet and Writer text documents.

Articles and Books

Articles and Books
Document Summary
OASIS OpenDocument Essentials OASIS OpenDocument Essentials introduces you to the XML that serves as the native internal format of OpenOffice.org. You should read this book if you want to extract data from an OpenDocument document, convert your data to an OpenDocument document, or simply find out how OpenOffice.org stores its data under the hood. The book is written by J. David Eisenberg for O'Reilly & Associates; the content is currently licensed under a Creative Commons License.
Adventures with OpenOffice and XML An article on XML.com, which shows how to use the XML File Format within the AxKit content management system.
Thinking XML: The open office file format A nice introduction to the OpenOffice.org XML File Format; also goes into standardization at OASIS. Introduces the general document structure and demonstrates how to extract content.
From Open Source to Open Standard: The OASIS OpenDocument Format Paper for the "From Open Source to Open Standard: The OASIS OpenDocument Format" XTech 2005 presentation by Michael Brauer.

More articles and book on OpenDocument can be found at opendocument.xml.org.

Reports and Research Documents covering the OpenDocument format

Reports and Research Documents
Document Summary
Enterprise Technical Reference Model - Version 3.5 The Commonwealth of Massachusetts Information Technology Division's Enterprise Technical Reference Model (ETRM) provides an architectural framework used to identify the standards, specifications and technologies1 that support the Commonwealth's computing environment.
The IDA Open Source Migration GuidelinesXML File Format Specification Migration guidelines of the European Commission's IDA initiative.
Open-source software in e-government Analysis and recommendations drawn up by a working group under the Danish Board of Technology.
Interoperability Test and XML Evaluation of StarOffice Writer 6.0 and Office Word 2003 Beta 2 An interopability evaluation of Statskontoret - The Swedish Agency for Public Management
Desktop Linux Technology & Market Overview A report of the Open Source Applications Foundation (OSAF)
Offener Standard für Dokumentenformate / Open Standard for Document Exchange A study regarding open standards for document exchange of the Linux Information Systems AG

More reports and resarch document can be found on opendocument.xml.org.

Filters and Conversions based on OpenDocument/OpenOffice.org XML

Filters and Conversions based on OpenDocument/OpenOffice.org XML
Document Summary
OpenOffice.org's DocBook filter Allows you to load and save DocBook files with OpenOffice.org through XSLT. The filter is meant as proof of concept and does not support all DocBook elements. Community support is appreciated.
Eric Bellot's DocBook converter This is another approach at translating between OpenOffice.org XML and DocBook. Eric Bellot uses Python and XSLT to perform the transformation. With examples and description.
OpenOffice.org XML export to strict XHTML 1.0 Svante Schubert's XSL transformation for the creation of strict XHTML 1.0 from OpenOffice.org XML. Used for the online version of the Developers's Guide. Delivered with StarOffice/OpenOffice.org as optional sample filter
Writer2LaTeX Henrik Just's Writer2LaTeX converter is a command line utility and also a OO-exportfilter which converts OpenOffice.org documents to LaTeX and HTML. It is written in Java.
Flat XML Filter The 'flat' XML filter lets you read and write office documents in plain XML files, i.e. without ZIP packages.
OOO2txt Frederic Labbe's OOO2txt tool generates a plain text representation of OpenOffice.or documents.
libwpd William Lachance's libwpd and WordPerfect filter for OpenOffice.org Writer
OOo to HTML Steve Slaven's StarOffice/OpenOffice.org to HTML converter. Uses XSLTproc and ImageMagick.
OpenSHORE SMRL Metaparser Filter Package A JAR filter package that reads "Semantic Markup Rule Language" (SMRL) specifications and creates OpenSHORE XML, XML Topic Maps (XTM), W3C RDF or Graph eXchange Language (GXL) files from OpenDocument Text documents (*.odt).
pcwTextExportr This Tool provides export of OpenOffice.org SXW/ODT files (OpenOffice.org 1.x -3.x) and Microsoft Word DOC/DOCX files to XML (Docbook), RTF, HTML (Docbook), HTML help (HHP file) and PDF (with bookmarks). It works standalone without OpenOffice or Word installed.
Text Encoding Initiative (TEI) This package provides import and export XSLT stylesheets, a template file, to allow Open Office (version 1.1 and later) to open TEI XML documents, and save OO documents as TEI XML. The XSLT stylesheets effectively provide a mapping between the TEI DTD and the OpenOffice schema.
RDF Ticker Template and Package Daten RDF Ticker template and export using XSLT, by Wieser Informationstechnik

Source Code Modules in the OpenOffice.org XML Project

The following modules belong to the OpenOffice.org XML project:

Modules in XML Project
Module Function Browse Source
xmloff The module xmloff contains the document type definitions (DTDs) for the OpenOffice.org XML based file format. It also contains most of the C++ code to read and write these files and OpenDOcument files through the SAX interface. Some additional code exists within the application modules. source
sax The module sax contains XML parser and XML writer components, both based on the SAX 1 interface. The parser itself is using James Clark's XT. source
package The package module contains the Zip file access API implementation, the "generic" package API implementation and support for the XML Manifest file. source
xmerge The xmerge module contains the sources for the "Document Editing on Small Devices" project. This project is documented ">here. source
filtertools The filtertools module contains a tool for running XML-based filters outside of OpenOffice.org. The tool is documented here. source
Personal tools