Chapter 1. Product Overview

1. Features
2. Architecture

1. Features

downCast is an application that converts XML documents to Word or, more precisely, RTF documents. For specifying the layout, the application relies on a subset of Cascading Style Sheets, level 2 (CSS2) properties, amended by some proprietary properties where needed. Input XML documents must either be valid according to the upCast DTD, or they can be any arbitrary XML language for which a transformation into the upCast DTD can (and needs to) be created.

Main features of downCast's XML to RTF conversion are:

  • creates fully editable Word documents conforming to the RTF 1.6 specification (Word 97 and later)

  • uses native structuring RTF constructs whenever possible

  • supports paragraph and character styles

  • support for many CSS2 properties incl. custom extensions

  • offers powerful table translation, incl. nested tables, row/column spans, cell and table formatting properties

  • processes footnotes, hyperlinks and references (XLink), fields, annotations, index entries, bookmarks, page headers and footers

  • supports any combination of nested lists, tables and layout elements

  • support for standard and custom document properties

  • Unicode and two-byte encoding support

  • on-the-fly creation of style table, list table and intelligent font handling using extensible default properties for standard fonts

  • supports inline style information via the style attribute on elements

  • includes built-in XSLT processor for inline XML document preprocessing

2. Architecture

downCast works in 2 phases. In the first phase, it reads the XML document and parses any linked external CSS stylesheet. In the second phase, the data is externalized to RTF. This architecture allows future extension to different export formats if need arises. Also, this architecture allows for later implementation of mechanisms to changing the stylesheet only after a first export run to create a different version of the same source document.

The import phase has two layers: an (optional) XSLT pre-processing step which can be used to transform documents that do not conform to the upCast DTD to a representation downCast is able to process, and the actual import.