ネイティブ・データからXMLデータへの変換方法
この項では、インバウンド・メッセージをネイティブXSDフォーマット(この例では、文字列データ)で受信しXMLフォーマットに変換するために、変換アクティビティをBPELプロセスで構成方法について説明します。ネイティブ・フォーマット・ビルダー・ウィザードを使用して、新しいスキーマ・ファイルを作成します。
ネイティブ・データをXMLデータに変換するには:
-
BPELプロセスをSOAコンポジット・エディタで右クリックし、「編集」を選択します。
Oracle BPELデザイナが表示されます。
-
「コンポーネント」ウィンドウの「Oracle Extensions」セクションを展開し、変換アクティビティをBPELプロセスにドラッグします。図6-7に詳細を示します。
-
変換アクティビティを右クリックし、「編集」を選択します。
「変換」ダイアログが編集用に表示されます。
-
NativeからXMLにを選択して、インバウンド・ネイティブ・データ(この例では、単一の文字列)を受信します。
-
「入力」フィールドの右側にある「参照」アイコンをクリックします。
「変数XPathビルダー」ダイアログが表示されます。
-
XMLフォーマットに変換するインバウンド・ペイロードの一部であるネイティブ文字列を選択して、「OK」をクリックします。図6-8に詳細を示します。
-
「NXSDスキーマ」フィールドの右側で、使用するスキーマを選択します。
-
スキーマが存在する場合、「検索」(1番目)アイコンを選択し、「タイプ・チューザ」ダイアログを起動します。
-
スキーマが存在しない場合、2番目のアイコンを選択して、ネイティブ・フォーマット・ビルダー・ウィザードを起動し、スキーマを作成します。
次の例では、ネイティブ・フォーマット・ビルダー・ウィザードを使用して、カンマ区切りデリミタを使用するテキスト・ファイルから新規スキーマを作成する方法について説明しています。
-
「ファイル名とディレクトリ」ダイアログの「ファイル名」フィールドで、名前を入力し、「次へ」をクリックします。
-
「タイプの選択」ダイアログで、「デリミタ付き(フィールドが特殊文字で区切られているレコードが含まれています)」を選択し、「次へ」をクリックします。
-
「ファイルの説明」ダイアログで、「参照」 をクリックし、カンマ区切りデリミタを使用するテキスト・ファイルを選択します。
「サンプル・ファイルの選択」ダイアログが表示されます。
-
使用するファイルを選択して「OK」をクリックします。
このファイルの内容が、「ファイルの説明」ダイアログの下部に表示されます。図6-9に詳細を示します。
-
「次へ」をクリックします。
-
「レコード編成」で、「次へ」をクリックします。
-
「要素の指定」ダイアログで、レコードを示す要素の名前を入力(この例では、
addr
を入力)し、「次へ」をクリックします。 -
フィールドをテキスト・ファイルで区切る特殊文字としてカンマのデフォルト値を「デリミタの指定」ダイアログで受け入れ、「次へ」をクリックします。
-
「フィールド・プロパティ」ダイアログの「名前」列で、「C1」、「C2」、「C3」、「C4」、「C5」および「C6」のかわりに適切な値を入力し、「次へ」をクリックします。図6-10に詳細を示します。
新しいスキーマが生成されたネイティブ・フォーマット・スキーマ・ダイアログに表示されます。
-
「テスト」をクリックして、スキーマをテストします。
-
「結果XML」セクションで、緑色の矢印をクリックします。
ネイティブ・スキーマとその結果のXMLが表示されます。図6-11に詳細を示します。
-
「OK」をクリックして、生成されたネイティブ・フォーマット・スキーマ・ダイアログに戻ります。
-
「次へ」、「終了」、の順にクリックします。
addr_schema1.xsdファイルが生成され、「変換」ダイアログの「NXSDスキーマ」フィールドに表示されます。
-
-
「出力タイプ」リストから、「DOM」を選択します。「DOM」を選択した場合、DOMとSDOMの両方がサポートされます。
-
「出力」フィールドの右側で、スキーマの変数を選択します。
-
ステップ7で指定されたスキーマに準拠している出力変数がある場合、「検索」(1番目)アイコンをクリックし、既存の変数を選択します。
-
既存の変数がない場合、「追加」(2番目)アイコンをクリックし、「変数の作成」ダイアログを起動します。デフォルト値をそのまま使用するか、変数の名前を変更して出力変数を作成して、「OK」をクリックします。ステップ7で作成されたスキーマを変数は自動的に指します。
完成すると、「変換」ダイアログは図6-12のようになります。
-
-
同期リクエストの出力は、新しいスキーマを指すように変更する必要があります。
-
「アプリケーション」ウィンドウで、BPELプロセスのWSDLファイル(この例では、BPELProcess1.wsdlという名前)を選択します。
-
Oracle BPELデザイナの下部で、「ソース」をクリックします。
-
WSDLファイルの<wsdl:message>セクションまでスクロールします。
-
レスポンス要素(この例では、名前はprocessResponse)をBPELProcess1ResponseMessageメッセージ用にクリックし、プロパティ・インスペクタを右下の隅で起動します。図6-13に詳細を示します。
-
プロパティ・インスペクタで新規ルート要素を選択します(この例では、ns1:addr)。図6-14に詳細を示します。
ns1:addrルート要素がWSDLファイルに追加されています。図6-15に詳細を示します。
-
変換アクティビティの下にあるBPELプロセスにassignアクティビティをドラッグします。
変換出力変数をBPEL出力変数に割り当てます。
-
assignアクティビティの「コピー・ルール」タブで、変数をマップし、「OK」をクリックします。図6-16に詳細を示します。
これで、設計は完了します。