注册
登录
S公司
搜索
在中
包装
此网站(使用Yahoo!)
开发人员
开发人员邮件列表
普通邮件列表
SVN提交邮件列表
主要
支持
文档
包装
项目包建议书
开发人员
Bugs(错误)
搜索Bug
程序包错误统计信息
打包回家
|
报告新错误
|
新建搜索
|
发展路线图
状态:
正常开放
|
反馈
|
全部
|
自版本0.14.0起关闭
错误#1312
使用嵌套数组进行错误的XML分析
提交:
2004年4月29日10:31 UTC
发件人:
埃里克·多特·西塔尔在拉普斯特·多特网
分配:
状态:
正常开放
包裹:
肥皂
PHP版本:
4.3.4
操作系统:
Linux操作系统
路线图:
(未分配)
订阅
您的电子邮件:
评论
添加注释
添加修补程序
[2004-04-29 10:31 UTC]eric dot citaire在laposte dot-net
描述:
------------
当向PEAR::SOAP WebService发送嵌套数组时,一些元素是对象,而不是数组。
复制代码:
---------------
我的PHP代码:
<?
php(电话)
// ...
//下面是方法声明:
$this->__typedef['{urn:something}Array']=数组(数组('item'=>'anyType'));
$this->__dispatch_map['test']=数组('in'=>数组('aArray'=>'{urn:something}array'));
// ...
?>
客户端发送的XML代码:
<?
xml version=“1.0”encoding=“utf-8”?><
SOAP-ENV:Envelope xmlns:xsi=“
http://www.w3.org/2001/XMLSchema-instance
"
xmlns:xsd=“
http://www.w3.org/2001/XMLSchema
"
xmlns:SOAP-ENV=“
网址:http://schemas.xmlsoap.org/soap/envelope/
"
><SOAP-ENV:Body xmlns:ns1=“urn:something”><ns1:test SOAP-ENV:encodingStyle=“
http://schemas.xmlsoap.org/soap/encoding网址/
"
><anArray soapenc:arrayType=“xsd:anyType[4]”xmlns:soapenc=“
http://schemas.xmlsoap.org/soap/encoding/
"
xsi:type=“soapenc:Array”><item soapenc:arrayType=“xsd:string[0]”xsi:type=“soaperc:Array”/><item sapenc:arrayType=“xsd:double[4]”xsi:type=“sapenc:Array”>1 6</item></itemp><item soapenc:arrayType=“xsd:double[][3]”
xsi:type=“soapenc:Array”><item soapenc:arrayType=“xsd:double[3]”xsi:type=“soaperc:Array”><item xsi:type=“xsd:double”>8“xsd:double[6]”xsi:type=“soapenc:Array”
><item xsi:type=“xsd:double”>5 enc:Array“><item xsi:type=”xsd:double“
>54</item><item xsi:type=“xsd:double”>57</item></anArray></ns1:test></SOAP-ENV:Body>
预期结果:
----------------
阵列(4){
[0]=>
字符串(0)“”
[1]=>
数组(4){
[0]=>
浮子(1)
[1]=>
浮子(5)
[2] =>
浮动(0)
[3]=>
浮子(6)
}
[2]=>
数组(3){
[0]=>
数组(3){
[0]=>
浮子(8)
[1]=>
浮子(9)
[2]=>
浮子(1)
}
[1]=>
浮动(0)
[2]=>
数组(6){
[0]=>
浮子(5)
[1] =>
浮子(7)
[2]=>
浮子(654)
[3]=>
浮子(8)
[4]=>
浮子(1)
[5]=>
浮子(32)
}
}
[3]=>
数组(2){
[0]=>
浮子(54)
[1]=>
浮子(57)
}
}
实际结果:
--------------
数组(1){
[“anArray”]=>
数组(4){
[0]=>
字符串(0)“”
[1]=>
数组(4){
[0]=>
浮子(1)
[1]=>
浮子(5)
[2]=>
浮动(0)
[3]=>
浮子(6)
}
[2]=>
对象(stdClass)(1){
[“项目”]=>
数组(5){
[0]=>
浮子(8)
[1] =>
浮子(9)
[2]=>
浮子(1)
[3]=>
字符串(0)“”
[4]=>
数组(6){
[0]=>
浮子(5)
[1]=>
浮子(7)
[2]=>
浮子(654)
[3] =>
浮子(8)
[4]=>
浮子(1)
[5] =>
浮子(32)
}
}
}
[3]=>
数组(2){
[0]=>
浮子(54)
[1]=>
浮子(57)
}
}
}
评论
[2004-04-29 11:47 UTC]eric dot citaire at laposte dot网络
否则,预期结果应包含索引0处的空数组,但它包含的字符串与<item soapenc:arrayType=“xsd:string[0]”不对应
xsi:type=“soapenc:Array”/>。
[2004-05-14 18:38 UTC]考克斯点网
从声音上看,遇到的问题与这个问题没有太大不同。
我加载了一个WSDL文件并对其进行了解析,但它应该分配的complexType被默认值Array覆盖,每次它尝试创建要发送的信封时,预期的结果总是会失败,因为它要查找的是complexType,所以说数据类型不存在。
无论如何,这是我对8.0-RC3的比较(我删除了阻止代码离开complexType的注释):
差异/
WSDL.php/usr/lib/php/SAP/WSDL.php
1070c1070号
<#if(!array_key_exists('type',$this->wsdl->complexTypes[$this->模式][$thix->currentComplexType]){
---
>if(!array_key_exists('type',$this->wsdl->complexTypes[$this->模式][$thix->currentComplexType]){
1072个1072个
< #}
---
> }
[2006-04-24 21:13 UTC]
阿诺
(阿诺·林堡)
你能看一下并适当地标记这个错误吗,谢谢
[2008-04-06 09:36 UTC]
医生
(丹尼尔·奥康纳)
不幸的是,我认为我们需要更多的精简测试用例来追踪这一点。
[2008-07-04 22:49 UTC]
尤诺什
(简·施奈德)
CVS中增加了单元测试。
[2008-08-03 09:49 UTC]
克韦斯克
(克里斯蒂安·韦斯克)
向简历中添加测试。
最新的cvs版本没有出现上述问题。
[2008-08-04 08:01 UTC]
尤诺什
(简·施奈德)
我不知道你为什么添加了另一个测试,而我已经在你的评论上面直接提到了我已经添加了一个测试。
如果SOAP的当前测试框架显然是PHPT,我也不知道为什么要添加PHPUnit测试。
最后,我不知道为什么你的测试没有失败,但我的测试失败了,所以我们的测试都错了。