私のコードであるPHPのsoapClientクラスを使用してSOAPリクエストを作成しようとしています:
$xmlstr = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://localhost:8090/mockCustomerManagement/types">
<soapenv:Header>
<typ:customerManagementHeader>
<typ:userId>42</typ:userId>
<typ:requestId>1500</typ:requestId>
<typ:messageTimestamp>2013-09-25T14:31:21+00:00</typ:messageTimestamp>
</typ:customerManagementHeader>
</soapenv:Header>
<soapenv:Body>
<typ:getCustomerInfoData>
<useremail>sargentoarensivia@nobody.es</useremail>
</typ:getCustomerInfoData>
</soapenv:Body>
</soapenv:Envelope>
XML;
$wsdl = 'http://localhost:8090/mockCustomerManagementSoapHttpBinding?WSDL';
$client = new SoapClient($wsdl, array(
'cache_wsdl' => WSDL_CACHE_NONE,
'cache_ttl' => 86400,
'trace' => true,
'exceptions' => true,
));
$xmlVar = new SoapVar($xmlstr, XSD_ANYXML);
$client->getCustomerInfo($xmlstr);
しかし、リクエストは例外をスローし、クライアントに最後のリクエストを要求すると、次のように XML の最初と最後に余分なテキストが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://localhost:8090/mockCustomerManagement/types">
<SOAP-ENV:Body>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://localhost:8090/mockCustomerManagement/types">
<soapenv:Header>
<typ:customerManagementHeader>
<typ:userId>42</typ:userId>
<typ:requestId>1500</typ:requestId>
<typ:messageTimestamp>2013-09-25T14:31:21+00:00</typ:messageTimestamp>
</typ:customerManagementHeader>
</soapenv:Header>
<soapenv:Body>
<typ:getCustomerInfoData>
<useremail>sargentoarensivia@nobody.es</useremail>
</typ:getCustomerInfoData>
</soapenv:Body>
</soapenv:Envelope>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
その余分なテキストを削除/無効にする方法はありますか? つまり、自分の XML だけを送信する方法はありますか?