Here is what I understand, others may have more to
add:
I see two ways to interpret your question: (1) what
happens in the code that makes page-sequence be the
lowest granularity we have, and (2) why we do it that
way.
1) When the page-sequence's children
(layout-master-set, declarations?, flow) have been
finished processing, endElement() in our SAXHandler
FOTreeBuilder is called. [1] That method calls end()
of the PageSequenceObject [2], which in turn calls
endPageSequence() [3] of the FOInputHandler object,
which is either FOTreeHandler for PDF/PS, etc. or
MIFHandler or RTFHandler.
It is endPageSequence() which calls
formatPageSequence(pageSequence, areaTree)--which
starts the formatting process.
[1]
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/fo/FOTreeBuilder.java?annotate=1.35#197
[2]
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java?annotate=1.27#170
[3]
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/java/org/apache/fop/fo/FOTreeHandler.java?annotate=1.25#199
2) Our processing is directly on top of SAX--we react
at the start and end of XML elements as they come in.
Unlike FAD we don't cache into any intermediate data
structures, so I don't see how we could do a lower
granularity. We could stop at the end of fo:flow, but
that is only one element away from fo:page-sequence's
object endElement() being called from above, so
nothing measurable would be gained.
I guess the answer to your question in (2) is (a) that
our process is driven by fo:objects, not the areas
that they generate, and there is no fo:object that
corresponds to 1 page, etc.--that's determined by
fo:flow as it is formatted and (b) there are some
programmatic conveniences to stopping at the
page-sequence level, as the layout-master-set can be
read in one time and is valid for all the pages
generated.
Glen
--- Peter B. West [EMAIL PROTECTED] wrote:
Fop-devs,
It occurs to me that some of the implications of the
FAD approach have
not been successfully communicated. Part of this
may well be because of
my own inadequate understanding of the FOP process.
Before I continuing
with this discussion, I had better ensure that my
understanding of one
important point is correct. Why does FOP process in
minimum units of a
page-sequence?
Peter
--
Peter B. West
http://www.powerup.com.au/~pbwest/resume.html