C++ C+;中具有增强功能的序列化/反序列化类的模式+;

C++ C+;中具有增强功能的序列化/反序列化类的模式+;,c++,xml,design-patterns,serialization,deserialization,C++,Xml,Design Patterns,Serialization,Deserialization,我有一些类层次结构,如: class BaseDocument { someValue_1 someValue_2 ... lot of values } class DerivedDocument1: public BaseDocument { derived1Specific } class DerivedDocument2: public BaseDocument { derived2Specific } 类存储在XML中。我希望从/到XML序列化和反序列化这些类。在java或C+

我有一些类层次结构,如:

class BaseDocument {
someValue_1
someValue_2
...
lot of values
}

class DerivedDocument1: public BaseDocument {
derived1Specific
}


class DerivedDocument2: public BaseDocument {
derived2Specific
}

类存储在XML中。我希望从/到XML序列化和反序列化这些类。在java或C++中并不难,但我使用C++。是否存在“智能”序列化/反序列化模式?现在我使用2个几乎相同的函数反序列化文档的基本部分,它们之间的唯一区别是最后一行带有“derived1Specific”或“derived2Specific”值。

为什么不为此使用库?像protobuff或boost.serialization?顺便说一句,您可以为
BaseDocument
部分分解代码。您找到了解决方案吗?我也有类似的情况。