Robot框架中的调用soap方法缺少元素

2024-09-27 23:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试在Robot框架中使用zeeplibrary调用soapmethod时,我得到一个缺少元素的错误。我不明白为什么,xml中同一级别的其他三个元素似乎没有给出问题。如果通过SoapUI发送xml,则xml工作正常

我的机器人脚本如下所示:

 *** Variables ***
 ${XML_Cardscan240}    Resources/Inputs/cardscan240.xml
 *** Test Cases ***
  Cardscan
    ${requestblank}  get file    ${XML_Cardscan240}
    log    ${requestblank}
    ${requesttest}    Replace String    ${requestblank}   _Card_    4207575
    log    ${requesttest}
         ${XMLRequest}    parse xml    ${requesttest}
    Create soap client    ../../resources/WSDL/SIT_MA_ASW POS Inbound.WSDl
    ${response}  call soap method   ASWPOSInboundLoyaltyMember     ${XMLRequest}

我的xml文件如下所示:

 <?xml version="1.0" encoding="UTF-8"?>
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:cus="http://application.com/CustomUI">
   <soapenv:Header/>
  <soapenv:Body>
   <cus:POSInboundLoyaltyMember_Input>
      <cus:CardNumber>_Card_</cus:CardNumber>
      <cus:MessageXML><![CDATA[<?xml version="1.0"?>
    <PrivateData>
   <LoyaltyMessageNumber1>
   <Customer MsgType="1" StoreID="124" PosID="1" TransID="124"
   BusinessDate="2005/02/16">
   <LoyaltyInfo CardID="_Card_" CardIDType="P" />
  </Customer>
 </LoyaltyMessageNumber1>
  </PrivateData>
  ]]></cus:MessageXML>
     <cus:BUID>9999000188</cus:BUID>
     <cus:MessageType>0240</cus:MessageType>
  </cus:POSInboundLoyaltyMember_Input>
  </soapenv:Body>
 </soapenv:Envelope>

WSDL文件的相关部分如下所示:

 ><xsd:element
 name="ASWPOSInboundLoyaltyMember_Input" 
 ><xsd:complexType
 ><xsd:sequence
     ><xsd:element
     name="CardNumber"
     type="xsd:string"
     ></xsd:element
 ><xsd:element
 name="MessageXML"
 type="xsd:string"
 ></xsd:element
      ><xsd:element
      name="BUID"
      type="xsd:string"
      ></xsd:element
  ><xsd:element
  name="MessageType"
  type="xsd:string"
  ></xsd:element
        ></xsd:sequence
        ></xsd:complexType
       ></xsd:element
   ><xsd:element
   name="ASWPOSInboundLoyaltyMember_Output"
   ><xsd:complexType
   ><xsd:sequence
   ><xsd:element
        name="MessageType"
        type="xsd:string"
        ></xsd:element
    ><xsd:element
    name="MessageXML"
    type="xsd:string"
    ></xsd:element
        ><xsd:element
        name="ResponseCode"
        type="xsd:string"
        ></xsd:element
   ></xsd:sequence
   ></xsd:complexType
   ></xsd:element
       ><xsd:element

有人知道出了什么问题?我得到的确切错误是“ValidationError:缺少元素MessageXML(aswPosinboundLoyaltMember_Input.MessageXML)”


Tags: name元素inputstringtypexmlelementxsd

热门问题