Могут быть более простые способы, но одним из вариантов является использование Boost :: Serialization, который позволяет очень компактно (если не строго декларативно) указывать формат сериализации для каждого объекта.
Тогда вы можете сериализоватьодин набор объектов в XML и использовать XSLT для преобразования их в формат другого набора объектов.Затем вы десериализуете другой набор объектов.
Если вы правильно указали сериализацию двух наборов объектов, возможно, можно пропустить весь этап преобразования в XML / XSLT.