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 it can be any arbitrary XML language for which a transformation into the upCast DTD can 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
Java API available on request
downCast is a 2-phase application. 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.