gSOAP从2.8.10升级到最新版本(2.8.54)没有ns:用于多个XML标记上的命名空间

时间:2017-10-10 14:36:15

标签: c++ xml gsoap

目前将gSOAP从2.8.10升级到2.8.54。这是一个c ++代码生成工具,允许rpc通过XML。新版本生成的代码不会生成与早期版本兼容的XML。想知道是否有人在他们的C ++产品中查看/使用过这些版本的gSOAP,并发现用于编组的XML存在差异。

XML代码需要匹配,因为2.8.10产品需要与使用2.8.54的产品交谈 我当前的问题是动态生成的代码中的输入和数据的名称空间,该代码生成了2.5.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;

和2.8.54已

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:方法和ns:输入。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。在我的soapcpp2.exe of 2.8.55文件上运行*.h时,'ns:'消失了

最后,帮助解决此问题的方法是在*.h文件中添加以下所有其他'//gsoap'属性部分中的以下行:

//gsoap ns schema elementForm: qualified

希望这会有所帮助