Webサービスアプリケーションのパラメタ(引数、返り値)で使用できるデータ型と、それに対応してXMLで使用される型を以下に示します。
プリミティブ型
Webサービスアプリケーションのパラメタに使用するJavaのデータ型 | XMLで使用されるデータ型 |
---|---|
int | xsd:int |
short | xsd:short |
long | xsd:long |
byte | xsd:byte |
float | xsd:float |
double | xsd:double |
boolean | xsd:boolean |
参照型
単純型の参照型は、一部のJavaのデータ型について、XMLで使用されるデータ型が選択したスタイル方式によって異なります。
Webサービスアプリケーションのパラメタに使用するJavaのデータ型 | XMLで使用されるデータ型 | |
---|---|---|
デフォルト(literal利用の場合) | encoded利用の場合 | |
java.lang.Integer | xsd:int | soapenc:int |
java.lang.Short | xsd:short | soapenc:short |
java.lang.Long | xsd:long | soapenc:long |
java.lang.Byte | xsd:byte | soapenc:byte |
java.lang.Float | xsd:float | soapenc:float |
java.lang.Double | xsd:double | soapenc:double |
java.lang.Boolean | xsd:boolean | soapenc:boolean |
java.lang.String | xsd:string | soapenc:string |
java.math.BigDecimal | xsd:decimal | soapenc:decimal |
java.math.BigInteger | xsd:integer | soapenc:integer |
java.util.Calendar | xsd:dateTime | xsd:dateTime |
javax.xml.namespace.QName | xsd:QName | xsd:QName |
java.net.URI | xsd:anyURI | xsd:anyURI |
byte[] | xsd:base64Binary | soapenc:base64 |
そのほかのXMLの単純型
以下のXMLのデータ型は、Javaベースの開発では使用されませんが、WSDLおよびSOAP通信では利用できます。利用した場合、データの対応は以下の表のとおりです。
これらのデータ型を使用する場合、SOAP通信でXML上の値がXMLのデータ型に適合することを、アプリケーションで保証する必要があります。
XMLで使用するデータ型 | 対応するJavaのデータ型 |
---|---|
xsd:nonPositiveInteger | java.math.BigInteger |
xsd:negativeInteger | java.math.BigInteger |
xsd:nonNegativeInteger | java.math.BigInteger |
xsd:unsignedLong | java.math.BigInteger |
xsd:unsignedInt | long |
xsd:unsignedShort | int |
xsd:unsignedByte | short |
xsd:positiveInteger | java.math.BigInteger |
xsd:normalizedString | java.lang.String |
xsd:duration | java.lang.String |
xsd:time | java.util.Calendar |
xsd:date | java.util.Calendar |
xsd:gYearMonth | java.lang.String |
xsd:gYear | java.lang.String |
xsd:gMonthDay | java.lang.String |
xsd:gDay | java.lang.String |
xsd:gMonth | java.lang.String |
xsd:token | java.lang.String |
xsd:language | java.lang.String |
xsd:NMTOKEN | java.lang.String |
xsd:Name | java.lang.String |
xsd:NCName | java.lang.String |
xsd:ID | java.lang.String |
xsd:hexBinary | byte[] |
nillableについて
literalのWSDLのスキーマ定義でnillable属性が付いていない、またはnillable属性値が偽(false/0)のelementは、実際の通信でnil(Javaのnullに相当)になることはない要素、という意味の定義になります。
このようなelementに対応するJavaの変数は、値をnullで送信しないでください。
また、Javaで値がnullにならないデータ型(プリミティブ型)に対して、値がnillの要素を受信した場合、該当の変数は、Java言語規定で定義された初期値が設定される場合があります。