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]::ReferencedFile
Svg ::= [owner_SVG]::SvgFile[children]::Element [namespace]::String [version]::String [baseProfile]::String
GroupingElement ::= G
GroupingElement ::= Defs
GroupingElement ::= Symbol
G ::= [name]::String
Defs ::=
[groupContent]::Element
Symbol ::=
[groupContent]::Element
Use ::=
[use]::Element
GraphicalElement ::= 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]::Element
Text ::= [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]::Element
Boolean ::= "true" "false"
Integer ::= integer
String ::= string