Есть некоторая структура данных, с векторами, map-ами, и опциональными переменными (boost::optional).
Требуется составить удобный для пользователя формат заполнения этой структуры.
Это должен быть легко прозрачный для пользователя текстовый формат.
Желательно, JSON-подобный, но подойдет и xml (если не слишком перегруженный).
Попробовал Boost.Serialize в xml архов:
boost::optional<std::string> comment;
в xml превращается в
<comment class_id="0" tracking_level="0" version="0">
<initialized>1</initialized>
<item_version>0</item_version>
<value>comment text</value>
</comment>
, что совершенно неприемлемо. Можно ведь было ограничиться одним атрибутом, отсутствующим, если поле не задано!
Есть ли готовые реализации архивов, подобного случая?
Или использование boost.serialize, в принципе плохая идея и нужен другой подход?