我用肥皂水客戶端連接到一個SOAP服務器,其WSDL包含許多枚舉類似如下:包含清單與Python肥皂水SOAP枚舉所有可能的值
</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'>
我不知道如何從這個獲得實際的簡單類型名稱,然後得到的可能值從那個我自己解析WSDL的缺點。
編輯:我發現一種方式來獲得給出的簡單類型名稱的枚舉,如下,所以我的問題縮小到給定變量findingthe類型名稱,因爲類型(x)返回suds.sax .text.Text,而不是真實姓名
for l in client.factory.create('FOOENUMERATION'):
print l[0]