.NetFrameworksWSDLユーティリティを使用してクライアントスタブを生成しています。問題は、このユーティリティがいくつかのクラスといくつかの他のクラスのいくつかの関数を生成していないことです。
MS-VisualStudioのコマンドプロンプトから実行したコマンドは次のとおりです。
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ツールを同じように使用すると、コードで適切なセッターメソッドとゲッターメソッドを取得できます。