WebLogic Web サービス プログラマーズ ガイド
データ型とデータ バインディング
以下の節では、サポートされるデータ型 (組み込みおよびユーザ定義のデータ型) とデータ バインディングについて説明します。
データ型とデータ バインディングの概要
以前のリリースと同様、WebLogic Web サービスは、JAX-RPC 1.1 仕様の規定に従って、組み込みの XML スキーマ、Java、および SOAP のデータ型をサポートしており、追加のプログラミング手順を行わずに、Web サービスのオペレーションでそれらのデータ型を使用することができます。組み込みデータ型には、integer
、string
、time
などがあります。
また、Web サービスの入力パラメータや戻り値として、さまざまなユーザ定義の XML および Java データ型 (com.bea.xml.XMLBeans
など) を使用できます。ユーザ定義のデータ型には、XML スキーマや Java の構成要素から作成する <xsd:complexType>
や JavaBean などがあります。jwsc
や clientgen
などの WebLogic Web サービス Ant タスクでは、ユーザ定義のデータ型を XML 表現と Java 表現の間で変換するのに必要なデータ バインディング アーティファクトが自動的に生成されます。XML 表現は SOAP リクエストや応答メッセージで使用し、Java 表現は Web サービスを実装する JWS で使用します。XML 表現と Java 表現の間のデータ変換のことをデータ バインディングと呼びます。
警告 : WebLogic Server 9.1 以降は、com.bea.xml.XMLBeans
データ型をパラメータまたは WebLogic Web サービスの戻り値として使用することは非推奨となっています。
サポートされる組み込みデータ型
次の節では、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 マッピング」を参照してください。
表 8-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 データ型」を参照してください。
表 8-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 仕様を参照してください。
表 8-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
および sdl2service
Ant タスクでサポートされるユーザ定義の Java データ型と、それぞれに対応する XML スキーマ データ型をまとめます。
表 8-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 サービスのパラメータまたは戻り値として使用されていましたが、現在はサポートされていません。
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 スタイルの列挙値クラスJAX-RPC スタイルの列挙値クラス