
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/graphical/svg/palies/extracted
Source used for this grammar: Jean Paliès, (A subset of) Scalable Vector Graphics 1.1, SVG.ecore, 2005/04/07
Element, StructuralElement, Image, Svg, GroupingElement, G, Defs, Symbol, Use, GraphicalElement, Shape, TextElement, Rect, Circle, Ellipse, Line, Polyline, Polygon, Path, Point, Marker, Text, Tspan, Tref, Attribute, Transform, Scale, Translate, Rotate, Visibility, FontWeight, FontStyle, Dimension, Coordinates, RelativeCoord, AbsoluteCoord, ReferencedFile, SvgFile, Boolean, Integer, String), 0 root (—), 4 top (Attribute, Dimension, Coordinates, Integer), 1 bottom (Double 20).[referee], [owner_SVG], [children], [namespace], [version], [baseProfile], [name], [groupContent] 2, [use], [rx], [ry], [between], [markerEnd] 4, [markerStart] 4, [waypoints] 2, [strokeDashArray], [pathLength], [d], [markerUnits], [refX], [refY], [markerWidth], [markerHeight], [orient], [drawing], [lengthAdjust], [content] 2, [xlinkHref], [sx], [sy], [tx], [ty], [angle], [cx], [cy], [visible], [bold], [italic], [width], [height], [x] 2, [y] 2, [tag], [elements].Element ::= StructuralElement
Element ::= GraphicalElement
StructuralElement ::= Image
StructuralElement ::= Svg
StructuralElement ::= GroupingElement
StructuralElement ::= Use
Image ::=
[referee]::ReferencedFileSvg ::= [owner_SVG]::SvgFile [children]::Element [namespace]::String [version]::String [baseProfile]::String
GroupingElement ::= G
GroupingElement ::= Defs
GroupingElement ::= Symbol
G ::= [name]::String
Defs ::=
[groupContent]::ElementSymbol ::=
[groupContent]::ElementUse ::=
[use]::ElementGraphicalElement ::= Shape
GraphicalElement ::= TextElement
Shape ::= Rect
Shape ::= Circle
Shape ::= Ellipse
Shape ::= Line
Shape ::= Polyline
Shape ::= Polygon
Shape ::= Path
Shape ::= Point
Shape ::= Marker
TextElement ::= Text
TextElement ::= Tspan
TextElement ::= Tref
Rect ::= [rx]::Double [ry]::Double
Circle ::= ε
Ellipse ::= ε
Line ::= [between]::Point [markerEnd]::String [markerStart]::String
Polyline ::=
[waypoints]::Point [strokeDashArray]::String [markerEnd]::String [markerStart]::StringPolygon ::=
[waypoints]::Point [markerEnd]::String [markerStart]::StringPath ::= [pathLength]::Double [d]::String [markerEnd]::String [markerStart]::String
Point ::= ε
Marker ::=
[markerUnits]::String [refX]::Double [refY]::Double [markerWidth]::Double [markerHeight]::Double [orient]::String [drawing]::ElementText ::= [lengthAdjust]::String [content]::String
Tspan ::= [content]::String
Tref ::= [xlinkHref]::TextElement
Attribute ::= Transform
Attribute ::= Visibility
Attribute ::= FontWeight
Attribute ::= FontStyle
Transform ::= Scale
Transform ::= Translate
Transform ::= Rotate
Scale ::= [sx]::Double [sy]::Double
Translate ::= [tx]::Double [ty]::Double
Rotate ::= [angle]::Double [cx]::Double [cy]::Double
Visibility ::= [visible]::Boolean
FontWeight ::= [bold]::Boolean
FontStyle ::= [italic]::Boolean
Dimension ::= [width]::Double [height]::Double
Coordinates ::= RelativeCoord
Coordinates ::= AbsoluteCoord
RelativeCoord ::= [x]::Double [y]::Double
AbsoluteCoord ::= [x]::Double [y]::Double
ReferencedFile ::= SvgFile
SvgFile ::=
[tag]::Svg [elements]::ElementBoolean ::= "true" "false"
Integer ::= integer
String ::= string