Team, We allow--and have for many years--for input processing of FO documents in the form of DOM trees. Several months back I created an example  of a "Hello World" FO document to show how this functionality might be used.
The (well-written) classes which provide this functionality, tools.DocumentReader and tools.DocumentInputSource , date to March 2001 when it was factored out of code in Apps.Driver. The original code in Driver that provided this functionality predates 2000, when original author James Tauber was coding FOP . But does anyone generate FO documents via DOM Trees anymore? This style of coding appears to come from the days that SAX wasn't as well known as DOM. The example I gave would be very cumbersome and hard-to-maintain for any non-trivial sized FO document. Although one potential use could be reading an FO file into a DOM Tree, navigating the tree, and manipulating its values, it would appear the standard today in these cases would be to just use xsl:param and setParameter() as here . If this style of coding is obsolete, I would like to remove this functionality from our API in HEAD--we can return it back fairly easily if we start getting hate mail as FOP 1.0 solidifies and gets more use. In addition to removing the two classes above, it would also allow me to simplify/streamline apps.Driver a bit more, and I can also remove my example given on the Embed page. Thanks, Glen  http://cvs.apache.org/viewcvs.cgi/xml-fop/examples/embedding/java/embedding/ExampleDOM2PDF.java?annotate=1.7#81  http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/tools/  http://cvs.apache.org/viewcvs.cgi/xml-fop/src/org/apache/fop/apps/Attic/Driver.java?annotate=1.6#242  http://cvs.apache.org/viewcvs.cgi/xml-fop/examples/embedding/java/embedding/ExampleXML2PDF.java?annotate=1.8#82