Design Principles

The Dandy library is designed to have a small memory footprint and to be as fast as possible, to allow for rendering xsl:fo documents of any size. To this end there is a two phase caching mechanism to store intermediate formatting data and pages; the layout process begins as soon as possible, accessing properties only as needed, using a clean property inheritance model; most xsl:fo content model validation is done using w3c xml schema. Pages are delivered to the renderer as a pseudo-svg markup of simple drawing instructions to simplify rendering user agents.