SOAP wsdl:part name="request" element type question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a WSDL (ProblemReportService.wsdl) that is defined as follows:

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:tns="http://localhost/ProblemReportService.wsdl"; xmlns:ha1="http://localhost/ProblemReport.xsd"; name="ProblemReportService" targetNamespace="http://localhost/ProblemReportService.wsdl";>
<wsdl:types>
            <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:ha1="http://localhost/ProblemReport.xsd"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
                  <xs:import namespace="http://localhost/ProblemReport.xsd"; schemaLocation="ProblemReport.xsd"/>
                  <xs:import namespace="http://localhost/dropdownvalues.xsd"; schemaLocation="dropdownvalues.xsd"/>
            </xs:schema>
      </wsdl:types>
<wsdl:message name="NewProblemReportRequest">
            <wsdl:part name="request" element="ha1:ProblemReport"/>
      </wsdl:message>
<wsdl:message name="ProblemReportResponse">
            <wsdl:part name="parameter" type="xs:string"/>
      </wsdl:message>
<wsdl:portType name="ProblemReportPortType">
            <wsdl:operation name="submitProblemReport">
                  <wsdl:input message="tns:NewProblemReportRequest"/>
                  <wsdl:output message="tns:ProblemReportResponse"/>
            </wsdl:operation>
      </wsdl:portType>
..

I've created an xml file (ProblemReport.xml) that validates to ProblemReport.xsd.

I now have a SOAP Client php file that needs to send this request to the SOAP Server, how would I write the client and server side in php?

Client:
try {
      $client = new SoapClient("ProblemReportService.wsdl", array('soap_version' => SOAP_1_1,'trace' => 1 ));
      // How would I define $request from the contents of ProblemReport.xml file?
      $return = $client->__soapCall("submitProblemReport", $request);
} catch (SoapFault $fault) {
      trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}

Server:
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("http://localhost/ProblemReportService.wsdl";, array('soap_version' => SOAP_1_1));
$server->addFunction("submitProblemReport");
$server->handle();
function submitProblemReport($problem) {
      // How can I validate the $problem against a XSD schema?
      // and how can I unmarshal the $problem to access the data contained within the original xml file?
}

Any assistance appreciated.

Thanks,
Brendan


[Index of Archives]     [PHP Home]     [PHP Users]     [Kernel Newbies]     [PHP Database]     [Yosemite]

  Powered by Linux