<转>cvc-complex-type.四:Attribte 'part' must appear on element 'mime:content'
JAVA调用DOTNET写的返回为DataSet类型的WebService函数出错 出错信息为: <mime:content type="application/x-www-form-urlencoded" /> cvc-complex-type.4:Attribte 'part' must appear on element 'mime:content'. 因为它是使用匿名架构类型声明的,仅顶级命名类型可以与 rpc\literal SOAP 消息一... 根本原因为: DOTNET编写的WebService函数,如果返回类型为DataSet,则出现该问题. 客户Java端到底是怎样的,由于我只是做服务端,客户只反应上面2个问题. 而我用DotNet程序测试无问题,最后客户说明是Java端调用. Java中没有DotNet内置的DataSet类,无法解析. 虽然网上有些在Java下的类似DataSet类能有限解决该问题,但是最好还是用标准方法. 解决方法: WebService函数,最终返回结果是个xml字符串,而DataSet产生的xml字符串,是使用匿名架构类型声明的. 所以必须使用简单数据类型或简单数据类型数组. 在尽量少改变原有代码的基础上,有以下2种解决方法. 1 服务器端返回为string,内容为xml字符串,可以使用DataSet.GetXml()方法. 服务端改动量很少. 对应客户端需要自己读取该xml字符串. 2 返回为包含简单数据类型的类数组,但在服务端要将DataSet中的各个字段都一一映射的数组中. 客户端很方便读取. 服务端改动量稍微大点,如果字段多的话就麻烦了. 总结: WebService传输数据时,参数类型最好是简单数据类型,或者直接是个xml字符串. 这样能够避免各个系统之间的兼容性问题.