我正在使用 .Net Frameworks WSDL 实用程序来生成客户端存根。问题是,这个实用程序没有在其他一些类中生成一些类和一些函数。
我从 MS-visual studio 命令提示符发出的命令如下,
wsdl /l:CS /protocol:SOAP ../XXXService.wsdl ../XXXSchema.xsd
这会生成错误的客户端存根。我生成错误代码的 XSD 元素如下,
<xs:sequence>
<xs:element minOccurs="0" name="createdTime" type=`enter code here`"xs:dateTime"/>
<xs:element minOccurs="0" name="description" type="xs:string"/>
<xs:element name="emailAddress" type="xs:string"/>
<xs:choice>
<xs:element name="isBounce" type="xs:boolean"/>
<xs:sequence>
<xs:element minOccurs="0" name="fromName" type="xs:string"/>
<xs:element name="isFrom" type="xs:boolean"/>
</xs:sequence>
<xs:element name="isReply" type="xs:boolean"/>
</xs:choice>
<xs:element minOccurs="0" name="organizationId" type="tns:OrganizationId"/>
<xs:element minOccurs="0" name="ownerId" type="tns:UserId"/>
</xs:sequence>
生成的代码是,
[System.Xml.Serialization.XmlElementAttribute("fromName", typeof(string))]
[System.Xml.Serialization.XmlElementAttribute("isBounce", typeof(bool))]
[System.Xml.Serialization.XmlElementAttribute("isFrom", typeof(bool))]
[System.Xml.Serialization.XmlElementAttribute("isReply", typeof(bool))]
[System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
而如果我以同样的方式使用 WSDLToJava 工具,我会在代码中获得正确的 setter 和 getter 方法。