WebLogic Web サービス プログラマーズ ガイド
データ型とデータ バインディング
以下の節では、サポートされるデータ型 (組み込みおよびユーザ定義のデータ型) とデータ バインディングについて説明します。
データ型とデータ バインディングの概要
以前のリリースと同様、WebLogic Web サービスは、JAX-RPC 1.1 仕様の規定に従って、組み込みの XML スキーマ、Java、および SOAP のデータ型をサポートしており、追加のプログラミング手順を行わずに、Web サービスのオペレーションでそれらのデータ型を使用することができます。組み込みデータ型には、integer
、string
、time
などがあります。
また、Web サービスの入力パラメータや戻り値として、さまざまなユーザ定義の XML および Java データ型 (XMLBean を含む) を使用できます。ユーザ定義のデータ型には、XML スキーマや Java の構成要素から作成する <xsd:complexType>
や JavaBean などがあります。jwsc
や clientgen
などの WebLogic Web サービス Ant タスクでは、ユーザ定義のデータ型を XML 表現と Java 表現の間で変換するのに必要なデータ バインディング アーティファクトが自動的に生成されます。XML 表現は SOAP リクエストや応答メッセージで使用し、Java 表現は Web サービスを実装する JWS で使用します。XML 表現と Java 表現の間のデータ変換のことをデータ バインディングと呼びます。
サポートされる組み込みデータ型
次の節では、WebLogic Web サービスがサポートする組み込みデータ型およびその XML 表現と Java 表現間のマッピングについて説明します。Web サービスを実装するバックエンド コンポーネントのパラメータと戻り値のデータ型が、組み込みデータ型のセットの中にある限り、データは WebLogic Server によって、XML と Java 間で自動的に変換されます。
しかし、ユーザ定義のデータ型を使用する場合は、XML 表現と Java 表現の間でデータを変換するデータ バインディング アーティファクトを作成する必要があります。WebLogic Server には、jwsc
および wsdl2service
Ant タスクが含まれており、ほとんどのユーザ定義データ型のデータ バインディング アーティファクトを生成できます。サポートされる XML データ型と Java データ型については、「サポートされるユーザ定義のデータ型」を参照してください。
組み込みデータ型の XML-to-Java マッピング
次の表に、サポートされる XML スキーマ データ型 (ターゲット ネームスペース http://www.w3.org/2001/XMLSchema
) と、それぞれに対応する Java データ型をまとめます。
サポートされるユーザ定義の XML データ型については、「組み込みデータ型の Java-to-XML マッピング」を参照してください。
表 7-1 XML スキーマ データ型と Java データ型のマッピング
XML スキーマ データ型
|
同等の Java データ型
(小文字はプリミティブ データ型を示す)
|
boolean
|
boolean
|
byte
|
byte
|
short
|
short
|
int
|
int
|
long
|
long
|
float
|
float
|
double
|
double
|
integer
|
java.math.BigInteger
|
decimal
|
java.math.BigDecimal
|
string
|
java.lang.String
|
dateTime
|
java.util.Calendar
|
base64Binary
|
byte[]
|
hexBinary
|
byte[]
|
duration
|
java.lang.String
|
time
|
java.util.Calendar
|
date
|
java.util.Calendar
|
gYearMonth
|
java.lang.String
|
gYear
|
java.lang.String
|
gMonthDay
|
java.lang.String
|
gDay
|
java.lang.String
|
gMonth
|
java.lang.String
|
anyURI
|
java.net.URI
|
NOTATION
|
java.lang.String
|
token
|
java.lang.String
|
normalizedString
|
java.lang.String
|
language
|
java.lang.String
|
Name
|
java.lang.String
|
NMTOKEN
|
java.lang.String
|
NCName
|
java.lang.String
|
NMTOKENS
|
java.lang.String[]
|
ID
|
java.lang.String
|
IDREF
|
java.lang.String
|
ENTITY
|
java.lang.String
|
IDREFS
|
java.lang.String[]
|
ENTITIES
|
java.lang.String[]
|
nonPositiveInteger
|
java.math.BigInteger
|
nonNegativeInteger
|
java.math.BigInteger
|
negativeInteger
|
java.math.BigInteger
|
unsignedLong
|
java.math.BigInteger
|
positiveInteger
|
java.math.BigInteger
|
unsignedInt
|
long
|
unsignedShort
|
int
|
unsignedByte
|
short
|
Qname
|
javax.xml.namespace.QName
|
組み込みデータ型の Java-to-XML マッピング
サポートされるユーザ定義の Java データ型については、「サポートされるユーザ定義の Java データ型」を参照してください。
表 7-2 Java データ型と XML スキーマ データ型のマッピング
Java データ型 (小文字はプリミティブ データ型を示す)
|
同等の XML スキーマ データ型
|
int
|
int
|
short
|
short
|
long
|
long
|
float
|
float
|
double
|
double
|
byte
|
byte
|
boolean
|
boolean
|
char
|
string (length=1 のファセット付き)
|
java.lang.Integer
|
int
|
java.lang.Short
|
short
|
java.lang.Long
|
long
|
java.lang.Float
|
float
|
java.lang.Double
|
double
|
java.lang.Byte
|
byte
|
java.lang.Boolean
|
boolean
|
java.lang.Character
|
string (length=1 のファセット付き)
|
java.lang.String
|
string
|
java.math.BigInteger
|
integer
|
java.math.BigDecimal
|
decimal
|
java.util.Calendar
|
dateTime
|
java.util.Date
|
dateTime
|
byte[]
|
base64Binary
|
javax.xml.namespace.QName
|
Qname
|
java.net.URI
|
anyURI
|
サポートされるユーザ定義のデータ型
以降の節の表には、jwsc
および wsdl2service
Ant タスクでデータ バインディング アーティファクトを生成できるユーザ定義の XML データ型および Java データ型 (対応する Java 表現または XML 表現、JAX-RPC の型マッピング ファイルなど) をまとめます。
これらの表に含まれていない XML データ型または Java データ型で、「サポートされる組み込みデータ型」の表に示した組み込みデータ型でもない場合は、ユーザ定義データ型のアーティファクトを手動で作成する必要があります。
サポートされるユーザ定義の XML データ型
次の表に、jwsc
および wsdl2service
Ant タスクでサポートされる XML スキーマ データ型と、それぞれに対応する Java データ型またはマッピング メカニズムをまとめます。
データ型の詳細や例については、JAX-RPC 仕様を参照してください。
表 7-3 サポートされているユーザ定義の XML スキーマ データ型
XML スキーマ データ型
|
同等の Java データ型またはマッピング メカニズム
|
列挙
|
型保障列挙パターン。詳細は、JAX-RPC 仕様のセクション 4.2.4 を参照。
|
単純型および複合型の両方の要素を持つ <xsd:complexType>
|
JavaBeans。
|
単純なコンテンツを含む <xsd:complexType>
|
JavaBeans。
|
<xsd:complexType> の <xsd:attribute>
|
JavaBeans のプロパティ。
|
既存の単純型の制限による新しい単純型の派生
|
同等の単純型の Java データ型。
|
制限要素で使用されるファセット
|
シリアライゼーションおよびデシリアライゼーションで強制されないファセット。
|
<xsd:list>
|
リスト データ型の配列。
|
wsdl:arrayType 属性を使用した制限によって soapenc:Array から派生する配列
|
arrayType データ型と同等の Java データ型の配列。
|
制限によって soapenc:Array から派生する配列
|
同等の Java データ型の配列。
|
単純型からの複合型の派生
|
_value というプロパティを含む JavaBean。_value の型は、この節の規則に従って単純型からマップされる。
|
<xsd:anyType>
|
java.lang.Object。
|
<xsd:union>
|
ユニオン メンバーの共通の親タイプ。
|
<xsi:nil> および <xsd:nillable> 属性
|
Java の null 値。
XML データ型が組み込みデータ型で通常は Java プリミティブ データ型 (int や short など) にマップされる場合、その XML データ型は実際には同等のオブジェクト ラッパー型 (java.lang.Integer や java.lang.Short など) にマップされる。
|
複合型の派生
|
Java の継承を使用してマップされる。
|
抽象型
|
抽象 Java データ型。
|
サポートされるユーザ定義の Java データ型
次の表に、jwsc
および wsdl2service
Ant タスクでサポートされるユーザ定義の Java データ型と、それぞれに対応する XML スキーマ データ型をまとめます。
表 7-4 サポートされているユーザ定義の Java データ型
Java データ型
|
同等の XML スキーマ データ型
|
サポートされている任意のデータ型をプロパティとする JavaBean
|
JavaBean プロパティに対応する要素の <xsd:sequence> をコンテンツ モデルとする <xsd:complexType> 。
|
サポートされるすべてのデータ型の配列 (JavaBean プロパティとして使用する場合)
|
maxOccurs 属性が unbounded に設定されている <xsd:complexType> 内の要素。
|
java.lang.Object
注意 : 実行時オブジェクトのデータ型は既知の型でなければならない。
|
<xsd:anyType>。
|
注意 : 以下の Java データ型は、バージョン 8.1 の WebLogic Web サービスではサポートされていましたが、今後はサポートされません。
以下のユーザ定義データ型は、WebLogic Web サービスのパラメータまたは戻り値として使用します。
java.util.List
(JavaBean プロパティとして使用する場合)java.util.ArrayList
(JavaBean プロパティとして使用する場合)java.util.LinkedList
(JavaBean プロパティとして使用する場合)java.util.Vector
(JavaBean プロパティとして使用する場合)java.util.Stack
(JavaBean プロパティとして使用する場合)java.util.Collection
(JavaBean プロパティとして使用する場合)java.util.Set
(JavaBean プロパティとして使用する場合)java.util.HashSet
(JavaBean プロパティとして使用する場合)java.util.SortedSet
(JavaBean プロパティとして使用する場合)java.util.TreeSet
(JavaBean プロパティとして使用する場合)JAX-RPC スタイルの列挙値クラス