XSL transformation from 'OpenOffice.org XML' to 'XHTML 1.0'
Contents
- Abstract
- Use without Office (stand-alone)
- Overview over XSLT stylesheets
- Add-On Support for Master Documents (stand-alone only)
- Feedback
Abstract
The filter creates strict XHTML 1.0 from the OpenOffice.org XML format, which was the standard XML format of OpenOffice.org 1.x. Since OpenOffice.org 2.0 the default document format changed to the OASIS Open Document Format for Office Applications (OpenDocument). The filter can only be used with OpenDocument in conjunction with a running Office, compare next section 'Use without Office (stand-alone)'.
The XHTML export filter has matured since it's beginning early 2000, were it was first part of a commercial product named StarPortal/Webtop. In conjunction with OpenOffice.org the stylesheets had been open-sourced.
Now as a sample filter, it is an optional installation component of OpenOffice.org 1.x/2.x, installed together with the 'XSLT sample filter' package. Within the Office the filter can be used when choosing the XHTML export from File->Export...
The XHTML transformation is being used for creation of the Developers's Guide of the OpenOffice.org Software Development Kit (SDK) from OpenOffice.org documents.
Use without Office (stand-alone)
The XHTML export filter can be used without an Office to create XHTML files of OpenOffice.org 1.x documents. The filter will NOT work stand-alone with the new default OpenDocument format, but are still working in OpenOffice.org 2.x as the Office offers the functionality to map internally from OpenDocument to the earlier XML format for XSLT filters (cp. Tools->XML Filter Settings).
The filter comprises of a set of XSLT stylesheets and will work in combination of many XML parser and XSLT stylesheet processor. Unfortunately not all, as the filter although based on the XSLT 1.0 standard, takes advantage of the non-standarized node-set function. Therefore it is necessary to choose one of the following XSLT stylesheet processors
- Apache Xalan processor
- XT processor
- or any other XSLT processor supporting the http://exslt.org/common node-set function.
The Apache Xalan processor is being used in the Office by default. It has been bundled with OpenOffice.org together with the Xerces XML parser.
Overview over XSLT stylesheets
All stylesheets can be installed by choosing as optional part of the Office installation ('XSLT sample filter'). They are located <OFFICE_PATH>/share/xslt.
To view them online, you may browse the CVS and choose the 'download' link beyond the latest version of a stylesheet.
Overview over XSLT stylesheets | ||
Path | Document | Description |
---|---|---|
common | measure_conversion.xsl | Measure conversions (e.g. inch to cm) usable for all import and export XSLT filter. |
export/common | body.xsl | Common mapping mechanisms of elements of languages similar to XHTML (WML, other XML for small devices, et alias) |
export/common | table_of_content.xsl | Common mapping mechanisms of tables |
export/common/styles | style_collector.xsl | Common mechanisms to flatening the style hierarchy of the OpenOffice.org styles |
export/common/styles | style_mapping_css.xsl | Common mapping of OpenOffice.org styles to CSS |
export/common/styles | style_mapping_html32.xsl | Common mapping of OpenOffice.org styles to HTML 3.2 (not used any longer, once needed for PALM HTML 3.2 subset) |
export/common/table | table.xsl | Common mechanisms to map OpenOffice.org tables to HTML (once shared by XHTML and PALM HTML) |
export/common/table | table_cells.xsl | Common mechanisms to map OpenOffice.org table cells to HTML (once shared by XHTML and PALM HTML) |
export/common/table | table_columns.xsl | Common mechanisms to map OpenOffice.org table columns to HTML (once shared by XHTML and PALM HTML) |
export/common/table | table_rows.xsl | Common mechanisms to map OpenOffice.org table rows to HTML (once shared by XHTML and PALM HTML) |
export/xhtml | ooo2xhtml.xsl | The starting stylesheet for XHTML transformations |
export/xhtml | body.xsl | Special XHTML mappings of body elements to XHTML |
export/xhtml | header.xsl | Special XHTML mappings of header elements to XHTML |
export/xhtml | table.xsl | Special XHTML mappings of table elements to XHTML |
export/xhtml | master_chapter_numbering.xsl | Special OpenOffice.org Master document mappings (only standalone useable with Java extension s.b.) |
export/xhtml | master_document.xsl | Special OpenOffice.org Master document mappings (only standalone useable with Java extension s.b.) |
export/xhtml | master_refs_workaround.xsl | Special OpenOffice.org Master document mappings (only standalone useable with Java extension s.b.) |
export/xhtml | master_usability_links.xsl | Special OpenOffice.org Master document mappings (only standalone useable with Java extension s.b.) |
Add-On Support for Master Documents (stand-alone only)
Aside of the plain XSLT stylesheets some Java extension has been implemented for the transformation of master documents (sxg) to XHTML. Basically the extension triggers a new XSL transformation for each referenced child document that is linked from a master document.
This enables the following features once necessary for the creation of the Development Guide:
- If references are being used in a content table the XHTML output references to the created XHTML child documents.
- The sequence of numbered chapters of child documents (not aware of their master document by design) are made feasible by parameter for the indent of chapter start of the child document (otherwise all children chapters would start with '1').
- It is no longer necessary to unzip the XML files of the (compressed) OpenOffice.org documents. The Java class replaces, if necessary (dependent on the suffix) the path/input URL with a JAR URL.
This add-on is only useable with XT. The sources are bundled in a ZIP.
Feedback
Any comment is welcome and should be posted to the XML developer mailing list dev@xml.openoffice.org. For subscription information or archives, see the this project's mailing list section.
Anyone from community is welcome to join the project. The current issues and enhancements filed for XHTML export are these (more or less as all issues with 'XHTML' in their title are listed)