https://blogs.oracle.com/integration/entry/12c_xslt_editor_overview
JDeveloper用SOAおよびService Busのツールプラグインで提供するXSLT Editorは、12cで新しくなりました。このエントリではこの新しいエディタをご紹介します。
11gのXSLTエディタを使ったことがあれば、この新しいエディタはよくご存知のことと思います。11gのエディタから再利用したコードをつかっているため、全体的なルック&フィールには同じままですが、エディタのコア部分はより大きなスキーマを使ってより複雑なXSLTをサポートするように書き直されつつ、グラフィカルに表示する機能は引き続き提供しています。これを実現するため、新しいエディタではDesign Viewで2個のグラフィカルビューを提供しています。
- Map View - すべてのターゲットツリーノード(マッピングの有無にかかわらず)を表示する
- XSLT View - マッピング済みターゲットツリーノードを含む、現存するXSLTステートメントを表示する
Map Viewは11gのXSLTエディタと非常に機能が似ていますが、このビューでは、シンプルにドラッグ&ドロップでマッピングしたり、簡単なXSLTステートメント(xsl:for-each、xsl:if、xsl:choose/whenなど)を使ったりすることができます。11gのXSLTエディタのように、ソースツリーからターゲットツリーにドラッグ&ドロップでマッピングを作成し、中央のパネルでXPathステートメントを追加することができます。
XSLT Viewは12cで初めて登場しました。基本的に、XSLTのソースコードをグラフィカル表示するビューですが、XSLTを知っているが、エディタに対し、XSLTでするべきものは何でもするための柔軟性を持ちつつ、スキーマ情報を提供させたいと思っているユーザーを対象にしています。
このビューでは、ソースビューに現れるXSLTステートメントを表示しますが、すべてのXPath式を作成したり、グラフィカルに表示したりする機能が加わっています。マッチ済みテンプレート(テンプレートルール)、名前付きテンプレートやすべてのXSLT 1.0ステートメントといったより高度なXSLTコンストラクトもサポートしています。
直接XSLTソースを編集するのに比べ、このビューで高度なXSLTを編集することの明確な利点は以下の通りです。
- XSLT Viewはcontext-nodeを認識します(context nodeという言葉をご存知ない場合は、将来のエントリでこの言葉の意味を説明する予定にしています。今の段階では、context nodeを知ることは、XPathステートメントの書き方を知ることの中核です)。
- 複数のテンプレート・ルールを使ってXSLTファイルを編集している場合、ユーザーがソースから特定のテンプレートにドラッグ&ドロップすると、エディタが各テンプレートのコンテキスト・ノードを決定し、自動的に正しい相対XPath式を作成することができます。
- 逆に、エディタはテンプレートのコンテキストノードに関する情報を必要とするマッピングの結果を表示することができます。
- XSLTでテンプレートを選択することで、任意のテンプレートのコンテキストノードをソースツリーで見つけることができるので、コンテキストノードをソースツリーで強調表示します。
- XPath式を編集しながら、ユーザーはXPath編集中に参照するためのコンテキストノードとその子を提供するミニツリーへのアクセスができます。
- XSLT Viewでは現在のマッピングにおけるXSLTステートメントとノードのみを表示します。これはターゲット側の多くのノードがマップされない大きなスキーマを取り扱っている場合にはメリットでしょう。マップされていないターゲットノードが明示的に現れなくても、簡単にターゲットノードを追加挿入したり、スキーマからノードを生成するにはいくつかの方法があります。これは将来のエントリで説明する予定です。
- XSLT Viewではスキーマの利用の有無に関係なく、自由形式のXSLT編集をサポートします。XSLT Viewでは以下のことが実現できます。
- すべてのXSLT 1.0ステートメントを、任意の所望の方法で挿入することができます。追加すると、追加されたXSLT要素の属性値入力が要求されます。
- 選択したノードの子として
- 選択されたノードの親として
- 選択したノードの上または下の兄弟として
- ターゲットスキーマに含まれない要素や属性を作成できます。
- 名前付きテンプレートを編集できます(他のXSLTファイルへインポートすることを目的として、名前付きテンプレートがXSLTファイルに含まれていることがあります。結果的にソースや定義されたターゲットスキーマを必要としないことがあります)
- ツリー内でドラッグ&ドロップすることで、簡単にステートメントの並べ替えをすることができます。
0 件のコメント:
コメントを投稿