Guten Morgen,
ich sitze momentan vor einem kleinen Problem mit der Validierung eines Soap Requests. Es wird ein SoapClient anhand einer WSDL erstellt und es soll eine Funktion des Webservices ausgeführt werden.
Für den Aufruf der Webservice Funktion übergebe ich ein Objekt mit allen erforderlichen Parametern. Macht ja soweit auch Sinn.
Kurzes praktisches Beispiel:
Daraus erhalte ich dann folgendes XML:
Nun wird aber ein SoapFault geworfen, weil der Request Knoten noch ein Attribut "Version" benötigt. Ohne dieses ist das Schema nämlich invalid. Es soll also so aussehen:
Die Frage: Wie bekomme ich anhand der Klassenstruktur StructRequest und StructStatus das Attribut "Version" gesetzt? Gibt es hierfür eine Lösung?
ich sitze momentan vor einem kleinen Problem mit der Validierung eines Soap Requests. Es wird ein SoapClient anhand einer WSDL erstellt und es soll eine Funktion des Webservices ausgeführt werden.
Für den Aufruf der Webservice Funktion übergebe ich ein Objekt mit allen erforderlichen Parametern. Macht ja soweit auch Sinn.
Kurzes praktisches Beispiel:
PHP-Code:
$client = new SoapClient($wsdl, array(
'trace' => 1,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE
));
class StructStatus {
public $ProzessID = 0;
public function __construct($ProzessID) {
$this->ProzessID = $ProzessID;
}
}
class StructRequest {
public $Request = null;
public function __construct($ProzessID) {
$this->Request = new stdClass();
$this->Request->Status = new StructStatus($ProzessID);
}
}
$params = new StructRequest(123);
$client->getStatus($params);
Code:
<ns1:getStatus> <ns1:Request> <ns1:Status> <ns1:ProzessID>26831</ns1:ProzessID> </ns1:Status> </ns1:Request> </ns1:getStatus>
Code:
<ns1:getStatus> <ns1:Request Version="1.0.0.1"> ... </ns1:Request> </ns1:getStatus>
Kommentar