属性???必须具有当前属性name或ref,但不能同时具有“

时间:2012-09-27 14:55:56

标签: xml wsdl

我正在尝试使用带有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由外部提供商托管,因此我们没有机会重新定义它。有人知道一种方法或解决方法来避免这个问题吗?

提前感谢您提供任何帮助

2 个答案:

答案 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)

这是一个糟糕的架构,我不知道它应该是什么意思,所以我不能建议纠正。

如果您的项目依赖于外部供应商提供的不适合的服务,您会问您可以做些什么。这是一个项目管理问题,而不是技术问题。