The
Adobe® XML Form Object Model, based on the
Adobe XML Forms Architecture, represents the underlying technology
behind the Adobe XML form solution and incorporates XML architectural
concepts such as Document Object Model (DOM). Using this technology,
form developers can create complex and flexible form-based applications
for use with the client or the server.
Designer
enables a form developer to build intelligent forms using only the
options provided in the Designer graphical interface.
By scripting against the XML Form Object Model, form developers
may further manipulate all aspects of the form, extending the functionality
of the form beyond what is available through the Designer interface.
For example, you might use a simple calculation to automatically
update costs on a purchase order, or you might use scripting to
modify the appearance of your form in response to the locale of
the user.
Scripting is supported in two languages: FormCalc, a calculation
language created by Adobe Systems Incorporated, and JavaScript,
a powerful and popular scripting language.
Each host, such as Adobe® Acrobat and Adobe® Reader, is responsible
for implementing the available methods. Some methods, such as beep,
do not make sense on a server. The server does not implement these
methods and instead can output an error message if a user tries
to call the method.
For information
about the basics of creating scripts, see
Scripting Basics
.
Subforms and containers
In
Designer, forms are documents that are created from a hierarchy
of optionally repeating building-blocks known as
subforms
.
Each subform controls a portion of the overall structure, presentation,
and behavior of the form. Individual subforms enclose a combination
of objects that produce fillable regions (fields) and non-fillable
regions (draws). Subforms may also contain other subforms, and each subform
may have properties that determine how and when the subform is instantiated
into a constructed form.
Within each form is a concept of a container. A
container
is
an object that holds data or values. Simple containers, those that
are not capable of holding other containers or objects, include
fields (text, numeric, buttons) and drawn objects (text, circle,
line). All containers capable of holding other containers as well
as non-container objects are considered
complex containers
.
Subforms are an example of a complex container.