Hi,
I'm evaluating possibility of using the serialization
library (1.40.0) to save/load an application settings to/from XML that must be
a part of another XML.
I faced with some minor issues that were successfully solved
but then arisen the major one: the serialization library does not support
<tag/> syntax.
Why I need this? After the whole XML is generated it is
transformed by some XML processor to internal data structures and back to text.
During the transformation empty tags <str></str> (for example,
produced when serializing an empty std::string object) are replaced with the
short form: <str/>. From the XML perspective, these forms are equivalent
so XML processors allowed to do so.
Since I cannot change the XML processor, I started
investigating the serialization library. Specifically, how XML is processed.
I found out that parsing XML is responsibility of
xml_grammar class. It does not recognize <tag/> as a start tag so an
exception is generated.
It is easy to write a new class with needed functionality
but xml_grammar is not designed to be used polymorphically... So, after all, I
did not find an easy way to write my own archive. After that, I tried to modify
the library. It was straightforward, and it works for me.
Attached are original (*.bak) files and modified.
Can anyone suggest a way to achieve such a functionality
without modifying the library?
Don't you think, this functionality is quite general to be
included in the library?
Sergey