Each transform-expression shall return an object of type
create-spec
or of type transform-grove-spec or a (possibly empty) list of objects
each of type create-spec or transform-grove-spec. Each create-spec
describes a subgrove to be created at a specified place in the result
grove. The subgrove may consist either of a single node or of multiple
nodes forming a subgrove rooted in a single node. The place at which
the subgrove is to be created may be specified as the root of a result
grove, or it may be specified relative to some other node in the result
grove.
For each node that is created in the result grove, links are created
from each of the constituent nodes of the node whose transformation
resulted in creation of the node in the result grove to the created
node. These links are referred to as arrows. An arrow is labeled
with an expression language object. The start-point of an arrow is
called the transformation origin of its end-point. The arrow for a
node in the source grove says where that node was transformed to. The
labels on the arrows distinguish between different transformations
that were applied to a node. The transform-expression for a node
either specifies that the created subgrove shall be the root of a
result grove or specifies the position of the created subgrove in the
result grove relative to a node in the result grove to which some
other node in the source grove was transformed.