A first data source has a plurality of nodes each corresponding to a
respective piece of a form template. Each piece of the form template has
one of more dependencies to the correspond node of the first data source.
Dependencies can be bindings or validation of data. A second data source
has a plurality of nodes. Differences are found between the first and
second data sources by comparing each node in the first data source with
a corresponding node in the second data source. The differences can be as
to type, cardinality, name, or a movement, removal or addition of a node.
The differences are used to update the dependencies of each piece of the
form template to each node of the first data source. Each of the first
and second data sources can be a document expressed in a markup language
or in a web service definition language.