GDL 练习 1:实现 GDL 架构
运动
实现一个架构,该架构创建三个类别的属性,并且不会对构造的位置施加限制。
这些属性必须分为以下类别:
可在根级别和构造中显示的属性。
只能在根级别显示的属性。
只能在构造中显示的属性。
不要在架构中定义任何关键字;只需包含未来关键字的框架即可。
注意 通过使用模板,可以创建虚拟架构,即不定义任何 GDL 条目的架构。 以这种方式定义的基本架构将发挥其影响,无论将来如何扩展此架构。
解决方案
下面的代码示例演示了完成本练习的一种方法。
*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 文件中,供下一个练习使用。