从 xsd 生成 c++ 类的 JAXB 等效项?

Posted

技术标签:

【中文标题】从 xsd 生成 c++ 类的 JAXB 等效项?【英文标题】:JAXB equivalent for generating c++ classes from xsd? 【发布时间】:2012-01-10 11:01:36 【问题描述】:

JAXB 提供了一种非常面向对象的方式来处理 xml 数据,是否有任何可用于 c++ 的替代方案或脚本。寻找一些独立于操作系统的工具,即:应该在 linux、windows 等中工作。

工具应该像从 XSD Schema 生成 JAXB 那样生成 c++ 类。

在我以前的组织中,我们曾经有一个 perl 脚本执行相同的工作,但那是相当原始的(不处理继承等)。 perl 或 python 脚本将是超级的。

【问题讨论】:

XML Schema to C++ Classes的可能重复 @mkaes 它确实是重复的,我想知道为什么在 SO 中搜索时它没有出现。但即使是那个帖子也没有建议任何合适的工具。 【参考方案1】:

CodeSynthesis XSD 给我留下了深刻的印象,尽管我只是对它进行了修补。缺点之一(无论如何,对于我们的项目而言)是它们提供了自定义类来处理 XML Schema 项,但我不相信您可以更改映射以提供自己的映射(至少在我查看时)。

【讨论】:

是的@Tom CodeSynthesis XSD 的功能很好。它生成干净的类(即使我更喜欢指针而不是引用)但是有一个问题,一旦生成了类并且您准备好执行二进制/库..它将需要额外的代码 systhensis 运行时才能执行。不幸的是,运行时代码没有打开。这有点扼杀了整个班级的精神(我知道他们需要通过编写出色的软件来赚钱)。也不是所有平台运行时都是免费的(比如你需要购买的 AIX)【参考方案2】:

查看XML data binding for C++ like JAXB for java。这是一个即使 JAXB 也无法完全解决的难题,但您可能会发现一些不完整的解决方案很有用。

【讨论】:

以上是关于从 xsd 生成 c++ 类的 JAXB 等效项?的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的 Jaxb 等效项

带有 JAXB 类的 GXT

Jackson:从 XSD 生成 Jackson 类

从 xsd 生成 maven-jaxb2-plugin 类(版本错误)

向依赖于XSD中的信息的JAXB生成的类添加注释

如何使用 gradle 从 WSDL 和 XSD 生成类,相当于 maven-jaxb2-plugin