1. A method of deserializing a data stream, comprising: receiving the data stream; determining data types within the data stream; instantiating objects in accordance with known data types; and creating unknown objects to retain information related to unknown data types in the data stream, said unknown objects being used to regenerate the retained information when a serialization operation is performed on said unknown objects.