C ++ Serialization Pure XML Like XSTREAM

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

+5
3

, , , , , Qt xml-. , , .

0

Troubadour Qt XML- , - , . , .

QXmlStreamWriter QXmlStreamReader , . .

XML , . , Qt XML, , - .

, - Qt (Commercial, GPL, LGPL).

0

: " , CodeSynthesis XSD. "

CodeSynthesis XSD . , ( GPL 2, ). "GPL- " "GPL-Incompatible Free" ", http://www.gnu.org/licenses/license-list.html

CodeSynthesis XSD - Free Prprietary . XML.

Read more about the various CodeSynthesis XSD licenses here: http://www.codesynthesis.com/products/xsd/license.xhtml

In terms of functionality, CodeSynthesis XSD also supports serialization and parsing of the generated binary format. You can use this format for effective communication.

0
source

All Articles