Ejercicio 3 de GDL: Creación de construcciones de Root-Level
Ejercicio
Modifique el esquema del ejercicio 1 para introducir una construcción denominada *PFeature que solo se puede encontrar en el nivel raíz.
Use las condiciones siguientes:
*PFeature puede tener cualquier nombre de instancia.
*Los miembros PFeature son los atributos denominados *Name y *DefaultOption.
*PFeature tiene un miembro de construcción denominado *Poption que se debe declarar como virtual.
Solución de
La plantilla siguiente cumple las condiciones anteriores.
*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)
}