Я сам нашел ответ после поиска в интернете.
Ниже приведен код для создания сложного типа данных. Здесь я создаю тип данных Person, для которого в качестве членов данных указаны имя, возраст и пол.
$server->wsdl->addComplexType(
'Person',
'complexType',
'struct',
'all',
'',
array(
'firstname' => array('name' => 'firstname', 'type' => 'xsd:string'),
'age' => array('name' => 'age', 'type' => 'xsd:int'),
'gender' => array('name' => 'gender', 'type' => 'xsd:string')
)
);
Затем мы должны создать еще один новый тип данных, который представляет собой массив созданного нами типа данных. Я называю это массивом человек и код для него ниже:
$server->wsdl->addComplexType(
'PersonArray', // Name
'complexType', // Type Class
'array', // PHP Type
'', // Compositor
'SOAP-ENC:Array', // Restricted Base
array(),
array(
array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Person[]')
),
'tns:Person'
);
Теперь я зарегистрировал функцию getPeople, которая не принимает никаких входных параметров, но возвращает массив персон в виде:
$server->register(
'getPeople', // method name
array(), // input parameters
array('return' => 'tns:PersonArray'), // output parameters
'urn:hellowsdl2', // namespace
'urn:hellowsdl2#getPeople', // soapaction
'rpc', // style
'encoded', // use
'Return an array of people' // documentation
);
и запрограммировал функцию возвращать некоторые фиктивные данные как:
function getPeople()
{
$peopleArray = array();
$peopleArray[] = array(
'firstname' => "Anand",
'age' => 25,
'gender' => "Male"
);
$peopleArray[] = array(
'firstname' => "Sandhya",
'age' => 21,
'gender' => "Female"
);
return $peopleArray;
}
кстати, извините, я не упомянул, но весь этот код написан на PHP.
Надеюсь, это кому-нибудь поможет.