1. A method for transforming a source object into a destination object, comprising: receiving the source object and the destination object; subject to the source object and the destination object being of attribute type, copying the value of the source object to the destination object; subject to the source object and the destination object being of node type which comprises at least one member, for each member of the destination object: locating in the source object a corresponding member having a corresponding name; and invoking the method for the member and the corresponding member; subject to the source object and the destination object being of list type, the source object adapted to contain elements of a source type and the destination object adapted to contain elements of a second type, for each element of the source object: creating a corresponding default element of the second type and adding the default element to the destination object; and invoking the method for the element and the corresponding default element; and invoking a user-implemented transformation routine.