我们在头文件中有C结构,我们希望从头文件生成XML模式

时间:2011-10-19 17:26:04

标签: c xml xsd xml-generation

我有一个已有二十年历史的遗留应用程序,并希望将其连接到Web前端。我需要传递一个在C结构中定义的相当大的深度嵌套数据结构。我们目前正计划用XML做到这一点。结构定义的总数大约为150.这些都嵌入到一个巨大的数据结构中。我想找到一个程序来扫描头文件并生成一个XML Schema,然后我可以根据自己的需要进行定制。有谁知道这样的工具?

2 个答案:

答案 0 :(得分:0)

SWIG(swig.org)有一个XML目标(-xml)可以做你想要的。

答案 1 :(得分:0)

有一个名为GCC XML的工具,它将GCC编译的程序的内部表示转换为某些XML,但不再维护它。

可能是使用GCC 4.6 插件能力,它可以为GCC编写一个插件(在C中)来处理树(即内部) AST)的结构声明。您还可以使用更高级域特定语言GCC MELT来扩展GCC。但在任何一种情况下,您都需要了解GCC的树(& Gimple)内部表示(如果您只有150个结构,它可能不值得)。但是,如果您的遗留应用程序足够大,那么学习这些(以及使用MELT)可能是值得的,因为这些新技能(扩展GCC)可以用于该遗留应用程序上的其他任务。

最后,您还可以查看与RPC-XDR相关的(相当小的,按今天的标准)工具,它们包含一个类似C的结构声明的解析器。