我正在使用gSOAP从我自己准备的XSD Schema生成XML解析代码。它与Web服务无关。从本地文件或内存缓冲区中读取XML数据(通过向istream
提供适当的soap
)。
起初看起来很简单。但是现在随着我越来越多地使用它,我开始看到一些问题。
例如,名称在全局命名空间中引入。可以强制使用命名空间,但随后构建变得更加困难(由于需要为错误处理生成额外的代码),只能使用一个命名空间,并且由于使用宏,它可能也会导致其他问题。 / p>
一旦每个二进制构建单元(.exe
,.dll
,...)有多个模式,您就需要这些名称空间!
所以我开始考虑一些替代方案。特别是我不需要那个Web服务人员。只能自动生成基于XSD解析XML的代码。
是否有任何此类替代方案(对于本机C ++)?它们是什么?
答案 0 :(得分:1)
以下是有关XML数据绑定的一系列资源: http://www.rpbourret.com/xml/XMLDataBinding.htm
答案 1 :(得分:0)
gSOAP的wsdl2h的XSD转换不会产生C ++命名空间,而是将XSD命名空间映射到一个非常容易使用的前缀名称约定(ns__name),避免了C(和C ++)中的名称冲突。任何绑定工具都必须强制执行该类型的映射规则。为什么你说“一旦每个二进制构建单元有多个模式,你需要那些名称空间”吗?您可以在所有XSD上一起运行wsdl2h。