Module: SVGPlot

Defined in:
lib/svgplot.rb,
lib/svgplot/tag.rb,
lib/svgplot/meta.rb,
lib/svgplot/path.rb,
lib/svgplot/plot.rb,
lib/svgplot/parsers.rb,
lib/svgplot/gradient.rb,
lib/svgplot/transform.rb,
lib/svgplot/application.rb

Overview

rubocop:disable Metrics/ParameterLists

Defined Under Namespace

Modules: Expansion, Parsers, Transform Classes: Application, ChildTag, Gradient, LinearGradient, Path, Plot, RadialGradient, Raw, Tag

Constant Summary collapse

SVG_ALIAS =

Aliases for common tags

{
  group: :g,
  rectangle: :rect
}
POINT_LAMBDA =

Generic lambda for adding points, used below

lambda do |args|
  if args.length.odd?
    fail ArgumentError 'Illegal number of coordinates (should be even)'
  end
  { points: args.each_slice(2).map { |x| x.join(',') }.join(' ') }
end
SVG_EXPANSION =

Expansion definitions for unnamed args

{
  line: [:x1, :y1, :x2, :y2],
  circle: [:cx, :cy, :r],
  image: [:x, :y, :width, :height, :'xlink:href'],
  ellipse: [:cx, :cy, :rx, :ry],
  text: [:x, :y],
  rect: lambda do |args|
    unless [4, 5, 6].include? args.size
      fail ArgumentError 'Wrong unnamed argument count'
    end
    result = Hash[[:x, :y, :width, :height].zip(args)]
    if args.size > 4
      result[:rx] = args[4]
      result[:ry] = args[5] || args[4]
    end
    result
  end,
  polygon: POINT_LAMBDA,
  polyline: POINT_LAMBDA
}
SVG_ELEMENTS =

rubocop:disable SpaceAroundOperators rubocop:disable SpaceInsideHashLiteralBraces rubocop:disable HashSyntax

[:a,
:altGlyph,
:altGlyphDef,
:altGlyphItem,
:animate,
:animateColor,
:animateMotion,
:animateTransform,
:circle,
:clipPath,
:"color-profile",
:cursor,
:defs,
:desc,
:ellipse,
:feBlend,
:feColorMatrix,
:feComponentTransfer,
:feComposite,
:feConvolveMatrix,
:feDiffuseLighting,
:feDisplacementMap,
:feDistantLight,
:feFlood,
:feFuncA,
:feFuncB,
:feFuncG,
:feFuncR,
:feGaussianBlur,
:feImage,
:feMerge,
:feMergeNode,
:feMorphology,
:feOffset,
:fePointLight,
:feSpecularLighting,
:feSpotLight,
:feTile,
:feTurbulence,
:filter,
:font,
:"font-face",
:"font-face-format",
:"font-face-name",
:"font-face-src",
:"font-face-uri",
:foreignObject,
:g,
:glyph,
:glyphRef,
:hkern,
:image,
:line,
:linearGradient,
:marker,
:mask,
:metadata,
:"missing-glyph",
:mpath,
:path,
:pattern,
:polygon,
:polyline,
:radialGradient,
:rect,
:script,
:set,
:stop,
:style,
:svg,
:switch,
:symbol,
:text,
:textPath,
:title,
:tref,
:tspan,
:use,
:view,
:vkern]
SVG_STRUCTURE =
{:a=>
  {:elements=>
[:a,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :target]},
 :altGlyph=>
  {:elements=>[:altGlyph],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :x,
 :y,
 :dx,
 :dy,
 :glyphRef,
 :format,
 :rotate,
 :"xlink:href"]},
 :altGlyphDef=>
  {:elements=>[:altGlyphDef, :glyphRef, :altGlyphItem],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space"]},
 :altGlyphItem=>
  {:elements=>[:altGlyphItem, :glyphRef],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space"]},
 :animate=>
  {:elements=>[:animate, :desc, :metadata, :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onbegin,
 :onend,
 :onrepeat,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :attributeType,
 :attributeName,
 :begin,
 :dur,
 :end,
 :min,
 :max,
 :restart,
 :repeatCount,
 :repeatDur,
 :fill,
 :calcMode,
 :values,
 :keyTimes,
 :keySplines,
 :from,
 :to,
 :by,
 :additive,
 :accumulate,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :externalResourcesRequired]},
 :animateColor=>
  {:elements=>[:animateColor, :desc, :metadata, :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onbegin,
 :onend,
 :onrepeat,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :attributeType,
 :attributeName,
 :begin,
 :dur,
 :end,
 :min,
 :max,
 :restart,
 :repeatCount,
 :repeatDur,
 :fill,
 :calcMode,
 :values,
 :keyTimes,
 :keySplines,
 :from,
 :to,
 :by,
 :additive,
 :accumulate,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :externalResourcesRequired]},
 :animateMotion=>
  {:elements=>[:animateMotion, :mpath],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onbegin,
 :onend,
 :onrepeat,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :begin,
 :dur,
 :end,
 :min,
 :max,
 :restart,
 :repeatCount,
 :repeatDur,
 :fill,
 :calcMode,
 :values,
 :keyTimes,
 :keySplines,
 :from,
 :to,
 :by,
 :additive,
 :accumulate,
 :externalResourcesRequired,
 :path,
 :keyPoints,
 :rotate,
 :origin]},
 :animateTransform=>
  {:elements=>[:animateTransform, :desc, :metadata, :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onbegin,
 :onend,
 :onrepeat,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :attributeType,
 :attributeName,
 :begin,
 :dur,
 :end,
 :min,
 :max,
 :restart,
 :repeatCount,
 :repeatDur,
 :fill,
 :calcMode,
 :values,
 :keyTimes,
 :keySplines,
 :from,
 :to,
 :by,
 :additive,
 :accumulate,
 :externalResourcesRequired,
 :type]},
 :circle=>
  {:elements=>
[:circle,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :cx,
 :cy,
 :r]},
 :clipPath=>
  {:elements=>
[:clipPath,
 :desc,
 :metadata,
 :title,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :text,
 :use],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :clipPathUnits]},
 :"color-profile"=>
  {:elements=>[:"color-profile", :desc, :metadata, :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :local,
 :name,
 :"rendering-intent",
 :"xlink:href"]},
 :cursor=>
  {:elements=>[:cursor, :desc, :metadata, :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :externalResourcesRequired,
 :x,
 :y,
 :"xlink:href"]},
 :defs=>
  {:elements=>
[:defs,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform]},
 :desc=>
  {:elements=>[:desc],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :class, :style]},
 :ellipse=>
  {:elements=>
[:ellipse,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :cx,
 :cy,
 :rx,
 :ry]},
 :feBlend=>
  {:elements=>[:feBlend, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :in2,
 :mode]},
 :feColorMatrix=>
  {:elements=>[:feColorMatrix, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :type,
 :values]},
 :feComponentTransfer=>
  {:elements=>[:feComponentTransfer, :feFuncA, :feFuncB, :feFuncG, :feFuncR],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in]},
 :feComposite=>
  {:elements=>[:feComposite, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :in2,
 :operator,
 :k1,
 :k2,
 :k3,
 :k4]},
 :feConvolveMatrix=>
  {:elements=>[:feConvolveMatrix, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :order,
 :kernelMatrix,
 :divisor,
 :bias,
 :targetX,
 :targetY,
 :edgeMode,
 :kernelUnitLength,
 :preserveAlpha]},
 :feDiffuseLighting=>
  {:elements=>[:feDiffuseLighting],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :surfaceScale,
 :diffuseConstant,
 :kernelUnitLength]},
 :feDisplacementMap=>
  {:elements=>[:feDisplacementMap, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :in2,
 :scale,
 :xChannelSelector,
 :yChannelSelector]},
 :feDistantLight=>
  {:elements=>[:feDistantLight, :animate, :set],
   :attributes=>
[:id, :"xml:base", :"xml:lang", :"xml:space", :azimuth, :elevation]},
 :feFlood=>
  {:elements=>[:feFlood, :animate, :animateColor, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style]},
 :feFuncA=>
  {:elements=>[:feFuncA, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :type,
 :tableValues,
 :slope,
 :intercept,
 :amplitude,
 :exponent,
 :offset]},
 :feFuncB=>
  {:elements=>[:feFuncB, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :type,
 :tableValues,
 :slope,
 :intercept,
 :amplitude,
 :exponent,
 :offset]},
 :feFuncG=>
  {:elements=>[:feFuncG, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :type,
 :tableValues,
 :slope,
 :intercept,
 :amplitude,
 :exponent,
 :offset]},
 :feFuncR=>
  {:elements=>[:feFuncR, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :type,
 :tableValues,
 :slope,
 :intercept,
 :amplitude,
 :exponent,
 :offset]},
 :feGaussianBlur=>
  {:elements=>[:feGaussianBlur, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :stdDeviation]},
 :feImage=>
  {:elements=>[:feImage, :animate, :animateTransform, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :preserveAspectRatio,
 :"xlink:href"]},
 :feMerge=>
  {:elements=>[:feMerge, :feMergeNode],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style]},
 :feMergeNode=>
  {:elements=>[:feMergeNode, :animate, :set],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :in]},
 :feMorphology=>
  {:elements=>[:feMorphology, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :operator,
 :radius]},
 :feOffset=>
  {:elements=>[:feOffset, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :dx,
 :dy]},
 :fePointLight=>
  {:elements=>[:fePointLight, :animate, :set],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :x, :y, :z]},
 :feSpecularLighting=>
  {:elements=>[:feSpecularLighting],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in,
 :surfaceScale,
 :specularConstant,
 :specularExponent,
 :kernelUnitLength]},
 :feSpotLight=>
  {:elements=>[:feSpotLight, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :x,
 :y,
 :z,
 :pointsAtX,
 :pointsAtY,
 :pointsAtZ,
 :specularExponent,
 :limitingConeAngle]},
 :feTile=>
  {:elements=>[:feTile, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :in]},
 :feTurbulence=>
  {:elements=>[:feTurbulence, :animate, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :x,
 :y,
 :width,
 :height,
 :result,
 :class,
 :style,
 :baseFrequency,
 :numOctaves,
 :seed,
 :stitchTiles,
 :type]},
 :filter=>
  {:elements=>
[:filter,
 :desc,
 :metadata,
 :title,
 :feBlend,
 :feColorMatrix,
 :feComponentTransfer,
 :feComposite,
 :feConvolveMatrix,
 :feDiffuseLighting,
 :feDisplacementMap,
 :feFlood,
 :feGaussianBlur,
 :feImage,
 :feMerge,
 :feMorphology,
 :feOffset,
 :feSpecularLighting,
 :feTile,
 :feTurbulence,
 :animate,
 :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :x,
 :y,
 :width,
 :height,
 :filterRes,
 :filterUnits,
 :primitiveUnits,
 :"xlink:href"]},
 :font=>
  {:elements=>
[:font,
 :desc,
 :metadata,
 :title,
 :"font-face",
 :glyph,
 :hkern,
 :"missing-glyph",
 :vkern],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :"horiz-origin-x",
 :"horiz-origin-y",
 :"horiz-adv-x",
 :"vert-origin-x",
 :"vert-origin-y",
 :"vert-adv-y"]},
 :"font-face"=>
  {:elements=>[:"font-face", :"font-face-src"],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"font-family",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"font-stretch",
 :"font-size",
 :"unicode-range",
 :"units-per-em",
 :"panose-1",
 :stemv,
 :stemh,
 :slope,
 :"cap-height",
 :"x-height",
 :"accent-height",
 :ascent,
 :descent,
 :widths,
 :bbox,
 :ideographic,
 :alphabetic,
 :mathematical,
 :hanging,
 :"v-ideographic",
 :"v-alphabetic",
 :"v-mathematical",
 :"v-hanging",
 :"underline-position",
 :"underline-thickness",
 :"strikethrough-position",
 :"strikethrough-thickness",
 :"overline-position",
 :"overline-thickness"]},
 :"font-face-format"=>
  {:elements=>[:"font-face-format"],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :string]},
 :"font-face-name"=>
  {:elements=>[:"font-face-name"],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :name]},
 :"font-face-src"=>
  {:elements=>[:"font-face-src", :"font-face-name", :"font-face-uri"],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space"]},
 :"font-face-uri"=>
  {:elements=>[:"font-face-uri", :"font-face-format"],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :"xlink:href"]},
 :foreignObject=>
  {:elements=>[:foreignObject],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :x,
 :y,
 :width,
 :height]},
 :g=>
  {:elements=>
[:g,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform]},
 :glyph=>
  {:elements=>
[:glyph,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :d,
 :"horiz-adv-x",
 :"vert-origin-x",
 :"vert-origin-y",
 :"vert-adv-y",
 :unicode,
 :"glyph-name",
 :orientation,
 :"arabic-form",
 :lang]},
 :glyphRef=>
  {:elements=>[:glyphRef],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :x,
 :y,
 :dx,
 :dy,
 :glyphRef,
 :format,
 :"xlink:href"]},
 :hkern=>
  {:elements=>[:hkern],
   :attributes=>
[:id, :"xml:base", :"xml:lang", :"xml:space", :u1, :g1, :u2, :g2, :k]},
 :image=>
  {:elements=>
[:image,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :preserveAspectRatio,
 :transform,
 :x,
 :y,
 :width,
 :height,
 :"xlink:href"]},
 :line=>
  {:elements=>
[:line,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :x1,
 :y1,
 :x2,
 :y2]},
 :linearGradient=>
  {:elements=>
[:linearGradient,
 :desc,
 :metadata,
 :title,
 :animate,
 :animateTransform,
 :set,
 :stop],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :x1,
 :y1,
 :x2,
 :y2,
 :gradientUnits,
 :gradientTransform,
 :spreadMethod,
 :"xlink:href"]},
 :marker=>
  {:elements=>
[:marker,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :viewBox,
 :preserveAspectRatio,
 :refX,
 :refY,
 :markerUnits,
 :markerWidth,
 :markerHeight,
 :orient]},
 :mask=>
  {:elements=>
[:mask,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :x,
 :y,
 :width,
 :height,
 :maskUnits,
 :maskContentUnits]},
 :metadata=>
  {:elements=>[:metadata],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space"]},
 :"missing-glyph"=>
  {:elements=>
[:"missing-glyph",
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :d,
 :"horiz-adv-x",
 :"vert-origin-x",
 :"vert-origin-y",
 :"vert-adv-y"]},
 :mpath=>
  {:elements=>[:mpath, :desc, :metadata, :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :externalResourcesRequired,
 :"xlink:href"]},
 :path=>
  {:elements=>
[:path,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :d,
 :pathLength]},
 :pattern=>
  {:elements=>
[:pattern,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :viewBox,
 :preserveAspectRatio,
 :x,
 :y,
 :width,
 :height,
 :patternUnits,
 :patternContentUnits,
 :patternTransform,
 :"xlink:href"]},
 :polygon=>
  {:elements=>
[:polygon,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :points]},
 :polyline=>
  {:elements=>
[:polyline,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :points]},
 :radialGradient=>
  {:elements=>
[:radialGradient,
 :desc,
 :metadata,
 :title,
 :animate,
 :animateTransform,
 :set,
 :stop],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :cx,
 :cy,
 :r,
 :fx,
 :fy,
 :gradientUnits,
 :gradientTransform,
 :spreadMethod,
 :"xlink:href"]},
 :rect=>
  {:elements=>
[:rect,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :x,
 :y,
 :width,
 :height,
 :rx,
 :ry]},
 :script=>
  {:elements=>[:script],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :externalResourcesRequired,
 :type,
 :"xlink:href"]},
 :set=>
  {:elements=>[:set, :desc, :metadata, :title],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onbegin,
 :onend,
 :onrepeat,
 :onload,
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :attributeType,
 :attributeName,
 :begin,
 :dur,
 :end,
 :min,
 :max,
 :restart,
 :repeatCount,
 :repeatDur,
 :fill,
 :externalResourcesRequired,
 :to]},
 :stop=>
  {:elements=>[:stop, :animate, :animateColor, :set],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :offset]},
 :style=>
  {:elements=>[:style],
   :attributes=>
[:id, :"xml:base", :"xml:lang", :"xml:space", :type, :media, :title]},
 :svg=>
  {:elements=>
[:svg,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onunload,
 :onabort,
 :onerror,
 :onresize,
 :onscroll,
 :onzoom,
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :x,
 :y,
 :width,
 :height,
 :viewBox,
 :preserveAspectRatio,
 :zoomAndPan,
 :version,
 :baseProfile,
 :contentScriptType,
 :contentStyleType,
 :x,
 :y,
 :width,
 :height,
 :version,
 :baseProfile,
 :xmlns,
 :"xmlns:svg",
 :"xmlns:cc",
 :"xmlns:dc",
 :"xmlns:rdf",
 :"xmlns:inkscape",
 :"xmlns:xlink"]},
 :switch=>
  {:elements=>
[:switch,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :a,
 :foreignObject,
 :g,
 :image,
 :svg,
 :switch,
 :text,
 :use],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform]},
 :symbol=>
  {:elements=>
[:symbol,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :circle,
 :ellipse,
 :line,
 :path,
 :polygon,
 :polyline,
 :rect,
 :defs,
 :g,
 :svg,
 :symbol,
 :use,
 :linearGradient,
 :radialGradient,
 :a,
 :altGlyphDef,
 :clipPath,
 :"color-profile",
 :cursor,
 :filter,
 :font,
 :"font-face",
 :foreignObject,
 :image,
 :marker,
 :mask,
 :pattern,
 :script,
 :style,
 :switch,
 :text,
 :view],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :preserveAspectRatio,
 :viewBox]},
 :text=>
  {:elements=>
[:text,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title,
 :altGlyph,
 :textPath,
 :tref,
 :tspan,
 :a],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :lengthAdjust,
 :x,
 :y,
 :dx,
 :dy,
 :rotate,
 :textLength]},
 :textPath=>
  {:elements=>
[:textPath,
 :desc,
 :metadata,
 :title,
 :a,
 :altGlyph,
 :animate,
 :animateColor,
 :set,
 :tref,
 :tspan],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :"xlink:href",
 :startOffset,
 :method,
 :spacing]},
 :title=>
  {:elements=>[:title],
   :attributes=>[:id, :"xml:base", :"xml:lang", :"xml:space", :class, :style]},
 :tref=>
  {:elements=>[:tref, :desc, :metadata, :title, :animate, :animateColor, :set],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :"xlink:href"]},
 :tspan=>
  {:elements=>
[:tspan,
 :desc,
 :metadata,
 :title,
 :a,
 :altGlyph,
 :animate,
 :animateColor,
 :set,
 :tref,
 :tspan],
   :attributes=>
[:requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :class,
 :style,
 :externalResourcesRequired,
 :x,
 :y,
 :dx,
 :dy,
 :rotate,
 :textLength,
 :lengthAdjust]},
 :use=>
  {:elements=>
[:use,
 :animate,
 :animateColor,
 :animateMotion,
 :animateTransform,
 :set,
 :desc,
 :metadata,
 :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :requiredFeatures,
 :requiredExtensions,
 :systemLanguage,
 :onfocusin,
 :onfocusout,
 :onactivate,
 :onclick,
 :onmousedown,
 :onmouseup,
 :onmouseover,
 :onmousemove,
 :onmouseout,
 :onload,
 :"alignment-baseline",
 :"baseline-shift",
 :clip,
 :"clip-path",
 :"clip-rule",
 :color,
 :"color-interpolation",
 :"color-interpolation-filters",
 :"color-profile",
 :"color-rendering",
 :cursor,
 :direction,
 :display,
 :"dominant-baseline",
 :"enable-background",
 :fill,
 :"fill-opacity",
 :"fill-rule",
 :filter,
 :"flood-color",
 :"flood-opacity",
 :"font-family",
 :"font-size",
 :"font-size-adjust",
 :"font-stretch",
 :"font-style",
 :"font-variant",
 :"font-weight",
 :"glyph-orientation-horizontal",
 :"glyph-orientation-vertical",
 :"image-rendering",
 :kerning,
 :"letter-spacing",
 :"lighting-color",
 :"marker-end",
 :"marker-mid",
 :"marker-start",
 :mask,
 :opacity,
 :overflow,
 :"pointer-events",
 :"shape-rendering",
 :"stop-color",
 :"stop-opacity",
 :stroke,
 :"stroke-dasharray",
 :"stroke-dashoffset",
 :"stroke-linecap",
 :"stroke-linejoin",
 :"stroke-miterlimit",
 :"stroke-opacity",
 :"stroke-width",
 :"text-anchor",
 :"text-decoration",
 :"text-rendering",
 :"unicode-bidi",
 :visibility,
 :"word-spacing",
 :"writing-mode",
 :"xlink:href",
 :"xlink:show",
 :"xlink:actuate",
 :"xlink:type",
 :"xlink:role",
 :"xlink:arcrole",
 :"xlink:title",
 :class,
 :style,
 :externalResourcesRequired,
 :transform,
 :x,
 :y,
 :width,
 :height,
 :"xlink:href"]},
 :view=>
  {:elements=>[:view, :desc, :metadata, :title],
   :attributes=>
[:id,
 :"xml:base",
 :"xml:lang",
 :"xml:space",
 :externalResourcesRequired,
 :viewBox,
 :preserveAspectRatio,
 :zoomAndPan,
 :viewTarget]},
 :vkern=>
  {:elements=>[:vkern],
   :attributes=>
[:id, :"xml:base", :"xml:lang", :"xml:space", :u1, :g1, :u2, :g2, :k]}}

Class Method Summary collapse

Class Method Details

.new(*args, &block) ⇒ Object

Add .new() helper for creating a new Plot object



8
9
10
# File 'lib/svgplot.rb', line 8

def new(*args, &block)
  self::Plot.new(*args, &block)
end