serialization is the process of translating an object that is represented in memory, into a "flat" format that can be stored, usually in a text format, or a byte array.
the serialization needs to be two way- to allow a reader to recreate the object from the flat format.
for example:
int number = 5;
string serializedText = SomeSerializationUtility.SerializeToString(number);
int number2 = SomeSerializationUtility.DeserializeFromString(serializedText );
Asset.AreEqual(number, number2);
of course things get a lot more complicated when serializing objects that have multiple properties, and internal states, and perhaps inner properties that are themselves complex types.
so for example:
public class MyData
{
public string Text;
public int Number;
public List<double> data;
}
</double>
could be represented in the following XML format:
<mydata>
<text type="string">blabla</text>
<number type="int">5</number>
<data type="List<double>"><item>0.0</item></data>
</mydata>
and you should be able to easily see how this data is mapped between XML elements and class properties.