XSD基因处理的解析器中的gSOAP替代品

时间:2012-12-03 20:09:49

标签: c++ xml xsd gsoap

我正在使用gSOAP从我自己准备的XSD Schema生成XML解析代码。它与Web服务无关。从本地文件或内存缓冲区中读取XML数据(通过向istream提供适当的soap)。

起初看起来很简单。但是现在随着我越来越多地使用它,我开始看到一些问题。

例如,名称在全局命名空间中引入。可以强制使用命名空间,但随后构建变得更加困难(由于需要为错误处理生成额外的代码),只能使用一个命名空间,并且由于使用宏,它可能也会导致其他问题。 / p>

一旦每个二进制构建单元(.exe.dll,...)有多个模式,您就需要这些名称空间!

所以我开始考虑一些替代方案。特别是我不需要那个Web服务人员。只能自动生成基于XSD解析XML的代码。

是否有任何此类替代方案(对于本机C ++)?它们是什么?

2 个答案:

答案 0 :(得分:1)

以下是有关XML数据绑定的一系列资源: http://www.rpbourret.com/xml/XMLDataBinding.htm

答案 1 :(得分:0)

gSOAP的wsdl2h的XSD转换不会产生C ++命名空间,而是将XSD命名空间映射到一个非常容易使用的前缀名称约定(ns__name),避免了C(和C ++)中的名称冲突。任何绑定工具都必须强制执行该类型的映射规则。为什么你说“一旦每个二进制构建单元有多个模式,你需要那些名称空间”吗?您可以在所有XSD上一起运行wsdl2h。