WSDLからソースコードを生成する場合,WSDL定義のデータ型および名前空間のURLによって,生成されるソースコードでのデータ型が異なります。また,JavaクラスからWSDLを生成する場合,Javaクラスのデータ型によって,WSDL定義での名前空間のURLが異なります。
次に示すWSDL定義を例に,生成されるソースコードのデータ型の違いについて説明します。
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions targetNamespace="http://DefaultNamespace"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:impl="http://DefaultNamespace-impl"
xmlns:intf="http://DefaultNamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="soaplongRequest">
<wsdl:part name="in0" type="soapenc:long" /> (1)
</wsdl:message>
<wsdl:message name="xsdlongRequest">
<wsdl:part name="in0" type="xsd:long" /> (2)
</wsdl:message>
:
</wsdl:definitions>
WSDL定義の(1)の部分と(2)の部分は同じlong型を使用していますが,使用している名前空間が異なるため,生成されるソースコードのデータ型は異なります。生成されたソースコードでは,(1)の部分はjava.lang.Long型に,(2)の部分はlong型になります。