Soap 为什么Spyne复杂结果同时具有响应和结果级别?

Soap 为什么Spyne复杂结果同时具有响应和结果级别?,soap,spyne,Soap,Spyne,我试图从spyne/SOAP/HTTP应用程序返回一个复杂的结果,但在数据开始之前,我在XML中看到了预期的“CommandResponse”级别,但也看到了意外的“CommandResult”级别 我没有在任何地方创建“CommandResult”对象,所以这是从哪里来的,我如何才能阻止它?例如。。。 …显示CommandResponse,但不显示CommandResult级别。若要避免此情况,请使用 @srpc…,_返回=[type1,type2…],_输出_变量_名称=[name1,nam

我试图从spyne/SOAP/HTTP应用程序返回一个复杂的结果,但在数据开始之前,我在XML中看到了预期的“CommandResponse”级别,但也看到了意外的“CommandResult”级别

我没有在任何地方创建“CommandResult”对象,所以这是从哪里来的,我如何才能阻止它?例如。。。
…显示CommandResponse,但不显示CommandResult级别。

若要避免此情况,请使用

@srpc…,_返回=[type1,type2…],_输出_变量_名称=[name1,name2…]

Spyne现在将创建一个结果,该结果具有所需的CommandResponse级别,其下有三个字段,即您不必创建隐式创建CommandResults级别的ComplexModel对象。有用的参考文件如下:
但是实际上没有任何示例。

这是因为Spyne中默认使用包装函数。包装功能包括:

1比裸函数更易于使用,裸函数最多只能接受和返回一种类型

2根据Xml标准,任何Xml类型都应该可以使用单个根节点进行序列化

如果希望返回的文档与w3schools中的文档类似,则必须将_body_style='bare'传递给@rpc decorator

但是,仅出于兼容性原因建议使用,如果可能,应避免使用

PS:Papadeltasierra的回答也是正确的——这正是裸体模式在幕后的作用