0

当我使用 wsdl.exe 从我的 wsdl 创建客户端时,它可以完成,但在文件中插入以下注释:

// 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>

有任何想法吗?

4

1 回答 1

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.

添加命名空间会消除该消息。

于 2008-11-09T05:30:16.017 回答