1. A method for enacting changes to a document containing a template-based program that transforms tree-structured data from a first tree-structured data into a second tree-structured data, said method comprising: providing an interface to permit selection of a document containing said template-based program; constructing a model of said template-based program in said selected document by parsing elements of said template-based program into a corresponding logical construct comprising a match condition and at least one generator, said match condition for determining whether an element in said first tree-structure data is to be processed by one or more of said at least one generator; and displaying a representation of said model to said user.