我正在尝试使用带有Visual Studio 2010客户端的SOAP标准的PHP创建的Web服务。
当我尝试生成代理时,错误会引发WSDL文件的格式。错误消息是这样的(翻译如此inacurate):
名为“Inscritos”的ComplexType架构元素出错, 属性???必须具有当前属性name或ref,但不能同时具有
回顾WSDL我找到了这个元素:
<xsd:complexType name="Inscritos">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute res="http://schemas.xmlsoap.org/soap/encoding/:arrayType" wsdl:arrayType="tns:Inscritos2[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
WS由外部提供商托管,因此我们没有机会重新定义它。有人知道一种方法或解决方法来避免这个问题吗?
提前感谢您提供任何帮助
答案 0 :(得分:0)
我很确定xsd:attribute
代码应该包含属性ref
而不是res
。尝试更改
<xsd:attribute res="http://schemas.xmlsoap.org/soap/encoding/:arrayType" wsdl:arrayType="tns:Inscritos2[]"/>
到
<xsd:attribute ref="http://schemas.xmlsoap.org/soap/encoding/:arrayType" wsdl:arrayType="tns:Inscritos2[]"/>
^
答案 1 :(得分:0)
这是一个糟糕的架构,我不知道它应该是什么意思,所以我不能建议纠正。
如果您的项目依赖于外部供应商提供的不适合的服务,您会问您可以做些什么。这是一个项目管理问题,而不是技术问题。