当我使用wsdl.exe从我的wsdl创建客户端时,它完成了O.K.,但在文件中插入以下注释:
// CODEGEN:参数'VerificationData'需要使用参数模式无法捕获的其他架构信息。具体属性为'System.Xml.Serialization.XmlArrayItemAttribute'。
我无法弄清楚wsdl中应该有哪些附加信息,其中相关部分如下所示:
<xsd:complexType name="VerificationDataType">
<xsd:sequence>
<xsd:element name="Item" type="VerificationItemType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="VerificationItemType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
有什么想法吗?
答案 0 :(得分:1)
我无法从您提供的WSDL片段中看出来,但我想知道您是否需要在Item元素中使用的类型上使用命名空间,例如
<xsd:element name="Item" type="ns:VerificationItemType" minOccurs="0" maxOccurs="unbounded" />
其中ns是命名空间别名。
当我尝试使用VisualStudio 2008附带的wsdl.exe重现您的问题时,收到错误消息
- The datatype 'http://schemas.xmlsoap.org/wsdl/:VerificationItemType' is missing.
添加命名空间会删除该消息。