GDL 练习 3:创建根级构造
运动
修改 练习 1 的架构,以引入一个名为 *PFeature 的构造,该构造只能在根级别找到。
使用以下条件:
*PFeature 可以具有任何实例名称。
*PFeature 成员是名为 *Name 和 *DefaultOption 的属性。
*PFeature 有一个名为 *Poption 的构造成员,该成员应声明为虚拟。
解决方案
以下模板满足上述条件。
*Template: POPTION
{
*Name: "*POption"
*Type: CONSTRUCT
*Virtual: TRUE
}
*Template: NAME
{
*Name: "*Name"
*Type: ATTRIBUTE
*ValueType: NORMAL_STRING
}
*Template: SYMBOL
{
*Type: DATATYPE
*DataType: FILTER_TYPE
*ElementType: XML_STRING
*FilterTypeName: "SYMBOLNAME"
}
*Template: DEFAULT_OPT
{
*Name: "*DefaultOption"
*Type: ATTRIBUTE
*ValueType: SYMBOL
}
*Template: PFEATURE
{
*Name: "*PFeature"
*Type: CONSTRUCT
*Members: (POPTION, NAME, DEFAULT_OPT)
*Instances: <ANY>
}
*Template: ROOT2
{
*Inherits: ROOT
*Members: (PFEATURE)
}