【问题标题】:Spyne - how to duplicate one elements of wsdl file created by spyne?Spyne - 如何复制由 spyne 创建的 wsdl 文件的一个元素?
【发布时间】:2017-02-25 08:09:54
【问题描述】:

我需要复制生成的 wsdl 文件的元素之一。我的代码是这样的:

class SDPSimulator(ServiceBase):
@rpc(UserCredential, Unicode, Unicode, Unicode, Integer,
     _returns=SendSmsReturn.customize(sub_name='return'))
def sendSms(ctx, userCredential, srcAddress, regionIds,msgBody,maxSendCount): 

我想用 Spyne 创建我的请求 wsdl 文件:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:loc="localhost" xmlns:apps="apps.simulator.views">
   <soapenv:Header/>
   <soapenv:Body>
      <loc:sendSms>
         <!--Optional:-->
         <loc:userCredential>
            <!--Optional:-->
            <apps:password>test</apps:password>
            <!--Optional:-->
            <apps:username>test</apps:username>
         </loc:userCredential>
         <!--Optional:-->
         <loc:srcAddress>982156898</loc:srcAddress>
         <!--Optional:-->
         <loc:regionIds>77</loc:regionIds>
         <loc:regionIds>78</loc:regionIds>
         <loc:regionIds>79</loc:regionIds>
         <!--Optional:-->
         <loc:msgBody>Hi there</loc:msgBody>
         <!--Optional:-->
         <loc:maxSendCount>12</loc:maxSendCount>
      </loc:sendSms>
   </soapenv:Body>
</soapenv:Envelope>

如何编写代码以在 wsdl 文件中复制 regionIds 并发送 像上面这样的请求?

【问题讨论】:

    标签: python soap wsdl spyne


    【解决方案1】:

    我终于找到了:) 为此,我必须这样编写代码:

    class SDPSimulator(ServiceBase):
        @rpc(UserCredential, Unicode, Unicode.customize(max_occurs='unbounded'), Unicode, Integer,
             _returns=SendSmsReturn.customize(sub_name='return'))
        def sendSms(ctx, userCredential, srcAddress, regionIds, msgBody, maxSendCount):
    

    使用这部分代码:Unicode.customize(max_occurs=50) 我可以指定多少次&lt;regionIds&gt;&lt;/regionIds&gt; 可以复制。

    【讨论】:

    • 使用 max_occurs='unbounded'max_occurs=Decimal('inf') 而不是 50(我想这只是一个任意的“高”值)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多