The project Marmot comes from the need to deal with the tedious task of creating classes with accessor (set_*/get_*/add_*/push_*) functions, and converting such dataclasses into XML files.
Working with XML, one must always consider the complexity/speed tradeoff. Developpement of the code handling the data leaves us with few choices, we usually decide to go with the xerces implementation but we would chose something else if we weren't trying to have the fastest way to write our classes into files.
But writing isn't our only concern, we also have to read the data back into our data structures. This work is very repetitive/boring, and looks like it could be easily automated...
The idea of Marmot is born.
Alot of other ideas came with the handling of such data, like multiple target languages and multiple toolkits for the backend of the project.