次の方法で共有


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 ファイルに配置できます。