Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: markup/graphical/svg/furubayashi-tiny/extracted
Source used for this grammar: Yutaka Furubayashi, RELAX NG Schema on SVG 1.1 (Tiny), 15 March 2008
SVG.Animation.extra.attrib
, SVG.Animation.attrib
, SVG.AnimationAttribute.extra.attrib
, SVG.AnimationAttribute.attrib
, SVG.AnimationTiming.extra.attrib
, SVG.AnimationTiming.attrib
, SVG.AnimationValue.extra.attrib
, SVG.AnimationValue.attrib
, SVG.AnimationAddition.extra.attrib
, SVG.AnimationAddtion.attrib
, SVG.Animation.extra.class
, SVG.Animation.class
, SVG.animate
, SVG.set
, SVG.animateMotion
, SVG.animateColor
, SVG.animateTransform
, SVG.mpath
, SVG.Font.extra.class
, SVG.Font.class
, SVG.font
, SVG.font-face
, SVG.glyph
, SVG.missing-glyph
, SVG.hkern
, SVG.font-face-src
, SVG.font-face-name
, SVG.display.attrib
, SVG.visibility.attrib
, SVG.Graphics.extra.attrib
, SVG.Graphics.attrib
, SVG.Paint.datatype
, SVG.StrokeDashArrayValue.datatype
, SVG.StrokeDashOffsetValue.datatype
, SVG.StrokeMiterLimitValue.datatype
, SVG.StrokeWidthValue.datatype
, SVG.fill.attrib
, SVG.fill-rule.attrib
, SVG.stroke.attrib
, SVG.stroke-dasharray.attrib
, SVG.stroke-dashoffset.attrib
, SVG.stroke-linecap.attrib
, SVG.stroke-linejoin.attrib
, SVG.stroke-miterlimit.attrib
, SVG.stroke-width.attrib
, SVG.Paint.extra.attrib
, SVG.Paint.attrib
, SVG.color.attrib
, SVG.color-rendering.attrib
, SVG.Color.extra.attrib
, SVG.Color.attrib
, SVG.Description.extra.class
, SVG.Description.class
, SVG.Use.extra.class
, SVG.Use.class
, SVG.Structure.extra.class
, SVG.Structure.class
, SVG.svg
, SVG.g
, SVG.defs
, SVG.desc
, SVG.title
, SVG.metadata
, SVG.use
, SVG.FontFamilyValue.datatype
, SVG.FontSizeValue.datatype
, SVG.Text.extra.class
, SVG.Text.class
, SVG.TextContent.extra.attrib
, SVG.TextContent.attrib
, SVG.Font.extra.attrib
, SVG.Font.attrib
, SVG.text
, SVG.ExtensionList.datatype
, SVG.FeatureList.datatype
, SVG.Conditional.extra.class
, SVG.Conditional.class
, SVG.Conditional.extra.attrib
, SVG.Conditional.attrib
, SVG.switch
, SVG.id.attrib
, SVG.base.attrib
, SVG.lang.attrib
, SVG.space.attrib
, SVG.Core.extra.attrib
, SVG.Core.attrib
, SVG.ID.datatype
, SVG.Text.datatype
, SVG.Length.datatype
, SVG.Lengths.datatype
, SVG.URI.datatype
, SVG.PreserveAspectRatioSpec.datatype
, SVG.OpacityValue.datatype
, SVG.Integer.datatype
, SVG.Coordinate.datatype
, SVG.Coordinates.datatype
, SVG.LanguageCode.datatype
, SVG.LanguageCodes.datatype
, SVG.Color.datatype
, SVG.Script.datatype
, SVG.ContentType.datatype
, SVG.ViewBoxSpec.datatype
, SVG.Boolean.datatype
, SVG.Number.datatype
, SVG.Numbers.datatype
, SVG.ClipFillRule.datatype
, SVG.SVGColor.datatype
, SVG.TransformList.datatype
, SVG.PathData.datatype
, SVG.AnimationEvents.attrib
, SVG.Clip.attrib
, SVG.Container.attrib
, SVG.Cursor.attrib
, SVG.External.attrib
, SVG.Filter.attrib
, SVG.FilterColor.attrib
, SVG.Gradient.attrib
, SVG.GraphicalEvents.attrib
, SVG.Marker.attrib
, SVG.Mask.attrib
, SVG.Opacity.attrib
, SVG.Profile.attrib
, SVG.Style.attrib
, SVG.Text.attrib
, SVG.Viewport.attrib
, SVG.XLink.attrib
, XLinkEmbed.attrib
, XLinkRequired.attrib
, SVG.Presentation.extra.attrib
, SVG.Presentation.attrib
, SVG.Extensibility.extra.class
, SVG.Extensibility.class
, SVG.foreignObject
, SVG.foreignObject.content
, SVG.foreignObject.class
, SVG.externalResourcesRequired.attrib
, SVG.External.extra.attrib
, SVG.LinkTarget.datatype
, SVG.Hyperlink.extra.class
, SVG.Hyperlink.class
, SVG.a
, SVG.Image.extra.class
, SVG.Image.class
, SVG.image
, SVG.Script.extra.class
, SVG.Script.class
, SVG.script
, SVG.Points.datatype
, SVG.Shape.extra.class
, SVG.Shape.class
, SVG.path
, SVG.rect
, SVG.circle
, SVG.line
, SVG.ellipse
, SVG.polyline
, SVG.polygon
, SVG.ClassList.datatype
, SVG.MediaDesc.datatype
, SVG.StyleSheet.datatype
, SVG.Style.extra.class
, SVG.Style.class
, SVG.Style.extra.attrib
, SVG.style
, SVG.Cursor.class
, SVG.Pattern.class
, SVG.Mask.class
, SVG.Marker.class
, SVG.Profile.class
, SVG.Gradient.class
, SVG.Filter.class
, SVG.Clip.class
, SVG.DocumentEvents.attrib
, SVG.View.extra.class
, SVG.View.class
, SVG.view
, SVG.XLink.extra.attrib
, SVG.XLinkRequired.extra.attrib
, SVG.XLinkRequired.attrib
, SVG.XLinkEmbed.extra.attrib
, SVG.XLinkEmbed.attrib
, SVG.XLinkReplace.extra.attrib
, SVG.XLinkReplace.attrib
), 1 root (SVG.svg
), 5 top (SVG.Lengths.datatype
, SVG.Integer.datatype
, SVG.Script.datatype
, XLinkEmbed.attrib
, XLinkRequired.attrib
), 0 bottom (—).[attributeName]
, [attributeType]
, [begin]
, [dur]
, [end]
, [min]
, [max]
, [restart]
, [repeatCount]
, [repeatDur]
, [fill]
2, [calcMode]
2, [values]
2, [keyTimes]
2, [keySplines]
, [from]
2, [to]
3, [by]
2, [additive]
, [accumulate]
, [animate]
, [set]
, [Splines]
, [path]
2, [keyPoints]
, [rotate]
2, [origin]
, [animateMotion]
, [animateColor]
, [type]
3, [animateTransform]
, [mpath]
, [horiz-origin-x]
, [horiz-adv-x]
3, [font]
, [font-family]
2, [font-style]
2, [font-variant]
, [font-weight]
2, [font-stretch]
, [font-size]
2, [unicode-range]
, [units-per-em]
, [panose-1]
, [stemv]
, [stemh]
, [slope]
, [cap-height]
, [x-height]
, [accent-height]
, [ascent]
, [descent]
, [widths]
, [bbox]
, [ideographic]
, [alphabetic]
, [mathematical]
, [hanging]
, [underline-position]
, [underline-thickness]
, [strikethrough-position]
, [strikethrough-thickness]
, [overline-position]
, [overline-thickness]
, [font-face]
, [unicode]
, [glyph-name]
, [d]
3, [arabic-form]
, [lang]
, [glyph]
, [missing-glyph]
, [u1]
, [g1]
, [u2]
, [g2]
, [k]
, [hkern]
, [font-face-src]
, [name]
, [font-face-name]
, [display]
, [visibility]
, [fill-rule]
, [stroke]
, [stroke-dasharray]
, [stroke-dashoffset]
, [stroke-linecap]
, [stroke-linejoin]
, [stroke-miterlimit]
, [stroke-width]
, [color]
, [color-rendering]
, [x]
6, [y]
6, [width]
5, [height]
5, [viewBox]
2, [preserveAspectRatio]
3, [zoomAndPan]
2, [version]
, [baseProfile]
, [svg]
, [transform]
15, [g]
, [defs]
, [desc]
, [title]
2, [metadata]
, [use]
, [text-anchor]
, [text]
, [requiredFeatures]
, [requiredExtensions]
, [systemLanguage]
, [switch]
, [id]
, [xml:base]
, [xml:lang]
, [xml:space]
, [flood-color]
, [flood-opacity]
, [lighting-color]
, [foreignObject]
, [externalResourcesRequired]
, [target]
, [a]
, [image]
, [script]
, [pathLength]
, [rx]
2, [ry]
2, [rect]
, [cx]
2, [cy]
2, [r]
, [circle]
, [x1]
, [y1]
, [x2]
, [y2]
, [line]
, [ellipse]
, [points]
2, [polyline]
, [polygon]
, [style]
2, [class]
, [media]
, [viewTarget]
, [view]
, [xlink:type]
4, [xlink:href]
4, [xlink:role]
4, [xlink:arcrole]
4, [xlink:title]
4, [xlink:show]
4, [xlink:actuate]
4.SVG.Animation.extra.attrib ::= ε
SVG.Animation.attrib ::= SVG.XLink.attrib SVG.Animation.extra.attrib
SVG.AnimationAttribute.extra.attrib ::= ε
SVG.AnimationAttribute.attrib ::=
[attributeName]::string [attributeType]::string
SVG.AnimationAttribute.extra.attribSVG.AnimationTiming.extra.attrib ::= ε
SVG.AnimationTiming.attrib ::= [begin]::string"always""never""whenNotActive" [repeatCount]::string [repeatDur]::string [fill]::"remove""freeze" SVG.AnimationTiming.extra.attrib[dur]::string [end]::string [min]::string [max]::string [restart]::
SVG.AnimationValue.extra.attrib ::= ε
SVG.AnimationValue.attrib ::= [calcMode]::"discrete""linear""paced""spline" [values]::string [keyTimes]::string [keySplines]::string [from]::string [to]::string [by]::string SVG.AnimationValue.extra.attrib
SVG.AnimationAddition.extra.attrib ::= ε
SVG.AnimationAddtion.attrib ::= [additive]::"replace""sum" [accumulate]::"none""sum" SVG.AnimationAddition.extra.attrib
SVG.Animation.extra.class ::= ε
SVG.Animation.class ::= SVG.animate SVG.set SVG.animateMotion SVG.animateColor SVG.animateTransform SVG.Animation.extra.class
SVG.animate ::= [animate]::SVG.Description.class SVG.Core.attrib SVG.Conditional.attrib SVG.AnimationEvents.attrib SVG.External.attrib SVG.Animation.attrib SVG.AnimationAttribute.attrib SVG.AnimationTiming.attrib SVG.AnimationValue.attrib SVG.AnimationAddtion.attrib
SVG.set ::= [set]::SVG.Description.class SVG.Core.attrib SVG.Conditional.attrib SVG.AnimationEvents.attrib SVG.External.attrib SVG.Animation.attrib SVG.AnimationAttribute.attrib SVG.AnimationTiming.attrib [to]::string
SVG.animateMotion ::= [animateMotion]::"discrete""linear""paced""spline" [values]::string [keyTimes]::string [Splines]::string [from]::string [to]::string [by]::string [path]::string [keyPoints]::string [rotate]::string [origin]::stringSVG.Description.class SVG.mpath SVG.Core.attrib SVG.Conditional.attrib SVG.AnimationEvents.attrib SVG.External.attrib SVG.Animation.attrib SVG.AnimationTiming.attrib SVG.AnimationAddtion.attrib [calcMode]::
SVG.animateColor ::= [animateColor]::SVG.Description.class SVG.Core.attrib SVG.Conditional.attrib SVG.AnimationEvents.attrib SVG.External.attrib SVG.Animation.attrib SVG.AnimationAttribute.attrib SVG.AnimationTiming.attrib SVG.AnimationValue.attrib SVG.AnimationAddtion.attrib
SVG.animateTransform ::= [animateTransform]::"translate""scale""rotate""skewX""skewY"SVG.Description.class SVG.Core.attrib SVG.Conditional.attrib SVG.AnimationEvents.attrib SVG.External.attrib SVG.Animation.attrib SVG.AnimationAttribute.attrib SVG.AnimationTiming.attrib SVG.AnimationValue.attrib SVG.AnimationAddtion.attrib [type]::
SVG.mpath ::= [mpath]::SVG.Description.class SVG.Core.attrib SVG.XLinkRequired.attrib SVG.External.attrib
SVG.Font.extra.class ::= ε
SVG.Font.class ::= SVG.font SVG.font-face SVG.Font.extra.class
SVG.font ::= [font]::SVG.Description.class SVG.font-face SVG.missing-glyph SVG.glyph SVG.hkern SVG.Core.attrib SVG.Style.attrib SVG.External.attrib [horiz-origin-x]::SVG.Number.datatype [horiz-adv-x]::SVG.Number.datatype
SVG.font-face ::= [font-face]::SVG.Description.class SVG.font-face-src SVG.Core.attrib [font-family]::string [font-style]::string [font-variant]::string [font-weight]::string [font-stretch]::string [font-size]::string [unicode-range]::string [units-per-em]::SVG.Number.datatype [panose-1]::string [stemv]::SVG.Number.datatype [stemh]::SVG.Number.datatype [slope]::SVG.Number.datatype [cap-height]::SVG.Number.datatype [x-height]::SVG.Number.datatype [accent-height]::SVG.Number.datatype [ascent]::SVG.Number.datatype [descent]::SVG.Number.datatype [widths]::string [bbox]::string [ideographic]::SVG.Number.datatype [alphabetic]::SVG.Number.datatype [mathematical]::SVG.Number.datatype [hanging]::SVG.Number.datatype [underline-position]::SVG.Number.datatype [underline-thickness]::SVG.Number.datatype [strikethrough-position]::SVG.Number.datatype [strikethrough-thickness]::SVG.Number.datatype [overline-position]::SVG.Number.datatype [overline-thickness]::SVG.Number.datatype
SVG.glyph ::= [glyph]::SVG.Description.class SVG.Core.attrib SVG.Style.attrib [unicode]::string [glyph-name]::string [d]::SVG.PathData.datatype [arabic-form]::string [lang]::SVG.LanguageCodes.datatype [horiz-adv-x]::SVG.Number.datatype
SVG.missing-glyph ::= [missing-glyph]::SVG.Description.class SVG.Core.attrib SVG.Style.attrib [d]::SVG.PathData.datatype [horiz-adv-x]::SVG.Number.datatype
SVG.hkern ::= [hkern]::ε SVG.Core.attrib [u1]::string [g1]::string [u2]::string [g2]::string [k]::SVG.Number.datatype
SVG.font-face-src ::= [font-face-src]::SVG.font-face-name SVG.Core.attrib
SVG.font-face-name ::= [font-face-name]::ε SVG.Core.attrib [name]::string
SVG.display.attrib ::= [display]::"inline""block""list-item""run-in""compact""marker""table""inline-table""table-row-group""table-header-group""table-footer-group""table-row""table-column-group""table-column""table-cell""table-caption""none""inherit"
SVG.visibility.attrib ::= [visibility]::"visible""hidden""inherit"
SVG.Graphics.extra.attrib ::= ε
SVG.Graphics.attrib ::= SVG.display.attrib SVG.visibility.attrib SVG.Graphics.extra.attrib
SVG.Paint.datatype ::= string
SVG.StrokeDashArrayValue.datatype ::= string
SVG.StrokeDashOffsetValue.datatype ::= string
SVG.StrokeMiterLimitValue.datatype ::= string
SVG.StrokeWidthValue.datatype ::= string
SVG.fill.attrib ::=
[fill]::SVG.Paint.datatype
SVG.fill-rule.attrib ::=
[fill-rule]::SVG.ClipFillRule.datatype
SVG.stroke.attrib ::=
[stroke]::SVG.Paint.datatype
SVG.stroke-dasharray.attrib ::=
[stroke-dasharray]::SVG.StrokeDashArrayValue.datatype
SVG.stroke-dashoffset.attrib ::=
[stroke-dashoffset]::SVG.StrokeDashOffsetValue.datatype
SVG.stroke-linecap.attrib ::= [stroke-linecap]::"butt""round""square""inherit"
SVG.stroke-linejoin.attrib ::= [stroke-linejoin]::"miter""round""bevel""inherit"
SVG.stroke-miterlimit.attrib ::=
[stroke-miterlimit]::SVG.StrokeMiterLimitValue.datatype
SVG.stroke-width.attrib ::=
[stroke-width]::SVG.StrokeWidthValue.datatype
SVG.Paint.extra.attrib ::= ε
SVG.Paint.attrib ::= SVG.fill.attrib SVG.fill-rule.attrib SVG.stroke.attrib SVG.stroke-dasharray.attrib SVG.stroke-dashoffset.attrib SVG.stroke-linecap.attrib SVG.stroke-linejoin.attrib SVG.stroke-miterlimit.attrib SVG.stroke-width.attrib SVG.Paint.extra.attrib
SVG.color.attrib ::=
[color]::SVG.Color.datatype
SVG.color-rendering.attrib ::= [color-rendering]::"auto""optimizeSpeed""optimizeQuality""inherit"
SVG.Color.extra.attrib ::= ε
SVG.Color.attrib ::= SVG.color.attrib SVG.color-rendering.attrib SVG.Color.extra.attrib
SVG.Description.extra.class ::= ε
SVG.Description.class ::= SVG.desc SVG.title SVG.metadata SVG.Description.extra.class
SVG.Use.extra.class ::= ε
SVG.Use.class ::= SVG.use SVG.Use.extra.class
SVG.Structure.extra.class ::= ε
SVG.Structure.class ::= SVG.g SVG.defs SVG.Use.class SVG.Structure.extra.class
SVG.svg ::= [svg]::"disable""magnify" [version]::SVG.Number.datatype [baseProfile]::SVG.Text.datatypeSVG.Description.class SVG.Animation.class SVG.Structure.class SVG.Conditional.class SVG.Image.class SVG.Style.class SVG.Shape.class SVG.Text.class SVG.Marker.class SVG.Profile.class SVG.Gradient.class SVG.Pattern.class SVG.Clip.class SVG.Mask.class SVG.Filter.class SVG.Cursor.class SVG.Hyperlink.class SVG.View.class SVG.Script.class SVG.Font.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.DocumentEvents.attrib SVG.GraphicalEvents.attrib SVG.External.attrib [x]::SVG.Coordinate.datatype [y]::SVG.Coordinate.datatype [width]::SVG.Length.datatype [height]::SVG.Length.datatype [viewBox]::SVG.ViewBoxSpec.datatype [preserveAspectRatio]::SVG.PreserveAspectRatioSpec.datatype [zoomAndPan]::
SVG.g ::= [g]::SVG.Description.class SVG.Animation.class SVG.Structure.class SVG.Conditional.class SVG.Image.class SVG.Style.class SVG.Shape.class SVG.Text.class SVG.Marker.class SVG.Profile.class SVG.Gradient.class SVG.Pattern.class SVG.Clip.class SVG.Mask.class SVG.Filter.class SVG.Cursor.class SVG.Hyperlink.class SVG.View.class SVG.Script.class SVG.Font.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.External.attrib [transform]::SVG.TransformList.datatype
SVG.defs ::= [defs]::SVG.Description.class SVG.Animation.class SVG.Structure.class SVG.Conditional.class SVG.Image.class SVG.Style.class SVG.Shape.class SVG.Text.class SVG.Marker.class SVG.Profile.class SVG.Gradient.class SVG.Pattern.class SVG.Clip.class SVG.Mask.class SVG.Filter.class SVG.Cursor.class SVG.Hyperlink.class SVG.View.class SVG.Script.class SVG.Font.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.External.attrib [transform]::SVG.TransformList.datatype
SVG.desc ::= [desc]::string SVG.Core.attrib SVG.Style.attrib
SVG.title ::= [title]::string SVG.Core.attrib SVG.Style.attrib
SVG.metadata ::= [metadata]::string SVG.Core.attrib
SVG.use ::= [use]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.XLinkEmbed.attrib SVG.External.attrib [x]::SVG.Coordinate.datatype [y]::SVG.Coordinate.datatype [width]::SVG.Length.datatype [height]::SVG.Length.datatype [transform]::SVG.TransformList.datatype
SVG.FontFamilyValue.datatype ::= string
SVG.FontSizeValue.datatype ::= string
SVG.Text.extra.class ::= ε
SVG.Text.class ::= SVG.text SVG.Text.extra.class
SVG.TextContent.extra.attrib ::= ε
SVG.TextContent.attrib ::= [text-anchor]::"start""middle""end""inherit" SVG.TextContent.extra.attrib
SVG.Font.extra.attrib ::= ε
SVG.Font.attrib ::= [font-family]::SVG.FontFamilyValue.datatype"normal""italic""oblique""inherit" [font-weight]::"normal""bold""bolder""lighter""100""200""300""400""500""600""700""800""900""inherit" SVG.Font.extra.attrib[font-size]::SVG.FontSizeValue.datatype [font-style]::
SVG.text ::= [text]::string SVG.Description.class SVG.Animation.class SVG.Hyperlink.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.TextContent.attrib SVG.Font.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [x]::SVG.Coordinates.datatype [y]::SVG.Coordinates.datatype [rotate]::SVG.Numbers.datatype [transform]::SVG.TransformList.datatype
SVG.ExtensionList.datatype ::= string
SVG.FeatureList.datatype ::= string
SVG.Conditional.extra.class ::= ε
SVG.Conditional.class ::= SVG.switch SVG.Conditional.extra.class
SVG.Conditional.extra.attrib ::= ε
SVG.Conditional.attrib ::= [requiredFeatures]::SVG.FeatureList.datatype[requiredExtensions]::SVG.ExtensionList.datatype [systemLanguage]::SVG.LanguageCodes.datatype SVG.Conditional.extra.attrib
SVG.switch ::= [switch]::SVG.Description.class SVG.svg SVG.g SVG.use SVG.text SVG.text SVG.Animation.class SVG.Conditional.class SVG.Image.class SVG.Shape.class SVG.Hyperlink.class SVG.Extensibility.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.External.attrib [transform]::SVG.TransformList.datatype
SVG.id.attrib ::=
[id]::SVG.ID.datatype
SVG.base.attrib ::=
[xml:base]::SVG.URI.datatype
SVG.lang.attrib ::=
[xml:lang]::SVG.LanguageCode.datatype
SVG.space.attrib ::= [xml:space]::"default""preserve"
SVG.Core.extra.attrib ::= ε
SVG.Core.attrib ::= SVG.id.attrib SVG.base.attrib SVG.lang.attrib SVG.space.attrib SVG.Core.extra.attrib
SVG.ID.datatype ::= string
SVG.Text.datatype ::= string
SVG.Length.datatype ::= string
SVG.Lengths.datatype ::= string
SVG.URI.datatype ::= string
SVG.PreserveAspectRatioSpec.datatype ::= string
SVG.OpacityValue.datatype ::= string
SVG.Integer.datatype ::= integer
SVG.Coordinate.datatype ::= string
SVG.Coordinates.datatype ::= string
SVG.LanguageCode.datatype ::= string
SVG.LanguageCodes.datatype ::= string
SVG.Color.datatype ::= string
SVG.Script.datatype ::= string
SVG.ContentType.datatype ::= string
SVG.ViewBoxSpec.datatype ::= string
SVG.Boolean.datatype ::= string
SVG.Number.datatype ::= integer
SVG.Numbers.datatype ::= string
SVG.ClipFillRule.datatype ::= string
SVG.SVGColor.datatype ::= string
SVG.TransformList.datatype ::= string
SVG.PathData.datatype ::= string
SVG.AnimationEvents.attrib ::= ε
SVG.Clip.attrib ::= ε
SVG.Color.attrib ::= ε
SVG.Conditional.attrib ::= ε
SVG.Container.attrib ::= ε
SVG.Core.attrib ::= ε
SVG.Cursor.attrib ::= ε
SVG.External.attrib ::= ε
SVG.Filter.attrib ::= ε
SVG.FilterColor.attrib ::= ε
SVG.Font.attrib ::= ε
SVG.Gradient.attrib ::= ε
SVG.GraphicalEvents.attrib ::= ε
SVG.Graphics.attrib ::= ε
SVG.Marker.attrib ::= ε
SVG.Mask.attrib ::= ε
SVG.Opacity.attrib ::= ε
SVG.Paint.attrib ::= ε
SVG.Profile.attrib ::= ε
SVG.Style.attrib ::= ε
SVG.Text.attrib ::= ε
SVG.TextContent.attrib ::= ε
SVG.Viewport.attrib ::= ε
SVG.XLink.attrib ::= ε
XLinkEmbed.attrib ::= ε
XLinkRequired.attrib ::= ε
SVG.Presentation.extra.attrib ::= ε
SVG.Presentation.attrib ::= SVG.Container.attrib SVG.Viewport.attrib SVG.Text.attrib SVG.TextContent.attrib SVG.Font.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Marker.attrib SVG.Profile.attrib SVG.Gradient.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.FilterColor.attrib SVG.Cursor.attrib [flood-color]::SVG.SVGColor.datatype[flood-opacity]::SVG.OpacityValue.datatype [lighting-color]::SVG.SVGColor.datatype SVG.Presentation.extra.attrib
SVG.Extensibility.extra.class ::= ε
SVG.Extensibility.class ::= SVG.foreignObject SVG.Extensibility.extra.class
SVG.foreignObject ::= [foreignObject]::SVG.foreignObject.content SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.External.attrib [x]::SVG.Coordinate.datatype [y]::SVG.Coordinate.datatype [width]::SVG.Length.datatype [height]::SVG.Length.datatype [transform]::SVG.TransformList.datatype
SVG.foreignObject.content ::=
SVG.foreignObject.class
SVG.foreignObject.class ::= string
SVG.externalResourcesRequired.attrib ::=
[externalResourcesRequired]::SVG.Boolean.datatype
SVG.External.extra.attrib ::= ε
SVG.External.attrib ::= SVG.externalResourcesRequired.attrib SVG.External.extra.attrib
SVG.LinkTarget.datatype ::= string
SVG.Hyperlink.extra.class ::= ε
SVG.Hyperlink.class ::= SVG.a SVG.Hyperlink.extra.class
SVG.a ::= [a]::string SVG.Description.class SVG.Animation.class SVG.Structure.class SVG.Conditional.class SVG.Image.class SVG.Style.class SVG.Shape.class SVG.Text.class SVG.Marker.class SVG.Profile.class SVG.Gradient.class SVG.Pattern.class SVG.Clip.class SVG.Mask.class SVG.Filter.class SVG.Cursor.class SVG.Hyperlink.class SVG.View.class SVG.Script.class SVG.Font.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Presentation.attrib SVG.GraphicalEvents.attrib SVG.XLinkReplace.attrib SVG.External.attrib [transform]::SVG.TransformList.datatype [target]::SVG.LinkTarget.datatype
SVG.Image.extra.class ::= ε
SVG.Image.class ::= SVG.image SVG.Image.extra.class
SVG.image ::= [image]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Viewport.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Profile.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.XLinkEmbed.attrib SVG.External.attrib [x]::SVG.Coordinate.datatype [y]::SVG.Coordinate.datatype [width]::SVG.Length.datatype [height]::SVG.Length.datatype [preserveAspectRatio]::SVG.PreserveAspectRatioSpec.datatype [transform]::SVG.TransformList.datatype
SVG.Script.extra.class ::= ε
SVG.Script.class ::= SVG.script SVG.Script.extra.class
SVG.script ::= [script]::string SVG.Core.attrib SVG.XLink.attrib SVG.External.attrib [type]::SVG.ContentType.datatype
SVG.Points.datatype ::= string
SVG.Shape.extra.class ::= ε
SVG.Shape.class ::= SVG.path SVG.rect SVG.circle SVG.line SVG.ellipse SVG.polyline SVG.polygon SVG.Shape.extra.class
SVG.path ::= [path]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Marker.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [d]::SVG.PathData.datatype [pathLength]::SVG.Number.datatype [transform]::SVG.TransformList.datatype
SVG.rect ::= [rect]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [x]::SVG.Coordinate.datatype [y]::SVG.Coordinate.datatype [width]::SVG.Length.datatype [height]::SVG.Length.datatype [rx]::SVG.Length.datatype [ry]::SVG.Length.datatype [transform]::SVG.TransformList.datatype
SVG.circle ::= [circle]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [cx]::SVG.Coordinate.datatype [cy]::SVG.Coordinate.datatype [r]::SVG.Length.datatype [transform]::SVG.TransformList.datatype
SVG.line ::= [line]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Marker.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [x1]::SVG.Coordinate.datatype [y1]::SVG.Coordinate.datatype [x2]::SVG.Coordinate.datatype [y2]::SVG.Coordinate.datatype [transform]::SVG.TransformList.datatype
SVG.ellipse ::= [ellipse]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [cx]::SVG.Coordinate.datatype [cy]::SVG.Coordinate.datatype [rx]::SVG.Length.datatype [ry]::SVG.Length.datatype [transform]::SVG.TransformList.datatype
SVG.polyline ::= [polyline]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Marker.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [points]::SVG.Points.datatype [transform]::SVG.TransformList.datatype
SVG.polygon ::= [polygon]::SVG.Description.class SVG.Animation.class SVG.Core.attrib SVG.Conditional.attrib SVG.Style.attrib SVG.Paint.attrib SVG.Color.attrib SVG.Opacity.attrib SVG.Graphics.attrib SVG.Marker.attrib SVG.Clip.attrib SVG.Mask.attrib SVG.Filter.attrib SVG.GraphicalEvents.attrib SVG.Cursor.attrib SVG.External.attrib [points]::SVG.Points.datatype [transform]::SVG.TransformList.datatype
SVG.ClassList.datatype ::= string
SVG.MediaDesc.datatype ::= string
SVG.StyleSheet.datatype ::= string
SVG.Style.extra.class ::= ε
SVG.Style.class ::= SVG.style SVG.Style.extra.class
SVG.Style.extra.attrib ::= ε
SVG.Style.attrib ::= [style]::SVG.StyleSheet.datatype[class]::SVG.ClassList.datatype SVG.Style.extra.attrib
SVG.style ::= [style]::string SVG.Core.attrib [type]::SVG.ContentType.datatype [media]::SVG.MediaDesc.datatype [title]::SVG.Text.datatype
SVG.Cursor.class ::= ε
SVG.Pattern.class ::= ε
SVG.Mask.class ::= ε
SVG.Marker.class ::= ε
SVG.Profile.class ::= ε
SVG.Gradient.class ::= ε
SVG.Filter.class ::= ε
SVG.Clip.class ::= ε
SVG.DocumentEvents.attrib ::= ε
SVG.View.extra.class ::= ε
SVG.View.class ::= SVG.view SVG.View.extra.class
SVG.view ::= [view]::"disable""magnify" [viewTarget]::stringSVG.Description.class SVG.Core.attrib SVG.External.attrib [viewBox]::SVG.ViewBoxSpec.datatype [preserveAspectRatio]::SVG.PreserveAspectRatioSpec.datatype [zoomAndPan]::
SVG.XLink.extra.attrib ::= ε
SVG.XLink.attrib ::= [xlink:type]::"simple" [xlink:href]::SVG.URI.datatype [xlink:role]::SVG.URI.datatype [xlink:arcrole]::SVG.URI.datatype [xlink:title]::string [xlink:show]::"other" [xlink:actuate]::"onLoad" SVG.XLink.extra.attrib
SVG.XLinkRequired.extra.attrib ::= ε
SVG.XLinkRequired.attrib ::= [xlink:type]::"simple" [xlink:href]::SVG.URI.datatype [xlink:role]::SVG.URI.datatype [xlink:arcrole]::SVG.URI.datatype [xlink:title]::string [xlink:show]::"other" [xlink:actuate]::"onLoad" SVG.XLinkRequired.extra.attrib
SVG.XLinkEmbed.extra.attrib ::= ε
SVG.XLinkEmbed.attrib ::= [xlink:type]::"simple" [xlink:href]::SVG.URI.datatype [xlink:role]::SVG.URI.datatype [xlink:arcrole]::SVG.URI.datatype [xlink:title]::string [xlink:show]::"embed" [xlink:actuate]::"onLoad" SVG.XLinkEmbed.extra.attrib
SVG.XLinkReplace.extra.attrib ::= ε
SVG.XLinkReplace.attrib ::= [xlink:type]::"simple" [xlink:href]::SVG.URI.datatype [xlink:role]::SVG.URI.datatype [xlink:arcrole]::SVG.URI.datatype [xlink:title]::string [xlink:show]::"new""replace" [xlink:actuate]::"onRequest" SVG.XLinkReplace.extra.attrib