【发布时间】:2014-09-18 22:30:27
【问题描述】:
我需要从客户端接收这样的 XML 输入(包含 2 个或更多元素):
<list>
<item>
<code xsi:type="xsd:string">123</code>
<product xsi:type="xsd:string">hello</product>
<level xsi:type="xsd:float">3</level>
</item>
<item>
<code xsi:type="xsd:string">1234</code>
<product xsi:type="xsd:string">hello2</product>
<level xsi:type="xsd:float">4</level>
</item>
</list>
我可以定义一个这样的 complexType 来描述服务方法的输入参数吗(使用 array(array(...)?
$server->wsdl->addComplexType( '姓名', '复杂类型', '结构', '全部', '', 数组(数组( 'code' => array('name' => 'code', 'type' => 'xsd:string'), 'product' => array('name' => 'product', 'type' => 'xsd:string'), 'level' => array('name' => 'level', 'type' => 'xsd:float') )) ); $server->register('updateCode', // 方法名 array('name' => 'tns:name'), // 输入参数 array('return' => 'xsd:string'), // 输出参数 'urn:updateCode', // 命名空间 'urn:updatecode#updateCode', // 肥皂动作 'rpc', // 样式 '编码' // 使用 ); 函数更新代码($输入){ 返回计数($输入); }当我使用包含 2 个项目的 XML 时,我得到 2 作为响应;当我使用只有 1 个项目的 XML 时,我得到 3 作为响应(如每个项目的字段数),我期望结果为 1。
我不明白为什么会这样。
谢谢,
【问题讨论】: