Oracle® Fusion Middleware Oracle WebLogic Server JAX-RPC を使用した Web サービス入門 11g リリース 1 (10.3.1) B55567-01 |
|
戻る |
次へ |
以下の節では、データ バインディングとサポートされるデータ型 (組み込みおよびユーザ定義のデータ型) について説明します。
さまざまなシステム間でのデータ交換には XML が標準的に使用されているため、Web サービス アプリケーションには、Java アプリケーションから直接 XML 形式ドキュメントへアクセスする手段が必要となります。具体的には、XML コンテンツを Java アプリケーションで読み取れる形式に変換する必要があります。「データ バインディング」では、XML 表現と Java 表現間のデータ変換を記述します。
以前のリリースと同様、WebLogic Web サービスでは、JAX-RPC 仕様 (https://jax-rpc.dev.java.net
) の規定に従って組み込みの XML スキーマ、Java、および SOAP のデータ型がサポートされており、追加のプログラミング手順を踏まずに、そうしたデータ型を Web サービスのオペレーションで使用できます。組み込みデータ型には、integer
、string
、time
などがあります。
また、Web サービスの入力パラメータや戻り値として、さまざまなユーザ定義の XML および Java データ型 (org.apache.xmlbeans
パッケージの Apache XmlBeans を含む) を使用できます。ユーザ定義のデータ型には、XML スキーマや Java の構成要素から作成する <xsd:complexType>
や JavaBean などがあります。jwsc
や clientgen
などの WebLogic Web サービス Ant タスクでは、ユーザ定義のデータ型を XML 表現と Java 表現の間で変換するのに必要なデータ バインディング アーティファクトが自動的に生成されます。XML 表現は SOAP リクエストや応答メッセージで使用し、Java 表現は Web サービスを実装する JWS で使用します。
注意 : WebLogic Server 9.1 以降では、XMLBeans 1.x データ型 (つまりcom.bea.xml.XmlObject の拡張) を WebLogic Web サービスのパラメータまたは戻り値の型として使用することは非推奨です。新たに作成するアプリケーションでは、XMLBeans 2.x のデータ型を使用する必要があります。 |
次の節では、WebLogic Web サービスがサポートする組み込みデータ型およびその XML 表現と Java 表現間のマッピングについて説明します。Web サービスを実装するバックエンド コンポーネントのパラメータと戻り値のデータ型が、組み込みデータ型のセットの中にある限り、データは WebLogic Server によって、XML と Java 間で自動的に変換されます。
一方、ユーザ定義のデータ型を使用する場合は、XML 表現と Java 表現の間でデータを変換するデータ バインディング アーティファクトを作成する必要があります。WebLogic Server には jwsc
および wsdlc
Ant タスクが含まれており、ほとんどのユーザ定義データ型のデータ バインディング アーティファクトを自動的に生成できます。サポートされる XML データ型と Java データ型については、「サポートされるユーザ定義のデータ型」を参照してください。
次の表に、サポートされる XML スキーマ データ型 (ターゲット ネームスペース http://www.w3.org/2001/XMLSchema
) と、それぞれに対応する Java データ型をまとめます。
サポートされるユーザ定義の XML データ型については、「組み込みデータ型の Java-to-XML マッピング」を参照してください。
表 5-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.util.Calendar |
gYear |
java.util.Calendar |
gMonthDay |
java.util.Calendar |
gDay |
java.util.Calendar |
gMonth |
java.util.Calendar |
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 データ型については、「サポートされるユーザ定義の Java データ型」を参照してください。
表 5-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 |
javax.xml.datatype.XMLGregorianCalendar |
anySimpleType |
javax.xml.datatype.Duration |
duration |
java.lang.Object |
anyType |
java.awt.Image |
base64Binary |
javax.activation.DataHandler |
base64Binary |
javax.xml.transform.Source |
base64Binary |
java.util.UUID |
string |
以降の節の表には、jwsc
および wsdlc
Ant タスクでデータ バインディング アーティファクトを自動的に生成できるユーザ定義の XML データ型および Java データ型 (対応する Java 表現または XML 表現、JAX-RPC の型マッピング ファイルなど) をまとめます。
これらの表にない XML データ型または Java データ型で、「サポートされる組み込みデータ型」の表に示した組み込みデータ型でもない型の場合は、ユーザ定義データ型のアーティファクトを手動で作成する必要があります。
次の表に、jwsc
および wsdlc
Ant タスクでサポートされる XML スキーマ データ型と、それぞれに対応する Java データ型またはマッピング メカニズムをまとめます。
データ型の詳細と例については、JAX-RPC 仕様 (https://jax-rpc.dev.java.net
) を参照してください。
表 5-3 サポートされているユーザ定義の XML スキーマ データ型
XML スキーマ データ型 | 同等の Java データ型またはマッピング メカニズム |
---|---|
単純型および複合型の両方の要素を持つ |
JavaBeans。 |
単純なコンテンツを含む |
JavaBeans。 |
|
JavaBeans のプロパティ。 |
既存の単純型の制限による新しい単純型の派生 |
同等の単純型の Java データ型。 |
制限要素で使用されるファセット |
シリアライゼーションおよびデシリアライゼーションで強制されないファセット。 |
|
リスト データ型の配列。 |
|
|
制限によって |
同等の Java データ型の配列。 |
単純型からの複合型の派生 |
|
|
java.lang.Object |
<xsd:any> |
|
<xsd:any[]> |
|
<xsd:union> |
ユニオン メンバーの共通の親タイプ。 |
|
Java の XML データ型が組み込みデータ型で通常は Java プリミティブ データ型 ( |
複合型の派生 |
Java の継承を使用してマップされる。 |
抽象型 |
抽象 Java データ型。 |
次の表に、jwsc
および wsdlc
Ant タスクでサポートされるユーザ定義の Java データ型と、それぞれに対応する XML スキーマ データ型をまとめます。
表 5-4 サポートされているユーザ定義の Java データ型
Java データ型 | 同等の XML スキーマ データ型 |
---|---|
サポートされている任意のデータ型をプロパティとする JavaBean |
JavaBean プロパティに対応する要素の |
サポートされるすべてのデータ型の配列および多次元配列 (JavaBean プロパティとして使用する場合) |
|
注意 : 実行時オブジェクトのデータ型は既知の型でなければならない。 |
|
( 注意 : Apache XMLBeans データ型を戻り値またはパラメータとして使用する Web サービスは、 |
Apache XMLBeans ( |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
|
リテラル配列。 |
注意 : 以下のユーザ定義の Java データ型は、バージョン 8.1 では WebLogic Web サービスのパラメータまたは戻り値として使用されていましたが、現在はサポートされていません。JAX-RPC スタイルの列挙値クラス。また、パラメータまたは戻り値としてのジェネリックスの使用はサポートされていません。たとえば、以下の Java メソッドはパブリックなオペレーションとして公開できません。
|