Compartir a través de


Ejercicio 1 de GDL: Implementación de un esquema GDL

Ejercicio

Implemente un esquema que cree tres categorías de atributos y no impone restricciones sobre dónde se pueden ubicar las construcciones.

Estos atributos se deben dividir en las siguientes categorías:

  • Atributos que pueden aparecer en el nivel raíz y dentro de construcciones.

  • Atributos que solo pueden aparecer en el nivel raíz.

  • Atributos que solo pueden aparecer dentro de construcciones.

No defina ninguna palabra clave en el esquema; simplemente incluya el marco para las palabras clave futuras.

Nota Mediante el uso de plantillas, puede crear un esquema virtual, es decir, un esquema que no define ninguna entrada de GDL. El esquema base que se define de esta manera ejerce su influencia independientemente de cómo se extienda este esquema en el futuro.

Solución de

En el ejemplo de código siguiente se muestra una manera de completar este ejercicio.

*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)
}

Nota Puede colocar las plantillas en el ejemplo anterior en un archivo MasterTemplate.gdl para usarlo en el ejercicio siguiente.