- Модуль: webservice
- Путь к файлу: ~/bitrix/modules/webservice/classes/general/wsdl/wsdlcreator.php
- Класс: CWSDLCreator
- Вызов: CWSDLCreator::__createMessage
function __createMessage ($name, $returnType = false, $params = array())
{
global $xsd_simple_type;
$insoap = array();
$outsoap = array();
$message = new CXMLCreator("wsdl:message");
$message->setAttribute("name", $name."SoapIn");
$part = new CXMLCreator("wsdl:part");
$part->setAttribute("name", "parameters");
$part->setAttribute("element", "tns:".$name/*."Request"*/);
$message->addChild($part);
if (is_array($params)) {
foreach ($params as $pname=>$param) {
$type = isset($param["varType"]) ? $param["varType"]:"anyType";
if (isset($xsd_simple_type[$type])) {
$insoap[$pname] = $xsd_simple_type[$type];
$type = "xsd:".$xsd_simple_type[$type];
} else {
$this->AddArrayType($pname, $param);
$insoap[$pname] = $param["varType"];
$type = "tns".":".$param["varType"];
}
}
}
$this->messages[] = $message;
if ($returnType) {
//foreach ($returnType as $pname=>$param) break;
$message = new CXMLCreator("wsdl:message");
$message->setAttribute("name", $name."SoapOut");
$part = new CXMLCreator("wsdl:part");
$part->setAttribute("name", "parameters");
$part->setAttribute("element", "tns:".$name."Response");
$message->addChild($part);
//changed by Sigurd
if (is_array($params))
{
foreach ($returnType as $pname=>$param)
{
$type = isset($param["varType"]) ? $param["varType"]:"anyType";
if (isset($xsd_simple_type[$type])) {
$outsoap[$pname] = $xsd_simple_type[$type];
$type = "xsd:".$xsd_simple_type[$type];
} else {
if (isset($this->typeTypens[$type])) {
$type = $this->typeTypens[$type].":".$type;
} else {
$this->AddArrayType($pname, $param);
$outsoap[$pname] = $param["varType"];
$type = "tns".":".$param["varType"];
}
}
}
}
$this->messages[] = $message;
} else {
$message = new CXMLCreator("message");
$message->setAttribute("name", $name."Response");
$this->messages[] = $message;
}
$this->typensDefined[$name/*."Request"*/] = $name/*."Request"*/;
$this->typensDefined[$name."Response"] = $name."Response";
$this->typensVars[$name/*."Request"*/] = $insoap;
$this->typensVars[$name."Response"] = $outsoap;
}