To make any object persistent (so that it can be stored to/restored from a data store) you can implement the IXPObject or IXPSimpleObject interface. The IXPObject interface extends its ancestor (IXPSimpleObject) by declaring a set of methods that are called by a Session when significant changes occur during the object's lifetime.
The base class that implements the IXPObject interface is XPBaseObject. So, rather than implementing the IXPObject or IXPSimpleObject interface for a custom object, you can inherit it from the XPBaseObject class or one of its descendants.
It is recommended that you implement a constructor that takes a Session parameter. To work with your own session, you have to pass it to the constructor of your persistent object(s) and call the base constructor with this session as a parameter. For information, see Working with Sessions.