2016-09-30 12 views
1

プロジェクト用にSOAP APIを使用しました。 具体的な方法については、私は複合型を送信しました。SOAP - zeep(python)で要素を作成する

この複合型は、そのように宣言されています:

<complexType name="specialList"> 
    <sequence> 
     <element name=data" minOccurs="0"maxOccurs="unbounded"> 
      <complexType> 
       <simpleContent> 
        <extension base="string"> 
         <attribute name="key" type="string" use="required"/> 
        </extension> 
       </simpleContent> 
      </complexType> 
     </element> 
    </sequence> 
</complexType> 

これは一例です:

<my_action type="specialList"> 
    <data key="myKey">MyValue</data> 
    <data key="myOtherKey">MyOtherValue</data> 
</my_action> 

SOAP APIにアクセスするには、私は(私は泡を試してみました)zeepを使用しています。 私が最初に思うのは、私の "specialList"を取り出すことだと思います。

special_list = client.get_type('ns1:specialList') 
my_action = special_list(data=[data_1, data_2]) 

しかし、私はタイプ "データ"に問題があります。実際、このタイプの「データ」は宣言されていません。私はclient.get_type( "ns1:data")を実行できません。

私は単純な要素を作成するためにいくつかの時間を試みたが、成功しませんでした。 この「特別な」データを作成する方法はありますか?事前に

は、ありがとうございました。

シルヴァン

答えて

1

そのマニュアルに示されているように、あなたがANYOBJECTを使用して試すことができます:http://docs.python-zeep.org/en/master/datastructures.html

ので、あなたのコード内で:

ZEEPインポートXSD

special_list = client.get_type('ns1:specialList') 
my_action = xsd.AnyObject(special_list, special_list(data=[data_1, data_2])) 
から
関連する問題