Je me connecte avec un client SUDS à un serveur SOAP dont wsdl contient plusieurs énumérations comme les suivantes:Liste toutes les valeurs possibles pour l'énumération SOAP avec Python SUDS
</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>
Dans mon client je reçois des séquences qui contiennent éléments de ces différents types d'énumération. Mon besoin est que donné une variable membre, j'ai besoin de connaître toutes les valeurs d'énumération possibles. Fondamentalement, j'ai besoin d'une fonction qui prend une instance de l'une de ces énumérations et renvoie une liste de chaînes qui sont toutes les valeurs possibles.
Quand j'ai une instance, cours d'exécution:
print type(foo.enumInstance)
-je obtenir:
<class 'suds.sax.text.Text'>
Je ne sais pas comment obtenir le nom de simpleType réelle de cela, puis obtenir les valeurs possibles à partir de ce court d'analyser le WSDL moi-même.
Edit: Je ai découvert un moyen d'obtenir les énumérations donné le nom simpleType, comme ci-dessous, donc mon problème se réduit à findingthe nom de type pour une variable donnée, étant donné que le type (x) retourne suds.sax .text.Text au lieu du vrai nom
for l in client.factory.create('FOOENUMERATION'):
print l[0]