When I deserialize the following XML "<value> </value>" to std::string I get empty string. This happens because RapidXML ignores whitespaces. This could be fixed with "<value xml:space='preserve'> </value>" during serialization but this is not supported by RapidXML during parsing. What RapidXML supports is CDATA. So, during serialization std::strings could be saved as "<value><![CDATA[ ]]></value>" and RapidXML can parse this construct.
When I deserialize the following XML "<value> </value>" to std::string I get empty string. This happens because RapidXML ignores whitespaces. This could be fixed with "<value xml:space='preserve'> </value>" during serialization but this is not supported by RapidXML during parsing. What RapidXML supports is CDATA. So, during serialization std::strings could be saved as "<value><![CDATA[ ]]></value>" and RapidXML can parse this construct.