WebSphere Enterprise Service Bus for z/OS バージョン 6.2.0 オペレーティング・システム: z/OS


Java からサービス・データ・オブジェクトへの変換で使用されるランタイム・ルール

生成されるコードを正しくオーバーライドする、または Java™ からサービス・データ・オブジェクト (SDO) への変換に関連して起こりうるランタイム例外を判別するには、関係のあるルールを理解することが重要です。変換の大部分は簡単なものですが、生成されたコードを変換するときに、ランタイムが最適な方法を提供するという、複雑なケースもあります。

基本の型およびクラス

ランタイムは、サービス・データ・オブジェクトと基本の Java 型およびクラス間で単純な変換を実行します。基本の型およびクラスは以下のとおりです。
  • Char または java.lang.Character
  • Boolean
  • Java.lang.Boolean
  • Byte または java.lang.Byte
  • Short または java.lang.Short
  • Int または java.lang.Integer
  • Long または java.lang.Long
  • Float または java.lang.Float
  • Double または java.lang.Double
  • Java.lang.String
  • Java.math.BigInteger
  • Java.math.BigDecimal
  • Java.util.Calendar
  • Java.util.Date
  • Java.xml.namespace.QName
  • Java.net.URI
  • Byte[]

ユーザー定義の Java クラスおよび配列

Java クラスまたは配列から SDO に変換する場合、ランタイムが作成するデータ・オブジェクトは、Java 型のパッケージ名を反転して生成される URI を持ち、Java クラス名と同じ型を持ちます。 例えば、Java クラス com.ibm.xsd.Customer が SDO に変換されると、URI は http://xsd.ibm.com であり、Customer 型を持ちます。次にランタイムは Java クラス・メンバーのコンテンツを検査し、値を SDO 内のプロパティーに割り当てます。

SDO から Java 型に変換する場合、ランタイムは URI を反転させてパッケージ名を生成し、SDO の型と同じ型の名前を生成します。例えば、型 Customer と、URI http://xsd.ibm.com を持つデータ・オブジェクトは、Java パッケージ com.ibm.xsd.Customer のインスタンスを生成します。 次にランタイムは、SDO のプロパティーから値を抽出し、それらのプロパティーを Java クラスのインスタンス内のフィールドに割り当てます。

Java クラスがユーザー定義のインターフェースである場合、生成されるコードをオーバーライドして、ランタイムがインスタンス化できる具象クラスを作成する必要があります。ランタイムが具象クラスを作成できない場合、例外が発生します。

Java.lang.Object

Java 型が java.lang.Object の場合、生成される型は xsd:anyType です。モジュールは、すべての SDO で、このインターフェースを呼び出すことができます。ランタイムは、具象クラスを見つけることができる場合は、ユーザー定義の Java クラスと配列の場合と同様にその具象クラスをインスタンス化しようとします。見つからない場合、ランタイムは SDO を Java インターフェースに渡します。

メソッドが java.lang.Object 型を戻しても、ランタイムは、メソッドが具象型を戻す場合のみ、SDO に変換します。ランタイムは、ユーザー定義の Java クラスおよび配列から SDO への変換でも同様の変換を使用します (次の段落を参照)。

Java クラスまたは配列から SDO に変換する場合、ランタイムが作成するデータ・オブジェクトは、Java 型のパッケージ名を反転して生成される URI を持ち、Java クラス名と同じ型を持ちます。 例えば、Java クラス com.ibm.xsd.Customer が SDO に変換されると、URI は http://xsd.ibm.com であり、Customer 型を持ちます。次にランタイムは Java クラス・メンバーのコンテンツを検査し、値を SDO 内のプロパティーに割り当てます。

いずれの場合でも、ランタイムが変換を完了できない場合は例外が発生します。

Java.util コンテナー・クラス

Vector、HashMap、HashSet などのような具象 Java コンテナー・クラスに変換する場合、ランタイムは該当するコンテナー・クラスをインスタンス化します。ランタイムは、ユーザー定義の Java クラスおよび配列で使用したのと同様の方法で、コンテナー・クラスにデータを取り込みます。ランタイムが具象 Java クラスを見つけられない場合、ランタイムはコンテナー・クラスに SDO を取り込みます。

具象 Java コンテナー・クラスから SDO に変換する場合、ランタイムは、『Java から XML への変換』に示される、生成されたスキーマを使用します。

Java.util インターフェース

java.util パッケージ内の特定のコンテナー・インターフェースの場合、ランタイムは以下の具象クラスをインスタンス化します。
表 1. WSDL 型から Java クラスへの変換
インターフェース デフォルトの具象クラス
コレクション HashSet
マップ HashMap
リスト ArrayList
セット HashSet

concept 概念トピック

ご利用条件 | フィードバック


タイムスタンプ・アイコン 最終更新: 2010/07/05


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.zseries.doc/doc/cdev_rulesjavatoxmlruntime.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。