擅长:python、mysql、java
<p>我在使用sud访问BizTalk/IIS SOAP服务时遇到了同样的问题。
从WSDL可以看出,当有一个“complexType”不是“targetNamespace”的一部分(它有自己的名称空间)时,就会发生这种情况,这个“complexType”有一个子类型也是complexType,但没有设置名称空间。在BizTalk中,这意味着子名称空间应该与父名称空间属于同一个名称空间,但是Suds似乎认为它应该是targetNamespace的一部分。。。。</p>
<p>源代码中的修复“正确地”解决了问题,但是由于我希望每次去寻找另一个解决方案时都不应用修复就可以升级。。。。</p>
<p>我的解决方案是跳过sud并复制原始XML,将其用作模板并将值复制到其中。。。不漂亮,但至少简单。
在我看来,添加插件的解决方案同样是硬编码的,而且可能更难维护。</p>