NuSOAP笔记:如何创建复杂数据类型
2008-08-19 16:42
274 查看
PHP已经有了内置的SOAP扩展,但是它不具备自动生成WSDL的能力,所以很多时候,NuSOAP还是有一定诱惑力的。
在应用稍微复杂点的时候,单靠integer, string等简单数据类型是不能满足需要的,这时候,就需要创建复杂数据类型,下面看看在NuSOAP中应该怎么做:
假设我们的应用里有一个“Member”对象,它有id,username,还有friends,直观一点表示,可能是类似下面的结构:
Array
(
[id] => ...
[username] => ...
[friends] => Array
(
[0] => Array
(
[id] => ...
[username] => ...
[friends] => Array(...)
)
[1] => Array
(
[id] => ...
[username] => ...
[friends] => Array(...)
)
)
)
这里稍显复杂的地方就是有一点点递归的味道。下面看看用NuSOAP是如何表示这个数据类型的:
$nusoap->wsdl->addComplexType(
'Members',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array(
'ref' => 'SOAP-ENC:arrayType',
'wsdl:arrayType' => 'tns:Member[]'
)
),
'tns:Member'
);
$nusoap->wsdl->addComplexType(
'Member',
'complexType',
'struct',
'all',
'',
array(
'id' => array('name' => 'id' , 'type' => 'xsd:integer'),
'username' => array('name' => 'username', 'type' => 'xsd:string'),
'friends' => array('name' => 'friends' , 'type' => 'tns:Members')
)
);
如果使用的是PHP内建的SOAP扩展的话,应该怎么创建复杂数据类型呢?答案很简单:手写WSDL创建复杂数据类型!因为PHP内建的SOAP扩展不支持动态生成WSDL,所以只能手写,当然,如果你不了解WSDL规范,也可以先用NuSOAP生成一套,然后用到PHP内建的SOAP扩展中,^_^。
在应用稍微复杂点的时候,单靠integer, string等简单数据类型是不能满足需要的,这时候,就需要创建复杂数据类型,下面看看在NuSOAP中应该怎么做:
假设我们的应用里有一个“Member”对象,它有id,username,还有friends,直观一点表示,可能是类似下面的结构:
Array
(
[id] => ...
[username] => ...
[friends] => Array
(
[0] => Array
(
[id] => ...
[username] => ...
[friends] => Array(...)
)
[1] => Array
(
[id] => ...
[username] => ...
[friends] => Array(...)
)
)
)
这里稍显复杂的地方就是有一点点递归的味道。下面看看用NuSOAP是如何表示这个数据类型的:
$nusoap->wsdl->addComplexType(
'Members',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array(
'ref' => 'SOAP-ENC:arrayType',
'wsdl:arrayType' => 'tns:Member[]'
)
),
'tns:Member'
);
$nusoap->wsdl->addComplexType(
'Member',
'complexType',
'struct',
'all',
'',
array(
'id' => array('name' => 'id' , 'type' => 'xsd:integer'),
'username' => array('name' => 'username', 'type' => 'xsd:string'),
'friends' => array('name' => 'friends' , 'type' => 'tns:Members')
)
);
如果使用的是PHP内建的SOAP扩展的话,应该怎么创建复杂数据类型呢?答案很简单:手写WSDL创建复杂数据类型!因为PHP内建的SOAP扩展不支持动态生成WSDL,所以只能手写,当然,如果你不了解WSDL规范,也可以先用NuSOAP生成一套,然后用到PHP内建的SOAP扩展中,^_^。
相关文章推荐
- NuSOAP笔记:如何创建复杂数据类型
- C++学习笔记(六):复杂数据类型(string、容器和STL)
- DOM笔记(四):HTML 5 DOM复杂数据类型
- C语言程序设计教程笔记_复杂数据类型_指针
- 如何传入WSDL中自定义的复杂数据类型
- Springmvc学习笔记(4)之复杂参数类型绑定、校验、数据回显和异常处理
- DOM笔记(四):HTML 5 DOM复杂数据类型
- C++学习笔记——6.复杂的数据类型
- 笔记二 复杂数据类型
- Flash 与性能实验笔记:几种常用数据类型创建时间
- Gsoap调用java实现的webservice时,如何传递复杂数据类型?
- 如何在ACCESS数据库表中创建各种数据类型的字段
- 【郝斌数据结构自学笔记】16-23_链表的定义与分类_链表节点插入与删除_每一个链表节点的数据类型该如何表示的问题
- javaScript如何简单而准确地判断复杂数据类型
- Flash 与性能实验笔记:几种常用数据类型创建时间
- SSH笔记-类型转换器和错误信息显示、复杂属性、批量更新模型数据
- JS 如何创建对象、数据类型
- MySQL中日期类型数据的使用:如何让字段保存记录的创建时间和最后修改时间
- 【C++】【学习笔记】【007-013】复杂的数据类型
- C语言程序设计教程笔记_复杂数据类型_数组