Methods, systems, and computer program products for converting an object
of one type to an object of another type that allow for the runtime
operation of the conversion process to be altered or customized. The
conversion may occur within an extensible serialization engine that
serializes, deserializes, and transforms objects of various types. The
runtime operation of the serialization engine is altered by one or more
extension routines that implement the desired customizations or
extensions, without requiring replacement of other existing routines.
Based on type information, identified for an initial object, the object
is converted to an intermediate representation which permits runtime
modification, including modification of object names, object types, and
object data. The intermediate representation of the initial object is
modified in accordance with extension routines that alter the runtime
operation of the serialization engine, and the intermediate
representation is converted to a final object and type.