我正在尝试实现一个Web服务 . 当我使用SoapUI并发送原始XML请求时,它完美地工作:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://ws.wsdomain.com">
       <soap:Header/>
       <soap:Body>
          <web:mainFunction>
             <login>
                <loginData>
                   <name>Freak</name>
                   <password>qwerty</password>
                </loginData>
             </login>
             <xmlData>
             <![CDATA[
             <data>
              <id>123456</id>
              <value>69</value>
             </data>
            ]]>
           </xmlData>
          </web:mainFunction>
       </soap:Body>
    </soap:Envelope>

但是,如果我尝试使用PHP SoapClient,它就行不通 .

<?php

class loginData {var $name = 'Freak'; var $password = 'qwerty';}
class login {var $loginData;} 
class login_input {var $login;}

$loginData = new loginData;
$login = new login;
$login->loginData = $loginData;

$login_input = new ins;
$login_input->login = $login;        

$xml = '<data>
         <id>123456</id>
         <value>69</value>
        </data>';

class xmlData {var $xmlData;}
$xmlData = new xmlData;
$xmlData->xmlData = $xml;   
class xml_input {var $xmlData;}
$xml_input = new xml_input;
$xml_input->xmlData = $xmlData;  

$soapClient = new SoapClient("https://test.ws.wsdomain.com/files/services/structure?wsdl", array('trace' => 1,'cache_wsdl' => WSDL_CACHE_NONE)); 
$ws_result = $soapClient->mainFunction($login_input,$xml_input,true);

它抛出:

致命错误:未捕获的SoapFault异常:[客户端] SOAP-ERROR:编码:对象没有'xmlData'属性

第一个参数(登录)工作正常 . 但是第二个用XML数据是一个完全痛苦的...

我尝试了几乎所有的东西(而不是$ xml变量中的简单XML字符串,我也尝试使用simplexml_load_string函数将它放入一个simplexml对象),但似乎没有任何效果 .