The non-mandatory children of each node in the tree are ordered
by age. That is, the DOM is aware of the order in which the non-mandatory
child nodes were added.
For each step in the form processing,
there is a DOM that holds the data structures for that stage. Scripts
can examine and modify each DOM. DOMs are responsible for maintaining
internal consistency but not external consistency. For instance,
when a script turns on a radio button by assigning the corresponding
field, all the other buttons coupled to that one are automatically turned
off. This is a matter of internal consistency so it is managed by
the Form DOM itself.
By contrast, the Data DOM does nothing
to prevent a script from violating the rules of XML, for instance,
by giving an object two properties with the same name. This is a
matter of external consistency so it is the responsibility of the script
author, not the DOM.
Each time a form design is combined with
data, the XML Form Object Model is used to facilitate the process
of combining template and data to create the resulting form. This
process begins by using the existing XML DOMs’ representations of
the form design and the XML data to create separate models. These separate
models store a structured representation of the original form design and
original XML data. The Template DOM corresponds to the form design, and
the Data DOM corresponds to the user-supplied XML data.
After
the template and data models are created, a third model, the Form
DOM, is created that represents the merged information. The Form
DOM acts as a medium for combining the specific values from the
XML data with the presentation rules defined by the form design.
If
you are creating an interactive form, after the form DOM is created,
the form is complete and ready for deployment to users. Interactive
form designs may have associated data that they are merged with,
but most interactive forms are designed to support user-entered
data.
The process up to and including the creation of the
form DOM is identical for all forms. However, non-interactive forms
have a set of data to merge with their form design. In the case
of forms that have a fixed layout, data merging does not determine
the presentation rules for the form; that is, data is merged into
the appropriate fields without changing the field properties. In
contrast, when data is merged with forms that have a flowable layout,
the fields grow or shrink to accommodate the amount of data merged
into them.
The Form DOM for forms with both fixed and flowable
layouts looks very similar; it is one long form with no pagination.
When the data and presentation rules are applied to these types
of forms, they must be formatted according to the layout information.
A Layout DOM is created from the Form DOM that structures the form
into pages and applies any other page-based rules, such as page
numbering, headers, and trailers. The following diagram illustrates this
process.
After
the layout rules are applied to forms that have a fixed or flowable
layout, both types of forms are complete.