The JSON serialization was a direct representation of the C++ objects and Qt already provides all we need. However, the serialization of a C++ object can be done with various representations in an XML format. So we have to write the XML <-> QVariant conversion ourselves. We have decided to use the following XML representation:
<[name]> type="[type]">[data]</[name]>
For example, the soundId type gives this XML representation:
<soundId type="int">2</soundId>
Create a C++ class XmlSerializer that also inherits from Serializer. Let's begin with the save() function, here is XmlSerializer.h:
#include <QXmlStreamWriter> #include <QXmlStreamReader> #include "Serializer.h" class XmlSerializer : public Serializer ...