[SOA/BPM] 12c XSLT Editor – Map View Overview

原文はこちら。
https://blogs.oracle.com/integration/entry/12c_xslt_editor_map_view

Map Viewは12c XSLT Editorで提供される2個あるグラフィカルビューのうちのひとつです。
12c XSLT Editorのグラフィカルビューの簡単な概要は以下のリンクをご覧ください。
12c XSLT Editor Overview
https://blogs.oracle.com/integration/entry/12c_xslt_editor_overview
http://orablogs-jp.blogspot.jp/2016/04/12c-xslt-editor-overview.html
Map Viewは、XSLTを作成するための典型的なプル型マッピングツールです。11gのXLST Editorを使ったことがあれば、よくご存知のことでしょう。
ソースとターゲットのスキーマ要素をXSLTへの入力、出力XMLドキュメントとして選択すると、デフォルトではエディタがMap Viewで開きます(プリファレンスで挙動を変更することができます)。このビューでは、ソーススキーマドキュメントを左側に、ターゲットスキーマドキュメントを右側に表示します。

利用者はソース要素からターゲット要素へドラッグ&ドロップすることでマッピングを作成することができます。
下図は2個のシンプルなマッピングの例です。

要素や属性をターゲットツリーにマッピングすると、ターゲット要素をXSLTソースに作成します。エディタのパネルの下部にある、[ソース]タブをクリックすると、XSLTのソースを直接閲覧し、編集することができます。
上図のマッピングのXSLTソースは以下のようです。
<xsl:template match="/">
 <tns:Invoice>
  <Description>
   <xsl:value-of select="/ns0:PurchaseOrder/ns0:Comment"/>
  </Description>
  <ShippedTo>
   <Address country="{/ns0:PurchaseOrder/ShipTo/Address/@country}"/>
  </ShippedTo>
 </tns:Invoice>
</xsl:template>
ターゲットツリーのマップ済み要素を黒字で、定義済みターゲットスキーマドキュメントの未マップの要素をグレーの斜体字で表示します。未マップの要素は定義済みのターゲットスキーマドキュメントの一部で、マップ済み要素はターゲットスキーマドキュメントならびにXSLTソースで定義されています。これを確認するには、XSLTソースをシンプルなマッピングを表示する上図と比べてください。
上図の各マッピングの線は、入力/ソースXMLドキュメントのノードを参照する単純なXPath式を示します。XPath関数や演算子を使って様々な方法で複雑なXPath式を作成することもできます。複雑なXPath式は中央のキャンバスパネルにアイコンとして現れます。

下図は複雑なXPath式をマッピングに加えた例です。

各式は上図のようにツールチップで見ることができます。フルテキスト表示として式を閲覧、編集することもできますし、解析済みの式としてができます。後者の場合、各関数パラメータを個別に編集することができます。
例えば、上図ではconcat関数を使っています。マウスを載せたconcatアイコンをダブルクリックすると、パース済み形式で下図のように表示されます。

アイコンを含むフォルダ(アイコンを囲む紫色の領域)をダブルクリックすると、XPath式をフルテキスト形式で表示します。

[長いテキストの編集]ボタンをクリックすると、非常に長いXPath式を編集することもできます。
プロパティウィンドウをを表示すると、特定の関数アイコンを選択したり、アイコンを含む外部フォルダを選択したりして、同様の方法でプロパティウィンドウ内で編集することができますし、コンポーネントウィンドウからXPath式フォルダへ関数をドラッグ&ドロップすると、XPath式をグラフィカルに編集することもできます。

XPath式からターゲットノードへ線をドラッグ&ドロップすることで、式の出力を特定のターゲットノードに割り当てることができます。同様に、線をアイコンにドラッグ&ドロップし、これらを特定の関数パラメータにドロップすることで、ソースノードを示すシンプルなXPath式を作成することができます。

上図はconcat関数の第3パラメータへの入力を設定しています。
以下のようなXSLT命令を作成することができます。
  • xsl:for-each
  • xsl:if
  • xsl:choose/when/otherwise
  • xsl:param
  • xsl:variable

Map Viewでは1個のxsl:template命令のみ利用可能です。これは上図にあるように、 match=”/” という属性を持つルートテンプレート命令です。複数のテンプレートを持つXSLTマップはXLST Viewで編集することができます。
下のマップはこれらのXSLTステートメントを挿入したものです。Purchase Order内の品目をループし、遅延している(ShipDateがない)すべての品目に割引を適用しています。


次回のエントリは、XSLT Viewの利用について説明する予定です。

0 件のコメント:

コメントを投稿