XML マップを使用する理由

WebLogic Workshop で構築した Web サービスは、XML メッセージを送受信することで通信します。デフォルトでは、WebLogic Server によって、「ナチュラル」マップ(Java 宣言の構成要素がメッセージの内容と一致するフォーマット)に基づいたそれらのメッセージと Java 宣言の型の間の変換が行われます。

ただし場合によっては、一致しないメッセージをサービスで送受信できるようにする必要があるかもしれません。たとえば、メッセージ フォーマットを変更できないクライアントやリソースとサービスをうまく機能するようにしたい場合などです。そのような場合には、XML マップおよびスクリプトを使用したマッピングによって、Java コードを変更することなく異なるメッセージ形式を処理することができます。

独自のマップを提供するのは、以下の 2 つの場合があります。

たとえば、その XML メッセージ フォーマットが業界に特有のもので、サービスで処理できるものとは異なる潜在的なクライアントに対してアピールするようなサービスを構築する場合があります。その場合には、サービスに合わせてもらうのではなく、クライアントのフォーマットを処理することで、そのクライアントがサービスを利用しやすいようにする必要があります。独自の XML マップでナチュラル マッピングをオーバライドすると、実装コードを変更することなく、リクエスト メッセージのフォーマットを処理する変換レイヤを効果的に作成できます。

具体的には、XML マップを使用すると以下のことができます。

注意: Java 宣言のナチュラル マップを表示するには、デザイン ビューで Web サービスを開き、マップを表示するメソッド、コールバック、またはコールバック ハンドラをダブルクリックします。[デフォルト] オプションが選択されている [マップおよびインタフェースの編集] ダイアログでは、パラメータまたは戻り値のナチュラル マップを表示できます。サービスのこのメンバーによって送受信される XML メッセージがこのフォーマットと一致しない場合は、XML マップまたはスクリプトを使用してカスタム マップを作成する必要があります。

XML マップを使用することとスクリプトを使用することの違い

マッピングに使用される XML マップとスクリプトは同じ目標を達成しますが、マップはそれをより単純に行い、スクリプトはそれをより強力に行います。通常は、まずマップを使用することを考えます。[マップおよびインタフェースの編集] ダイアログでマップを作成し、XML メッセージの形式が Java 宣言の型とあまりにも異なる場合にスクリプトを組み込みます。スクリプトを使用するためには、ECMAScript 言語の知識も必要です。

マップはそれらがマッピングされるメッセージに似ているため、マップを使用することは、Java 宣言のどの部分がメッセージ フォーマットに対応するのかを表現する自然な方法に感じられます。マップを作成することは、別々につなぎ合わされたパズルの 2 つのセクションを並べ合わせることに少し似ています。

一方、マッピング用のスクリプトを作成することは、そうなるべきイメージに基づいて真新しいパズルを切り出し、そのピース 群を完全な形に組み合わせるようなものです。WebLogic Workshop で提供される ECMAScript 言語の拡張機能(XML をネイティブ データ型として処理する機能を含む)を使用すると、送信する XML メッセージをゼロから作成したり、他のデータ構造と同じように受信メッセージにアクセスしたりできます。ECMAScript は、マッピングのニーズすべてに対応できます。ECMAScript に精通している場合は、あらゆるケースでスクリプトを使用することができます。

XML マップまたはスクリプトの作成を開始するには

マップの作成を開始する優れた方法の 1 つは、マップが対応するメッセージ フォーマットの XML スキーマ(または例)から始めることです。スキーマを参照して、Java 宣言の構成要素に対応するメッセージの構成要素を識別します。XML スキーマの詳細については、XML の概要を参照してください。受信メッセージからマッピングする場合には、Java コードで必要となるデータがどの要素および属性に含まれるのかを確認します。送信メッセージにマッピングする場合には、受信側に送信される Java 宣言のデータが XML メッセージの構造にどのように解析されるべきかを決めます。

メッセージ形式と Java 宣言がどのように互いに対応するのかを理解したら、XML マップの作成を開始することができます。実際には、ニーズがシンプルな場合は、[マップおよびインタフェースの編集] ダイアログで XML マップを追加または編集するにはで説明されているように、[マップおよびインタフェースの編集] ダイアログで XML マップの作成を開始するのが最も簡単です。ただし、特に Web サービスのニーズがより複雑になる場合には、マップの作成を始める前にいくつかの質問に答えておかなければなりません。

XML マップをサービス クラスのソース コードとインラインで格納することは、編集の観点から便利です。マップを別のファイルに格納すると、他のメソッドだけでなく他の Web サービスでも再利用可能になります。インライン XML マップの実装の詳細については、[マップおよびインタフェースの編集] ダイアログで XML マップを追加または編集するにはを参照してください。スタンドアロン マップの作成の詳細については、再利用可能な XML マップを開始するにはを参照してください。

特定の実装の Java タイプと XML メッセージの形式の違いがあまりにも大きい場合は、スクリプトで XML の形式を操作することなくマップを作成することはできません。XML メッセージの形式を操作する必要がある場合は、WebLogic Workshop が提供する ECMAScript 言語の拡張機能を使用すると、他のデータ構造と同じように XML ドキュメントを操作できます。詳細については、XML マップからスクリプト関数を使用するを参照してください。

関連トピック

[マップおよびインタフェースの編集] ダイアログで XML マップを追加または編集するには

XML マップからスクリプト関数を使用する