- Oracle SOAスイートでのSOAアプリケーションの開発
- サービス・コンポーネント間の共有機能
- XSLTマップ・エディタを使用したトランスフォーメーションの作成
- テンプレート・ルールの使用
- テンプレート・ルールの作成方法
テンプレート・ルールの作成方法
- 次のいずれかの方法を使用して、「新規テンプレート・ルール」ダイアログを起動します。
-
一致ノードとして機能するノードをソース・ペインで右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。
-
ターゲット・ペインでノードを右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。
-
XSLTペインでノードを右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。
-
キャンバス・ペイン(中央)の空白領域を右クリックします。表示されるコンテキスト・メニューから「作成」→「新規テンプレート・ルール」を選択します。
-
XSLTツールバーに緑色のプラス(+)記号で表示される「追加」アイコンをクリックします。表示されるオプションのリストから「新規テンプレート・ルール」を選択します。
「新規テンプレート・ルール」ダイアログが表示されます。図41-48に、「新規テンプレート・ルール」ダイアログを示します。
「新規テンプレート・ルール」ダイアログには、次のフィールドがあります。
-
一致ノード:
xsl:template
定義で一致属性の値を指定します。一致属性には、入力XMLドキュメントでノードの一致に使用されるパターンが含まれています。処理中のノードがテンプレートの一致属性に定義されているパターンと一致するときに、XSLTプロセッサはテンプレート内で命令を実行します。
-
「初期化」セクション: 新しいテンプレート・ルールの内容の決定に使用されます。
「空のテンプレートの作成」を選択すると、コンテンツのない
xsl:template
命令を作成できます。または、「テンプレートに生成するノードの選択」を選択して、テンプレートの実行時に作成するターゲット・スキーマ・ノードを表示および選択できます。「テンプレートに生成するノードの選択」オプションは、ターゲット・スキーマが使用されている場合にのみ使用できます。
-
ローカル名で検索:「テンプレートに生成するノードの選択」オプションが選択されている場合に、ターゲット・スキーマを表すツリーが表示されます。このオプションでは、ローカル名を使用してターゲット・スキーマ・ツリーでノードを検索できます。
ダイアログの起動で選択したモードによっては、「新規テンプレート・ルール」ダイアログ・ボックスに自動的にフィールドが移入されている場合があります。表41-1は、各選択内容に応じてあらかじめ移入されるフィールドのリストです。起動方法がリストされていない場合、事前に移入されているフィールドはありません。
表41-1 「新規テンプレート・ルール」ダイアログの起動方法
起動元 自動的に移入される情報 ソース・ペインのノード
「一致ノード」にソース・ノードへの絶対パスが移入されます。必要に応じてこの値を編集できます。
「空のテンプレートの作成」オプションは、「初期化」セクションであらかじめ選択されています。必要に応じてこの選択内容を変更できます。
ターゲット・ペインのノード
「テンプレートに生成するノードの選択」オプションは、「初期化」セクションであらかじめ選択されており、ターゲット・スキーマが表示されます。「新規テンプレート・ルール」ダイアログの起動に使用されるターゲット・スキーマ・ノードは、ターゲット・ツリーであらかじめ選択されています。必要に応じてこの選択内容を変更できます。
「一致ノード」フィールドには、テンプレートに対して必要な一致パターンが移入される必要があります。
-
- 「一致ノード」を必要に応じて設定します。一般的な例を次に示します。
-
/ns0:PurchaseOrder/ns0:ShipToContact/ns0:Region
: プロセッサがこのパスを持つノードを処理する際にテンプレートが実行されます。 -
Item
: プロセッサがItem
名を持つノードを処理する際にテンプレートが実行されます。 -
HighPriorityItems/Items/Item
:HighPriorityItems
ノードの子であるItems
ノードの子のItem
ノードをプロセッサが処理する際にテンプレートが実行されます。
-
- 「初期化」セクションで必要なコンテンツを選択します。テンプレートを作成する出力ノードがわかっている場合は、「テンプレートに生成するノードの選択」オプションを選択し、表示されるターゲット・スキーマ・ツリーから出力ノードを選択します。「ローカル名で検索」フィールドを使用して、ターゲット・スキーマ・ツリー内で検索できます。[Shift]キーを押したまま目的の各ノードをクリックすることで、ターゲット・ツリーで複数のノードを選択できます。
- 「新規テンプレート・ルール」ダイアログで「OK」をクリックして、テンプレートを作成します。新しい
xsl:template
文がXSLTの最後に挿入されます。 - テンプレート・ルールを起動する既存の
apply-templates
文がない場合は、適切なapply-templates
文を挿入してテンプレート・ルールを起動します。apply-templates
文が存在しない場合は、xsl:template
文に警告アイコンが、テンプレート内のすべてのノードに疑問符(?)アイコンが表示されます。次の図に例を示します。通常、
apply-templates
文は、テンプレートに含まれるノードを生成する場所に挿入されます。たとえば前述の図では、apply-templates
文は、Addressノードおよびその子ノードを作成する必要のある場所に挿入される必要があります。テンプレート・ルールを起動する
apply-templates
文を挿入後、警告アイコンおよび疑問符(?)アイコンは表示されなくなります。