11.1 WSDL定義とソースコードのデータ型の関係

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型になります。