ノードテンプレート操作

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: 構造 > テンプレートと デザインフラグメント >

ノードテンプレート操作

ノードテンプレートとは、ノードに対する処理を指定するデザイン内のテンプレートのことです。デザインでは、ベージュ色の開始ならびに終了タグによりノードテンプレートが表示されます(以下のスクリーンショットを参照)。以下のスクリーンショットでは、 metainforelevance という2つのノードテンプレートが示されています。 次も参照してください:, XML ドキュメント内のノード

 

NodeTemplatesDef

 

ノードテンプレートにて行うことができる処理の一覧は、そのノードテンプレートの開始または終了タグを右クリックすることで表示されるコンテキストメニューから確認することができます

 

以下ではコンテキストメニュー内にあるコマンドについて説明します:

 

グローバルテンプレート
テンプレートの一致
XPath フィルター
グループ化、並べ替え、変数の定義、レベルとして機能するテンプレート
デザインフラグメントの作成
タグだけ削除
編集、タグで囲む、変更

 

以下ではこれらのメニューコマンドについて説明します。ノードテンプレートによっては利用できないコマンドもある点に注意してください。利用できないコマンドはコンテキストメニューにてグレーアウトされます。

 

グローバルテンプレート: 設定、使用、ローカルにコピー

メインテンプレート内にあるノードテンプレートを変更することができるほか、以下のコマンドによりグローバルテンプレートへ割り当てることができます:

 

メイングローバルテンプレートに設定 スキーマにてグローバル要素として定義されている要素をノードが指し示している場合に使用することができます。ノードテンプレートからグローバルテンプレートが作成されます。メインテンプレート内にあるノードテンプレートではこのグローバルテンプレートが使用され、そのタグが(グローバルテンプレートの使用を表す)グレーで表示されます。
グローバルテンプレートを使用ノードテンプレートの名前と同じ修飾名でグローバルテンプレートが定義されている場合、ノードテンプレートに対してグローバルテンプレートの処理が使用されます。ノードテンプレートのタグがグレーになります。
グローバルテンプレートをローカルにコピー : ノードテンプレートと同じ修飾名を持ったグローバルテンプレートの処理命令が、直接ノードテンプレートへコピーされます。ノードテンプレートはグローバルテンプレートとは独立したものになります。このコマンドを実行した後に、グローバルテンプレートとは独立したものとしてノードテンプレートを変更することができます。ノードテンプレートからグローバルテンプレートへの参照は行われないため、ノードのタグはベージュ色のままとまります。

 

に関する詳しい説明は、次のセクションを参照してください: グローバルテンプレート.

 

テンプレートマッチの編集

テンプレートに対して作成されたノードを、このコマンドにより変更することができます。テンプレートマッチの編集コマンドにより、 XPath 式 の編集ダイアログ が表示され、スキーマ内にある他のノードを選択する XPath 条件式を入力することができます。XPath 条件式を入力することで、テンプレートを ユーザー定義テンプレートへ変更することもできます。

 

XPath フィルターの編集/クリア

XPath フィルターにより、ノードテンプレートが適用されるノードセットのフィルタリングを行うことができます。XPath フィルターは グローバルテンプレートに対して適用することができます。

 

デフォルトでは、ノードテンプレートが作成されたノードに対応するノード(要素または属性)に対してノードテンプレートが適用されます(スキーマ構造の指定された位置にある同名の出現)。例えば、/Personnel/Office ノードにより、全ての /Personnel/Office 要素が選択されます。Office 要素にて 1 という式を持った XPath フィルターが作成された場合、述語式が Office 要素に加えられるのと同様の結果が得られ、全体の XPath 条件式は /Personnel/Office[1] となります。この XPath 条件式により、最初の Personnel 要素にある最初の Office 子要素が選択され、その他の Office 要素は選択されないことになります。

 

フィルターは、デザイン内にある任意のノードテンプレートならびに複数のノードテンプレートに対して追加することができます。この機能を使って、例えば /Personnel/Office[@country='US']/Person[Title='Manager'] といった XPath 条件式により、社内の US オフィスにいる管理職全員を選択することができます。この例では、OfficePerson のノードテンプレートにて、それぞれ独立したフィルターが作成されます。

 

グローバルテンプレートが使用される(呼び出される)場合、XPath フィルターを適用することができます。従って、使用されているグローバルテンプレートのインスタンス全てに対して XPath 条件式を適用することで、ターゲットとなるノードセットを制限することができます。

 

XPath フィルターをノードに追加するには、ノードテンプレートを右クリックして、XPath フィルターの編集を選択します。引用句や角括弧、デリミターなしで XPath フィルター条件式を入力してください。以下にあるような妥当な XPath 条件式を入力することができます:

 

1
@country='US'
Title='Manager'

 

ノードテンプレートに対して XPath フィルターが追加されると、そのノードテンプレートの開始タグにフィルターシンボルが表示されます。以下のスクリーンショットでは、synopsis ノードテンプレートに対してフィルターが追加されました。

 

NodeTemplateFilter

 

メモ:各ノードテンプレートでは、1つの XPath フィルターがサポートされます。

 

グループ化、並べ替え、変数の定義、レベルとして機能するテンプレート

これらコマンドのメカニズムの詳細については以下のセクションにて記述されます:

 

グループ化コマンドにより、選択されたノードテンプレートにより表されるノードのインスタンスがグループ化されます。グループ化のメカニズムについては、 グループ化のセクションにて記述されます。
並べ替えコマンドにより、選択されたノードテンプレートにより表されるノードのインスタンスが並べ替えられます。並べ替えのメカニズムについては、 並べ替えのセクションにて記述されます。
変数の定義コマンドにより、選択されたノードテンプレートをスコープとした変数を定義することができます。変数の使用方法については、 変数のセクションにて記述されます。
レベルとして機能するテンプレートコマンドは、ノードテンプレート上のレベルを作成/削除するためのトグルコマンドです。ドキュメントを階層構造で構築するためには、様々な箇所でレベルを指定する必要があります。この構造は、目次や番号の自動割り当て、そしてテキストの参照を生成するために使用されます。これら機能の詳細については、 目次 (TOC) と参照.

 

デザインフラグメントの作成

選択されたテンプレートからデザインフラグメントのテンプレートを作成します。作成されたデザインフラグメントのテンプレートは、デザインの下部にあるデザインフラグメントのテンプレートへ追加され、デザインツリーならびにスキーマツリーへ追加されます。作成された箇所へも、そのデザインフラグメントが適用されます。

 

(テンプレートや書式) タグだけ削除

このコマンドにより、選択されたテンプレートやフォーマットタグだけが削除され、子孫ノードやそのフォーマットタグが削除されることはありません。あるタグに含まれる子孫ノードなどを削除することなしにフォーマットタグや親要素のタグを削除するために使用することができます(タグが選択された状態で削除コマンドが実行されると、これら全てが削除されます)。親要素を削除することで、削除された要素の子孫ノードが不正となる可能性があることに注意してください。不正なノードには取り消し線が表示されます。

 

編集、タグで囲む、変更

これらコマンドの解説を以下に示します:

 

編集 : Windows で既に馴染み深い、切り取り、コピー、貼付け、そして削除コマンドがサブメニューに表示されます。
タグで囲む : ノードテンプレートを、以下のデザインコンポーネントにより囲むことができます: 段落特殊な段落リストハイパーリンク条件目次 ブックマークとレベル.
変更 : 変更機能により、(i) テンプレートが適用されるノード、または (ii) デザイン内でノードを作成する方法を変更することができます。詳細については、 変更機能のセクションを参照ください。

 

 

 


(C) 2019 Altova GmbH