I need to write a linux C ++ application that saves it in XML format (for easy manual editing), and also communicates with existing applications via XML messages through sockets and HTTP. The problem is that I could not find any intelligent libraries that could help me, I do not particularly like writing DOM or SAX code just to write and read very simple messages.
Boost Serialization was almost a coincidence, but it adds a lot of boost-related data to the xml it generates. This clearly does not work for format interchange. I am wondering if it is possible to do Boost Serialization or some other C ++ serialization library, create pure xml. I donβt mind if there are any required additional attributes - like a version attribute, but I really would like to be able to control their naming, as well as get rid of the "functions" that I do not use - tracking_level and class_id for example.
Ideally, I would just like to have something similar to xstream in Java. I know that C ++ lacks introspection and therefore it is necessary to do some manual coding, but it would be nice if there was a clean solution to just read and write simple XML without kludges!
If this is not done, I am also interested in tools in which the XML schema is a canonical resource (first a contract) - a good alternative to JAXB for C ++. So far, I have found commercial solutions such as CodeSynthesis XSD. I would prefer open source solutions. I tried gSoap - but it generates really ugly code as well as SOAP-specific.
In desperation, I also started looking for alternative serialization formats for protobuffers. It exists - but only for Java! What really surprises me is that protocol buffers seem to be better at supporting a data exchange format than XML.
I will go crazy just by finding libraries for this application, and I really need new ideas. Is anyone