【发布时间】:2010-06-12 03:02:41
【问题描述】:
我正在使用 SUDS 客户端连接到 SOAP 服务器,该服务器的 wsdl 包含许多枚举,如下所示:
</simpleType>
<simpleType name="FOOENUMERATION">
<restriction base="xsd:string">
<enumeration value="ALPHA"><!-- enum const = 0 -->
<enumeration value="BETA"/><!-- enum const = 1 -->
<enumeration value="GAMMA"/><!-- enum const = 2 -->
<enumeration value="DELTA"/><!-- enum const = 3 -->
</restriction>
</simpleType>
在我的客户中,我收到包含这些不同枚举类型元素的序列。我的需要是给定一个成员变量,我需要知道所有可能的枚举值。基本上我需要一个函数,它接受这些枚举之一的实例并返回一个字符串列表,这些字符串是所有可能的值。
当我有一个实例时,正在运行:
print type(foo.enumInstance)
我明白了:
<class 'suds.sax.text.Text'>
我不确定如何从中获取实际的 simpleType 名称,然后从我自己解析 WSDL 中获取可能的值。
编辑:我发现了一种在给定simpleType名称的情况下获取枚举的方法,如下所示,因此我的问题缩小到查找给定变量的类型名称,给定类型(x)返回 suds.sax.text.Text 而不是真实姓名
for l in client.factory.create('FOOENUMERATION'):
print l[0]
【问题讨论】:
标签: python soap enumeration suds