【问题标题】:C++ code/XML generation toolsC++ 代码/XML 生成工具
【发布时间】:2011-03-13 09:57:09
【问题描述】:

我不确定确切的术语是什么,有点像使用 XML 作为数据存储的 ORM。是否有任何像样的工具可以基于 XML 模式自动生成 C++ 类(包括数据和序列化/反序列化)?还是会基于 C++ 类定义创建 XML 同步代码和架构?

TinyXML 很棒,但是花费所有时间编写代码以将 XML 数据加载/保存到类中,这太老派了。我见过类似的工具专注于 SOAP/WSDL,但它们在基础之上生成了各种其他代码。

有什么好的开源库吗?

【问题讨论】:

  • 根据我的经验,基于 XML 模式自动生成 C++ 类并不是一个好主意,尤其是在模式很大和/或可能发生变化的情况下。每次架构更改时,您都必须重新生成所有类,这通常需要完全重建系统的其余部分。
  • 我必须重建比我的代码错误更好。而且重建时间比编写和测试超枯燥的 XML(反)序列化代码要好。

标签: c++ xml xsd code-generation


【解决方案1】:

我看到的唯一尝试这样做的是CodeSynthesisXSD

【讨论】:

  • 我们尝试了这个和其他大约 5 种产品,这是赢家。也很好的支持。
  • Greg 没有提及他和他的合作者尝试了哪些其他产品,但在回复XML Schema to C++ Classes 时提供了许多其他可能性。
【解决方案2】:

不是开源的,但XML Thunder 不适合你吗?

【讨论】:

  • 它是 C 而不是 C++,但值得一看。我在他们的网站上看不到下载/购买/定价链接,你能吗?
  • 除了他们已经做了很长时间之外,对他们了解不多。祝你好运。
【解决方案3】:

如果您正在寻找基于 XML 模式自动生成 C++ 类(包括数据和序列化/反序列化)的开源和商业许可工具,那么我强烈推荐 GSOAP。它易于使用、符合行业标准并积极维护。

另见http://www.rpbourret.com/xml/XMLDataBinding.htm

我对许多其他承诺完整数据绑定但无法处理更广泛的 WSDL 集和模式(如 ONVIF)的 C++ XML 工具感到失望。不得不对整个项目进行重组是一件痛苦的事情。我知道 GSOAP 会完成这项工作。恕我直言,赢家。

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多