aboutsummaryrefslogtreecommitdiffstats
path: root/docs/design/understanding/fo_tree.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design/understanding/fo_tree.xml')
-rw-r--r--docs/design/understanding/fo_tree.xml184
1 files changed, 0 insertions, 184 deletions
diff --git a/docs/design/understanding/fo_tree.xml b/docs/design/understanding/fo_tree.xml
deleted file mode 100644
index cbe5e5f35..000000000
--- a/docs/design/understanding/fo_tree.xml
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version="1.0"?>
-<document>
- <header>
- <title>FO Tree</title>
- <subtitle>All you wanted to know about FO Tree !</subtitle>
- <authors> <person name="Keiron Liddle" email="keiron@aftexsw.com"/>
- </authors>
- </header>
-<body><s1 title="FO Tree">
- <p>
- The FO Tree is a representation of the XSL:FO document. This
- represents the <strong>Objectify</strong> step from the
- spec. The <strong>Refinement</strong> step is part of reading
- and using the properties which may happen immediately or
- during the layout process.
- </p>
-
-
-
-<p>Each xml element is represented by a java object. For pagination the
-classes are in <code>org.apache.fop.fo.pagination.*</code>, for elements in the flow
-they are in <code>org.apache.fop.fo.flow.*</code> and some others are in
-<code>org.apache.fop.fo.*.</code></p>
-
-
-
-<p>The base class for all objects in the tree is FONode. The base class for
-all FO Objects is FObj.</p>
-
-
-
-<p>(insert diagram here)</p>
-
-
-
-<p>There is a class for each element in the FO set. An object is created for
-each element in the FO Tree. This object holds the properties for the FO
-Object.</p>
-
-
-
- <p>
- When the object is created it is setup. It is given its
- element name, the FOUserAgent - for resolving properties
- etc. - the logger and the attributes. The methods
- <code>handleAttributes()</code> and
- <code>setuserAgent()</code>, common to <code>FONode</code>,
- are used in this process. The object will then be given any
- text data or child elements. Then the <code>end()</code>
- method is called. The end method is used by a number of
- elements to indicate that it can do certain processing since
- all the children have been added.
- </p>
-
-
-
-<p>Some validity checking is done during these steps. The user can be warned of the error and processing can continue if possible.
-</p>
-
-
- <p>
- The FO Tree is simply a heirarchy of java objects that
- represent the fo elements from xml. The traversal is done by
- the layout or structure process only in the flow elements.
- </p>
-
-
-
-<s2 title="Properties">
-
-
-
-<p>The XML attributes on each element are passed to the object. The objects
-that represent FO objects then convert the attributes into properties.
-</p>
-
-
-<p>Since properties can be inherited the PropertyList class handles resolving
-properties for a particular element.
-All properties are specified in an XML file. Classes are created
-automatically during the build process.
-</p>
-
-
-<p>(insert diagram here)</p>
-
-
-
-<p>In some cases the element may be moved to have a different parent, for
-example markers, or the inheritance could be different, for example
-initial property set.</p></s2>
-
-
-
-
-<s2 title="Foreign XML">
-
-
-<p>The base class for foreign XML is XMLObj. This class handles creating a
-DOM Element and the setting of attributes. It also can create a DOM
-Document if it is a top level element, class XMLElement.
-This class must be extended for the namespace of the XML elements. For
-unknown namespaces the class is UnknowXMLObj.</p>
-
-
-
-<p>(insert diagram here)</p>
-
-
-
-<p>If some special processing is needed then the top level element can extend
-the XMLObj. For example the SVGElement makes the special DOM required for
-batik and gets the size of the svg.
-</p>
-
-
-<p>Foreign XML will usually be in an fo:instream-foreign-object, the XML will
-be passed to the render as a DOM where the render will be able to handle
-it. Other XML from an unknwon namespace will be ignored.
-</p>
-
-
-<p>By using element mappings it is possible to read other XML and either</p>
-<ul><li>set information on the area tree</li>
-<li>create pseudo FO Objects that create areas in the area tree</li>
-<li>create FO Objects</li></ul>
-</s2>
-
-
-
-<s2 title="Unknown Elements">
-<p>If an element is in a known namespace but the element is unknown then an
-Unknown object is created. This is mainly to provide information to the
-user.
-This could happen if the fo document contains an element from a different
-version or the element is misspelt.</p>
-</s2>
-
-
-<s2 title="Page Masters">
- <p>
- The first elements in a document are the elements for the
- page master setup. This is usually only a small number and
- will be used throughout the document to create new pages.
- These elements are kept as a factory to create the page and
- appropriate regions whenever a new page is requested by the
- layout. The objects in the FO Tree that represent these
- elements are themselves the factory. The root element keeps
- these objects as a factory for the page sequences.
- </p>
-</s2>
-
-
-<s2 title="Flow">
-<p>The elements that are in the flow of the document are a set of elements
-that is needed for the layout process. Each element is important in the
-creation of areas.</p>
-</s2>
-
-
-
-<s2 title="Other Elements">
-
-
-
- <p>
- The remaining FO Objects are things like page-sequence,
- title and color-profile. These are handled by their parent
- element; i.e. the root looks after the declarations and the
- declarations maintains a list of colour profiles. The
- page-sequences are direct descendents of root.
- </p>
- </s2>
-
-
-
-<s2 title="Associated Tasks">
-
-
-
-<ul><li>Create diagrams</li>
-<li>Setup all properties and elements for XSL:FO</li>
-<li>Setup user agent for property resolution</li>
-<li>Verify all XML is handled appropriately</li></ul></s2></s1></body></document> \ No newline at end of file