PHP SoapClient: Nieznane wymagane rozszerzenie WSDL

Usiłuję zaimplementować usługę sieci Web działającą w systemie SAP PI. WSDL, który dostałem, wygląda tak:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="request_SO" targetNamespace="http://company.ch/orstest/jason_test" xmlns:p1="http://company.ch/orstest/jason_test" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:documentation/>
    <wsp:UsingPolicy wsdl:required="true"/>
    <wsp:Policy wsu:Id="OP_request_SO"/>
    <wsdl:types>
        <xsd:schema targetNamespace="http://company.ch/orstest/jason_test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://company.ch/orstest/jason_test">
            <xsd:element name="request" type="request"/>
            <xsd:element name="response" type="response"/>
            <xsd:complexType name="request">
                <xsd:annotation>
                    <xsd:appinfo source="http://sap.com/xi/VersionID">a8b7948ac2e211e2b2380000001f0d6a</xsd:appinfo>
                </xsd:annotation>
                <xsd:sequence>
                    <xsd:element name="body" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="response">
                <xsd:annotation>
                    <xsd:appinfo source="http://sap.com/xi/VersionID">bf49af09c36c11e299790000001f0d6a</xsd:appinfo>
                </xsd:annotation>
                <xsd:sequence>
                    <xsd:element name="body" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="request">
        <wsdl:documentation/>
        <wsdl:part name="request" element="p1:request"/>
    </wsdl:message>
    <wsdl:message name="response">
        <wsdl:documentation/>
        <wsdl:part name="response" element="p1:response"/>
    </wsdl:message>
    <wsdl:portType name="request_SO">
        <wsdl:documentation/>
        <wsdl:operation name="request_SO">
            <wsdl:documentation/>
            <wsp:Policy>
                <wsp:PolicyReference URI="#OP_request_SO"/>
            </wsp:Policy>
            <wsdl:input message="p1:request"/>
            <wsdl:output message="p1:response"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="request_SOBinding" type="p1:request_SO">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        <wsdl:operation name="request_SO">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="request_SOService">
        <wsdl:port name="HTTP_Port" binding="p1:request_SOBinding">
            <soap:address location="http://qa1100ap601.company.car.web:50000/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=BS_ORS&amp;receiverParty=&amp;receiverService=&amp;interface=request_SO&amp;interfaceNamespace=http://company.ch/orstest/jason_test" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        </wsdl:port>
        <wsdl:port name="HTTPS_Port" binding="p1:request_SOBinding">
            <soap:address location="https://qas.soa.subcompany.company.ch/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=BS_ORS&amp;receiverParty=&amp;receiverService=&amp;interface=request_SO&amp;interfaceNamespace=http://company.ch/orstest/jason_test" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Mój plik PHP wygląda następująco (obecnie nic więcej):

<?php 
$client = new SoapClient('test.wsdl');
?> 

Po uruchomieniu skryptu pojawia się następujący błąd:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Unknown required WSDL extension 'http://schemas.xmlsoap.org/ws/2004/09/policy' in /srv/www/htdocs/wsdl.php:2 Stack trace: #0 /srv/www/htdocs/wsdl.php(2): SoapClient->SoapClient('test.wsdl') #1 {main} thrown in /srv/www/htdocs/wsdl.php on line 2

Próbowałem wyszukać błąd w google i StackOverflow, a także sprawdziłem komentarze na php.net, ale nie mogę zrozumieć, co musiałbym zmienić, aby uruchomić tę usługę. Próbowałem również otworzyć URL rozszerzenia WSDL, wydaje się, że istnieje.

Czy ktoś może mi tutaj rzucić kość? Próbowałem usunąć adres URL rozszerzenia, co spowodowało następujący błąd:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Unexpected WSDL element <UsingPolicy> in /srv/www/htdocs/wsdl.php:2 Stack trace: #0 /srv/www/htdocs/wsdl.php(2): SoapClient->SoapClient('test.wsdl') #1 {main} thrown in /srv/www/htdocs/wsdl.php on line 2

questionAnswers(4)

yourAnswerToTheQuestion