SUDSライブラリを使用したロボットフレームワークを使用してSOAPメッセージのこの部分を作成するのは難しいです。Robot FrameworkでSUDSライブラリを使用してobjectTypesを使用してSoapメッセージを作成する
<ns1:Request>
<ns0:ID objectType="SomeType">Value</ns0:ID>
</ns1:Request>
私がこれを好きなら、私はすべてが必要ですが、objectTypeは必要ありません。
${object}= Create Wsdl Object ns19:RequestTypeSingle
Set Wsdl Object Attribute ${object} ID 1234
出力
<ns1:Request>
<ns0:ID>1234</ns0:ID>
</ns1:Request>
私は何を私のns19チェックした場合:RequestTypeSingleは、私はこれを取得する望んでいる:
${object} = (RequestTypeSingle){
ID =
(ID){
_objectType = ""
}
}
"RequestTypeSingle" の定義
<xs:complexType name="RequestTypeSingle">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="ID" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="objectType" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
だから、どのようにすることができますこれを宣言する "(ID){_ objectタイプ= ""} SUDSなどで?
${req}= Create WSDL Object ns19:RequestTypeSingle # may need namespace prefix here
Set Wsdl Object Attribute ${req.ID} _objectType SomeType
(継続質問):ombre42これに
おかげで、この(最初の質問は答えた)のように行うことができます。 これは私のリクエストの例で述べたように、これまでどおりに値を設定しません。この種の構文はうまくいくようですが、そうではありませんでした。これに関する素晴らしいアイデアですか?
"ValueError:オブジェクトはWSDLオブジェクト(suds.sudsobject.Object)である必要があります。"というエラーが表示されます。
${req}= Create WSDL Object ns19:RequestTypeSingle # may need namespace prefix here
Set Wsdl Object Attribute ${req} ID 1234
Set Wsdl Object Attribute ${req.ID} _objectType SomeType
これにより、最初の_objectType定義が上書きされます。
${req}= Create WSDL Object ns19:RequestTypeSingle # may need namespace prefix here
Set Wsdl Object Attribute ${req.ID} _objectType SomeType
Set Wsdl Object Attribute ${req} ID 1234
何私は、上書きによって意味することは、私はこれを取得することです:
<ns1:Request>
<ns0:ID>1234</ns0:ID>
</ns1:Request>
動作しませんでした。 "Set Wsdlオブジェクト属性$ {object} ID $ {id}"は内部要素を作成し、それは許可されません。 RequestTypeSingleが定義するように、これを1行に記述する必要があります。 – Handeman
「RequestTypeSingle」の定義が追加されました – Handeman
IDは私が疑っているほど複雑なタイプではありません。私はそれに応じて私の答えを更新しました。スキーマを抜粋して既存のWSDLに含めることで、このソリューションをテストできました。私はあなたが必要とするように見える要求を生成することができました。 – ombre42