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.