テンプレート・ルールの作成方法

  1. 次のいずれかの方法を使用して、「新規テンプレート・ルール」ダイアログを起動します。
    • 一致ノードとして機能するノードをソース・ペインで右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。

    • ターゲット・ペインでノードを右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。

    • XSLTペインでノードを右クリックします。表示されるコンテキスト・メニューから「新規テンプレート・ルール」を選択します。

    • キャンバス・ペイン(中央)の空白領域を右クリックします。表示されるコンテキスト・メニューから「作成」→「新規テンプレート・ルール」を選択します。

    • XSLTツールバーに緑色のプラス(+)記号で表示される「追加」アイコンをクリックします。表示されるオプションのリストから「新規テンプレート・ルール」を選択します。

    「新規テンプレート・ルール」ダイアログが表示されます。図41-48に、「新規テンプレート・ルール」ダイアログを示します。

    図41-48 「新規テンプレート・ルール」ダイアログ

    図41-48の説明が続きます
    「図41-48 「新規テンプレート・ルール」ダイアログ」の説明

    「新規テンプレート・ルール」ダイアログには、次のフィールドがあります。

    • 一致ノード: xsl:template定義で一致属性の値を指定します。

      一致属性には、入力XMLドキュメントでノードの一致に使用されるパターンが含まれています。処理中のノードがテンプレートの一致属性に定義されているパターンと一致するときに、XSLTプロセッサはテンプレート内で命令を実行します。

    • 「初期化」セクション: 新しいテンプレート・ルールの内容の決定に使用されます。

      「空のテンプレートの作成」を選択すると、コンテンツのないxsl:template命令を作成できます。または、「テンプレートに生成するノードの選択」を選択して、テンプレートの実行時に作成するターゲット・スキーマ・ノードを表示および選択できます。

      「テンプレートに生成するノードの選択」オプションは、ターゲット・スキーマが使用されている場合にのみ使用できます。

    • ローカル名で検索:「テンプレートに生成するノードの選択」オプションが選択されている場合に、ターゲット・スキーマを表すツリーが表示されます。このオプションでは、ローカル名を使用してターゲット・スキーマ・ツリーでノードを検索できます。

    ダイアログの起動で選択したモードによっては、「新規テンプレート・ルール」ダイアログ・ボックスに自動的にフィールドが移入されている場合があります。表41-1は、各選択内容に応じてあらかじめ移入されるフィールドのリストです。起動方法がリストされていない場合、事前に移入されているフィールドはありません。

    表41-1 「新規テンプレート・ルール」ダイアログの起動方法

    起動元 自動的に移入される情報

    ソース・ペインのノード

    「一致ノード」にソース・ノードへの絶対パスが移入されます。必要に応じてこの値を編集できます。

    「空のテンプレートの作成」オプションは、「初期化」セクションであらかじめ選択されています。必要に応じてこの選択内容を変更できます。

    ターゲット・ペインのノード

    「テンプレートに生成するノードの選択」オプションは、「初期化」セクションであらかじめ選択されており、ターゲット・スキーマが表示されます。「新規テンプレート・ルール」ダイアログの起動に使用されるターゲット・スキーマ・ノードは、ターゲット・ツリーであらかじめ選択されています。必要に応じてこの選択内容を変更できます。

    「一致ノード」フィールドには、テンプレートに対して必要な一致パターンが移入される必要があります。

  2. 「一致ノード」を必要に応じて設定します。一般的な例を次に示します。
    • /ns0:PurchaseOrder/ns0:ShipToContact/ns0:Region: プロセッサがこのパスを持つノードを処理する際にテンプレートが実行されます。

    • Item: プロセッサがItem名を持つノードを処理する際にテンプレートが実行されます。

    • HighPriorityItems/Items/Item: HighPriorityItemsノードの子であるItemsノードの子のItemノードをプロセッサが処理する際にテンプレートが実行されます。

  3. 「初期化」セクションで必要なコンテンツを選択します。テンプレートを作成する出力ノードがわかっている場合は、「テンプレートに生成するノードの選択」オプションを選択し、表示されるターゲット・スキーマ・ツリーから出力ノードを選択します。「ローカル名で検索」フィールドを使用して、ターゲット・スキーマ・ツリー内で検索できます。[Shift]キーを押したまま目的の各ノードをクリックすることで、ターゲット・ツリーで複数のノードを選択できます。
  4. 「新規テンプレート・ルール」ダイアログで「OK」をクリックして、テンプレートを作成します。新しいxsl:template文がXSLTの最後に挿入されます。
  5. テンプレート・ルールを起動する既存のapply-templates文がない場合は、適切なapply-templates文を挿入してテンプレート・ルールを起動します。

    apply-templates文が存在しない場合は、xsl:template文に警告アイコンが、テンプレート内のすべてのノードに疑問符(?)アイコンが表示されます。次の図に例を示します。

    通常、apply-templates文は、テンプレートに含まれるノードを生成する場所に挿入されます。たとえば前述の図では、apply-templates文は、Addressノードおよびその子ノードを作成する必要のある場所に挿入される必要があります。

    テンプレート・ルールを起動するapply-templates文を挿入後、警告アイコンおよび疑問符(?)アイコンは表示されなくなります。