include "primitives.alh" SimpleAttribute Natural { name = "Natural" } SimpleAttribute String { name = "String" } Class GraphicalElement { name = "GraphicalElement" x : Natural y : Natural __asid? : String } Class Group : GraphicalElement { name = "Group" } Class LineElement : GraphicalElement { name = "LineElement" lineWidth : Natural lineColour : String } Class Text : LineElement { name = "Text" text : String } Class Line : LineElement { name = "Line" targetX : Natural targetY : Natural } Class Shape : LineElement { name = "Shape" fillColour : String width : Natural height : Natural } Class Figure : GraphicalElement { name = "Figure" width : Natural height : Natural } Class SVG { name = "SVG" data : String } Class Rectangle : Shape { name = "Rectangle" } Class Ellipse : Shape { name = "Ellipse" } Association contains (Group, GraphicalElement) { name = "contains" } Association renders (Figure, SVG) { name = "renders" source_lower_cardinality = 1 target_lower_cardinality = 1 target_upper_cardinality = 1 }