2017-10-10 40 views
0

当前将gSOAP从2.8.10升级到2.8.54。这是一个C++代码生成工具,允许rpc通过XML。由新版本生成的代码不生成与早期版本兼容的XML。想知道是否有人在他们的C++产品中查看/使用过这些版本的gSOAP,并发现用于编组的XML有所不同。gSOAP从2.8.10升级到最新(2.8.54)没有ns:用于多个XML标签上的名称空间

XML代码需要匹配为2.8.10产品需要与使用2.8.54的产品交谈我目前的问题是动态生成的代码中的输入和数据的名称空间,该代码生成2.8.10的XML已

if (soap_out_PointerTostd__string(soap, "ns:method", -1, &a->method, "xsd:string")) 
    return soap->error; 
if (soap_out_PointerTons__ComplexType(soap, "ns:input", -1, &a->input, "ns:ComplexType")) 
return soap->error; 

和54年2月8日已

if (soap_out_PointerTostd__string(soap, "method", -1, &a->method, "xsd:string")) 
    return soap->error; 
if (soap_out_PointerTons__ComplexType(soap, "input", -1, &a->input, "ns:ComplexType")) 
    return soap->error; 

于是问题来了,怎么来的NS:被丢弃的方法和投入?数据也被放弃了。

我已经尝试了-z1,-z2和-z3,并且都没有将ns添加到xml'data','method'或'input'标记中。我期望看到ns:data,ns:method和ns:input。

也试过其他排列(-i,-j)。 任何帮助表示赞赏。

有什么建议吗?

回答

2

我有同样的问题。当我*.h文件运行soapcpp2.exe of 2.8.55'ns:'消失

最后,是什么帮助解决这一被添加在*.h文件中的以下行,在所有其他'//gsoap'属性的部分:

//gsoap ns schema elementForm: qualified 

希望这将帮助