Oracle® Fusion Middleware Oracle WebLogic Server JAX-RPC Webサービス・スタート・ガイド 11g リリース1(10.3.5) B61647-03 |
|
![]() 前 |
![]() 次 |
以下の項では、データ・バインディングとサポートされるデータ型(組込みおよびユーザー定義のデータ型)について説明します。
様々なシステム間でのデータ交換にはXMLが標準的に使用されているため、Webサービス・アプリケーションには、Javaアプリケーションから直接XML形式のドキュメントへアクセスする手段が必要となります。具体的には、XMLコンテンツをJavaアプリケーションで読み取ることのできる形式に変換する必要があります。このXML表現とJava表現の間のデータ変換を記述したものがデータ・バインディングです。
以前のリリースと同様、WebLogic Webサービスでは、JAX-RPC仕様(http://java.net/projects/jax-rpc/
)の規定に従って組込みの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 (with facet of 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 (with facet of 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仕様(http://java.net/projects/jax-rpc/
)を参照してください。
表5-3 サポートされているユーザー定義のXMLスキーマ・データ型
XMLスキーマ・データ型 | 同等のJavaデータ型またはマッピング・メカニズム |
---|---|
単純型および複合型の両方の要素を持つ |
JavaBean |
単純なコンテンツを含む |
JavaBean |
|
JavaBeanのプロパティ。 |
既存の単純型の制限による新しい単純型の派生 |
同等の単純型の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データ型であるJAX-RPCスタイルの列挙値クラスは、バージョン8.1ではWebLogic Webサービスのパラメータまたは戻り値として使用されていましたが、現在はサポートされていません。また、パラメータまたは戻り値としてのジェネリックスの使用はサポートされていません。たとえば、以下のJavaメソッドはパブリックな操作として公開できません。
|