PHP SoapServer から SoapFault を返そうとしていますが、適切な形式の応答を作成することに固執しています。
例外を処理するとき、私は以下を返します:
$detail = "message";
return new SoapFault("Client", "ValidationException", null, $detail, "ValidationException");
応答は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>ValidationException</faultstring>
<detail>
<ValidationException>
<message>message</message>
</ValidationException>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
ただし、応答を次のようにしたいと思います。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>ValidationException</faultstring>
<detail>
<ns2:ValidationException xmlns:ns2="http://service.applicationsnet.com/soap/">
<message>message</message>
</ns2:ValidationException>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
私はいくつかのことを試しましたが、うまくいきませんでした。手伝ってくれませんか?
名前空間に関するもう 1 つのことですが、"SOAP-ENV" エンベロープの名前空間を変更することは可能ですか? ありがとう。