GDL テンプレート資格
テンプレートとそのテンプレートから直接または間接的に派生するすべてのテンプレートは、継承ツリー または サブツリーを形成します。 ただし、再定義された *Name コンストラクトを持つ派生テンプレートは、このツリーから除外されます。
*Members リストでテンプレートに名前が付けられている場合、GDL パーサーは、名前付きテンプレートと、その名前付きテンプレートから派生したすべてのテンプレートを関連付けの候補と見なします。 この継承ツリー内に条件を満たすテンプレートが複数ある場合、パーサーは基準に最もよく適合するテンプレートを選択し、データ エントリに関連付けます。 特定のデータ エントリを表すテンプレートとして修飾するには、テンプレートが次の条件を満たしている必要があります。
*Virtual として宣言されているテンプレートは自動的に失格になります。 ただし、派生テンプレートはすべて考慮されます。
テンプレートの *Name コンストラクトは、データ エントリのキーワード (keyword)と一致する必要があります。 *Name を継承できることに注意してください。
データ エントリが構成体の場合、テンプレートの *Instances リスト内の 1 つの要素がデータ構成体のインスタンス名と一致する必要があります。 また、適格なテンプレートが継承するすべての基本テンプレートもこの要件を満たす必要があります。 継承チェーン内のすべてのテンプレートに *Instances エントリが必要なわけではありません。このエントリがないものは、既定ででこの要件を満たしているものとみなされます。
継承ツリー内の複数のテンプレートが条件を満たす場合は、次の追加基準が考慮されます。
- テンプレートが、継承チェーン内のすべてのテンプレートが既定でインスタンス名の要件を満たすか、またはワイルド wildカード <ANY> を使用して修飾され、別の修飾テンプレートがその継承チェーンに 1 つ以上のテンプレートを持っている場合、明示的な一致を使用するテンプレートがインスタンス名の要件を満たす場合は、明示的な一致を使用するテンプレートが使用されます。
- 残りの修飾テンプレートのうち、最も派生したテンプレートが使用されます。
- 残りの修飾テンプレートのうち、最後に定義されたテンプレートが使用されます。