SOAP拡張モジュールのDocument/Literal対応
[参考記事] RPC/EncodedとDocument/Literal
SOAP拡張モジュールのSoapClientとSoapServerは、Document/LiteralのWSDLに対応していません。
ZendFrameworkのzend-soapには、Document/Literalのラッパーがあります。
zend-soap
php: ^5.6 || ^7.0
zend-soap/src/Server/DocumentLiteralWrapper.php
ただしzend-soapは、DocumentLiteralWrapper.phpを介してServer.phpでSOAP拡張モジュールを使用しているだけです。
Document/Literalに対応させるだけなら、DocumentLiteralWrapper.phpだけを使用するということもできます。
このDocumentLiteralWrapper.phpは、SOAPリクエストのXML <Header>には対応しておらず、<Envelope>以下は<Body>のみでないとUnexpectedValueExceptionとなります。
関連記事
- RPC/EncodedとDocument/Literal(use="encoded"はWS-Iに準拠しない)
- SoapClientとSoapServerはabstract属性とsubstitutionGroup属性を無視する
- SOAP拡張モジュールSoapServerの属性値のエスケープ
スポンサーリンク