肥皂客户为什么要切断子元素?

时间:2019-05-13 07:46:08

标签: php xml soap soap-client

我正在使用PHP SoapClient发出请求。 XML结构应如下所示:

<tar:setPackage>
    <tar:Package>
        <tar:Content>
            <tar:Object xsi:type="par:Car">
                <par:Descritpion>1</par:Descritpion>
                <par:Color>Blue</par:Color>
            </tar:Object>
        </tar:Content>
        <pev:Supplier>
            <pev:Id>04</pev:Id>
        </pev:Supplier>
    </tar:Package>
</tar:setPackage>

但是不幸的是,__getLastRequest()的输出结果如下:

<tar:setPackage>
    <tar:Package>
        <tar:Content>
            <tar:Object xsi:type="par:Car"/>
        </tar:Content>
        <pev:Supplier>
            <pev:Id>04</pev:Id>
        </pev:Supplier>
    </tar:Package>
</tar:setPackage>

如您在此处看到的,子元素已被切除。 它必须与xsi类型的“ par:Car”有关,因为如果更改它,子元素将不会被截断。

根据所引用的WSDL文件,“汽车”源自“对象”。

这是我使用PHP Soap Client的方法:

$parm = array();
$parm2 = array();
$parm2[] = new SoapVar("1", XSD_STRING, null, null, "Description", "http://dummy-url.com/car");
$parm[] = new SoapVar($parm2, SOAP_ENC_OBJECT, "Car", "http://dummy-url.com/car", "Object", "http://dummy-url.com/objectdata");
$response = $client->setPackage(new SoapVar($parm, SOAP_ENC_OBJECT));
print_r($client->__getLastRequest());

如何防止子元素被截断?

0 个答案:

没有答案