GDL 演習 1: GDL スキーマを実装する
演習
3 つのカテゴリの属性を作成し、コンストラクトを配置できる場所に制限を課さないスキーマを実装します。
これらの属性は、次のカテゴリに分類する必要があります。
ルート レベルおよびコンストラクト内に表示できる属性。
ルート レベルでのみ表示できる属性。
コンストラクト内でのみ使用できる属性。
スキーマにキーワードを定義しないでください。将来のキーワードのフレームワークを含めるだけです。
注 テンプレートを使用すると、仮想スキーマ (つまり、GDL エントリを定義しないスキーマ) を作成できます。 このように定義された基本スキーマは、このスキーマが将来どのように拡張されても影響を及ぼします。
ソリューション
次のコード例は、この演習を完了する 1 つの方法を示しています。
*Template: ATTRIBUTE
{
*Type: ATTRIBUTE
*Virtual: TRUE
}
*Template: ROOT_ATTRIB
{
*Inherits: ATTRIBUTE
*Virtual: TRUE
}
*Template: CONSTRUCT_ATTRIB *% May not appear at Root level
{
*Inherits: ATTRIBUTE
*Virtual: TRUE
}
*Template: FREEFLOAT
{
*Inherits: ATTRIBUTE
*Virtual: TRUE
}
*Template: CONSTRUCTS
{
*Type: CONSTRUCT
*Members: ( CONSTRUCTS, FREEFLOAT, CONSTRUCT_ATTRIB)
*Virtual: TRUE
}
*Template: ROOT
{
*Type: CONSTRUCT
*AllowNewMembers: FALSE
*Name: "root"
*Instances: <ANY>
*Members: (ROOT_ATTRIB, FREEFLOAT, CONSTRUCTS)
}
注 前の例のテンプレートは、次の演習で使用するために MasterTemplate.gdl ファイルに配置できます。