C++序列化Clean XML与XSTREAM类似

Ale*_*ing 5 c++ xstream xml-serialization codesynthesis boost-serialization

我需要编写一个linux c ++应用程序,它以XML格式保存设置(便于手动编辑),并通过套接字和HTTP上的XML消息与现有应用程序通信.问题是我找不到任何智能库来帮助我,我并不特别喜欢编写DOM或SAX代码来编写和阅读一些非常简单的消息.

Boost Serialization几乎是匹配,但它为它生成的xml添加了许多特定于boost的数据.这显然不适用于交换格式.我想知道是否有可能使Boost Serialization或其他一些c ++序列化库生成干净的xml.我不介意是否有一些必需的额外属性 - 比如版本属性,但我真的希望能够控制他们的命名并摆脱我不使用的'功能' - tracking_level和class_id for实例.

理想情况下,我只想在Java中使用类似于xstream的东西.我知道c ++缺乏内省,因此有必要进行一些手动编码 - 但是如果有一个干净的解决方案来读取和编写简单的XML而没有kludges会很好!

如果无法做到这一点,我也对XML模式是规范资源(合同优先)的工具感兴趣 - 一个很好的JAXB替代C++.到目前为止,我只找到了像CodeSynthesis XSD这样的商业解决方案.我更喜欢开源解决方案.我尝试过gSoap - 但是它生成了非常丑陋的代码,并且它也是特定于SOAP的.

无奈之下,我也开始研究protobuffers的替代序列化格式.这存在 - 但仅限Java!令我惊讶的是,协议缓冲区似乎是比XML更好的支持数据交换格式.

我很生气只为这个应用程序找到libs,我真的需要一些新的想法.任何人?

Tro*_*our 0

我不确定它到底提供了什么,因此如果它是您正在寻找的东西,但 Qt 有一个 xml 模块。它还有一个网络模块,听起来好像对您有用。