aboutsummaryrefslogtreecommitdiffstats
path: root/src/documentation/content/xdocs
diff options
context:
space:
mode:
authorPeter Bernard West <pbwest@apache.org>2003-03-12 14:18:54 +0000
committerPeter Bernard West <pbwest@apache.org>2003-03-12 14:18:54 +0000
commitec20282dfdde68f95322b3cb24744ca6557eabd1 (patch)
tree119ab4edc9cb9ccc298ae1901fbff8edf8d0fe71 /src/documentation/content/xdocs
parent5ee6ead19154232352cdc105f27dc7ab74d62641 (diff)
downloadxmlgraphics-fop-ec20282dfdde68f95322b3cb24744ca6557eabd1.tar.gz
xmlgraphics-fop-ec20282dfdde68f95322b3cb24744ca6557eabd1.zip
Moved to introduction.xml
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196081 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/documentation/content/xdocs')
-rw-r--r--src/documentation/content/xdocs/design/alt.design/properties/index.xml153
1 files changed, 0 insertions, 153 deletions
diff --git a/src/documentation/content/xdocs/design/alt.design/properties/index.xml b/src/documentation/content/xdocs/design/alt.design/properties/index.xml
deleted file mode 100644
index 89f24a765..000000000
--- a/src/documentation/content/xdocs/design/alt.design/properties/index.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
- "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
-
-<document>
- <header>
- <title>Implementing Properties</title>
- <authors>
- <person id="pbw" name="Peter B. West" email="pbwest@powerup.com.au"/>
- </authors>
- </header>
- <body>
- <section>
- <title>An alternative properties implementation</title>
- <note>
- The following discussion focusses on the relationship between
- Flow Objects in the Flow Object tree, and properties. There
- is no (or only passing) discussion of the relationship between
- properties and traits, and by extension, between properties
- and the Area tree.
- </note>
- <p>
- Property handling is complex and expensive. Varying numbers of
- properties <strong>apply</strong> to individual Flow Objects
- <strong>(FOs)</strong> in the <strong>FO tree </strong> but
- any property may effectively be assigned a value on any
- element of the tree. If that property is inheritable, its
- defined value will then be available to any children of the
- defining FO.
- </p>
- <note>
- <em>(XSL 1.0 Rec)</em> <strong>5.1.4 Inheritance</strong>
- ...The inheritable properties can be placed on any formatting
- object.
- </note>
- <p>
- Even if the value is not inheritable, it may be accessed by
- its children through the <code>inherit</code> keyword or the
- <code>from-parent()</code> core function, and potentially by
- any of its descendents through the
- <code>from-nearest-specified-value()</code> core function.
- </p>
- <p>
- In addition to the assigned values of properties, almost every
- property has an <strong>initial value</strong> which is used
- when no value has been assigned.
- </p>
- <section>
- <title>The history problem</title>
- <p>
- The difficulty and expense of handling properties comes from
- this univeral inheritance possibility. The list of properties
- which are assigned values on any particular <em>FO</em>
- element will not generally be large, but a current value is
- required for each property which applies to the <em>FO</em>
- being processed.
- </p>
- <p>
- The environment from which these values may be selected
- includes, for each <em>FO</em>, <strong>for each applicable
- property</strong>, the value assigned on this <em>FO</em>,
- the value which applied to the parent of this <em>FO</em>,
- the nearest value specified on an ancestor of this element,
- and the initial value of the property.
- </p>
- </section>
- <section>
- <title>The construction hierarchy</title>
- <p>
- Properties are resoved in the <strong>FO tree</strong> in a
- strictly hierarchical manner. Nodes are detected in the
- input in a <strong>pre-order</strong> traversal, and are
- built in the same order. This imples that there are two
- phases, or states, of property resolution and construction.
- Any particular FO node is either in a state of constructing
- its own subtree, or in a stable state where the subtree
- construction is complete. These states have differenct data
- requirements.
- </p>
- <dl>
- <dt>Subtree building</dt>
- <dd>
- In this state, all properties defined on this node, or any
- of its ancestors must be available to the subtree. In
- effect, any property defined on this node must be
- available to its descendants, as all properties defined on
- any ancestor are available to this node.
- </dd>
- <dt>Stable: subtree building complete</dt>
- <dd>
- In this state, only the properties <strong>applicable to
- this node</strong> need be available.
- </dd>
- </dl>
- </section>
- <section>
- <title>Representing properties: &lt;property&gt; classes</title>
- <section>
- <title>Class vs instance</title>
- <p>
- What information is required of property objects?
- More particularly, what information is particular to the
- property classes, and what to the instantiated
- objects? The answer to this question depend largely on
- how the property objects are used in the context
- of layout and Area tree construction. The approach taken
- in this implementation is that properties are simply flags
- on certain data values associated with FOs. The semantics
- of these flags are determined within the layout engine.
- </p>
- <p>
- Certain constant information attaches to individual
- property classes. This information is detailed in
- the descriptions of individual properties in <em>Section
- 7</em> of the specification. Such information is
- represented in <strong>class</strong> fields and data
- structures within the classes.
- </p>
- <p>
- The "instance" information content of a property
- is:
- </p>
- <ul>
- <li>
- explicitly, the <code>PropertyValue</code> datum of
- the property, and
- </li>
- <li>
- implicitly, the <strong>Flow Object</strong> to which
- the property is attached.
- </li>
- </ul>
- <p>
- Properties, then, serve essentially to link <em>FO
- instances</em> with <em>PropertyValue instances</em>,
- attaching certain invariant semantic markers to the
- PropertyValues in the process. In this implementation,
- these functions can be realised entirely within the
- property <strong>classes</strong> themselves,
- without the need to instantiate any objects. In practice,
- <strong>property singletons</strong> are
- instantiated to make access to some invariants simpler.
- </p>
- </section>
- </section>
- <p>
- <strong>Next:</strong> <link href="classes-overview.html"
- >property classes overview.</link>
- </p>
- </section>
- </body>
-</document>
-