This appendix is normative.
The DTD is also available for download.
<!--
    This is the DTD for Scalable Vector Graphics (SVG) 1.0 (draft 19990812).
    The specification for SVG that corresponds to this DTD is available at:
        http://www.w3.org/1999/08/12/WD-SVG-19990812/
-->
<!--=================== Generic Attributes ===================-->
<!ENTITY % graphicsElementEvents
  "onmousedown CDATA #IMPLIED
   onmouseup CDATA #IMPLIED
   onclick CDATA #IMPLIED
   ondblclick CDATA #IMPLIED
   onmouseover CDATA #IMPLIED
   onmousemove CDATA #IMPLIED
   onmouseout CDATA #IMPLIED
   onkeydown CDATA #IMPLIED
   onkeypress CDATA #IMPLIED
   onkeyup CDATA #IMPLIED
   onload CDATA #IMPLIED
   onselect CDATA #IMPLIED">
<!ENTITY % documentEvents
  "onunload CDATA #IMPLIED
   onzoom CDATA #IMPLIED ">
<!ENTITY % structured_text
  "content CDATA #FIXED 'structured text'">
<!--========== Document Structure and Grouping ==========-->
<!ELEMENT svg (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a)*)>
<!ATTLIST svg
  xmlns CDATA #FIXED 'http://www.w3.org/Graphics/SVG/SVG-19990812.dtd'
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  %graphicsElementEvents;
  %documentEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #REQUIRED
  height CDATA #REQUIRED
  refX CDATA #IMPLIED
  refY CDATA #IMPLIED
  viewBox CDATA #IMPLIED
  preserveAspectRatio CDATA 'xMidYMid meet'
  allowZoomAndPan (true | false) "true" 
  contentScriptType CDATA #IMPLIED >
<!ELEMENT g (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a|
                   animate|animateTransform|animateColor)*)>
<!ATTLIST g
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED>
<!ELEMENT defs (script|style|symbol|marker|clipPath|mask|
                linearGradient|radialGradient|pattern|filter|cursor|font|
                animate|animateMotion|animateTransform|animateColor|animateFlipbook|
                path|text|rect|circle|ellipse|line|polyline|polygon|
                use|image|svg|g|switch)* >
<!ATTLIST defs
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED>
<!--=================== Shapes ===================-->
<!ELEMENT path (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST path
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  d CDATA #REQUIRED
  flatness CDATA #IMPLIED
  nominalLength CDATA #IMPLIED >
<!ELEMENT rect (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST rect
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #REQUIRED
  height CDATA #REQUIRED
  rx CDATA #IMPLIED
  ry CDATA #IMPLIED >
<!ELEMENT circle (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST circle
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  cx CDATA "0"
  cy CDATA "0"
  r CDATA #REQUIRED >
<!ELEMENT ellipse (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST ellipse
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  cx CDATA "0"
  cy CDATA "0"
  rx CDATA #REQUIRED
  ry CDATA #REQUIRED >
<!ELEMENT line (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST line
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x1 CDATA "0"
  y1 CDATA "0"
  x2 CDATA "0"
  y2 CDATA "0" >
<!ELEMENT polyline (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST polyline
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  points CDATA #REQUIRED >
<!ELEMENT polygon (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST polygon
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  points CDATA #REQUIRED >
<!--=================== Text ===================-->
<!ELEMENT text (#PCDATA|tspan|textPath|animate|animateTransform|animateColor)* >
<!ATTLIST text
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED >
<!ELEMENT tspan (#PCDATA|animate|animateColor)* >
<!ATTLIST tspan
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  dx CDATA #IMPLIED
  dy CDATA #IMPLIED
  dCoordUnits CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!ELEMENT textPath (#PCDATA|tspan)* >
<!ATTLIST textPath
  startOffset CDATA "0"
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!--=================== SVG Fonts ===================-->
<!ELEMENT font (desc?,title?,missingGlyph,(glyph|kern)*) >
<!ATTLIST font
  id ID #IMPLIED
  fontStyle CDATA #IMPLIED
  fontVariant CDATA #IMPLIED
  fontWeight CDATA #IMPLIED
  fontStretch CDATA #IMPLIED
  unicodeRange CDATA #IMPLIED
  unitsPerEm CDATA #REQUIRED
  panose1 CDATA #IMPLIED
  slope CDATA #IMPLIED
  capHeight CDATA #REQUIRED
  xHeight CDATA #REQUIRED
  accentHeight CDATA #IMPLIED
  ascent CDATA #REQUIRED
  descent CDATA #REQUIRED
  horizOriginX CDATA #IMPLIED
  horizOriginY CDATA #IMPLIED
  horizAdvX CDATA #IMPLIED
  vertOriginX CDATA #IMPLIED
  vertOriginY CDATA #IMPLIED
  vertAdvY CDATA #IMPLIED
  bbox CDATA #REQUIRED
  baseline CDATA #REQUIRED
  centerline CDATA #REQUIRED
  mathline CDATA #REQUIRED
  topline CDATA #REQUIRED
  fullFontName CDATA #IMPLIED
  underlinePosition CDATA #IMPLIED
  underlineThickness CDATA #IMPLIED
  strikethroughPosition CDATA #IMPLIED
  strikethroughThickness CDATA #IMPLIED
  overlinePosition CDATA #IMPLIED
  overlineThickness CDATA #IMPLIED >
<!ELEMENT glyph (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|g|switch)*)>
<!ATTLIST glyph
  unicode CDATA #REQUIRED
  glyphName CDATA #IMPLIED
  vertTextOrient CDATA #IMPLIED
  arabic CDATA #IMPLIED
  han CDATA #IMPLIED
  horizAdvX CDATA #IMPLIED
  vertAdvY CDATA #IMPLIED
  bbox CDATA #IMPLIED >
<!ELEMENT missingGlyph (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|g|switch)*)>
<!ATTLIST missingGlyph
  horizAdvX CDATA #IMPLIED
  vertAdvY CDATA #IMPLIED
  bbox CDATA #IMPLIED >
<!ELEMENT kern EMPTY >
<!ATTLIST kern
  u1 CDATA #IMPLIED
  g1 CDATA #IMPLIED
  u2 CDATA #IMPLIED
  g2 CDATA #IMPLIED
  k CDATA #REQUIRED >
<!--=================== Graphics Referencing Elements ===================-->
<!ELEMENT use (desc?,title?,(animate|animateTransform|animateColor)*) >
<!ATTLIST use
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #IMPLIED
  height CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!ELEMENT image (desc?,title?,(animate|animateTransform)*) >
<!ATTLIST image
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #REQUIRED
  height CDATA #REQUIRED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!--=================== Symbols and Markers ===================-->
<!ELEMENT symbol (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a|
                   animate|animateTransform|animateColor)*)>
<!ATTLIST symbol
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  refX CDATA #IMPLIED
  refY CDATA #IMPLIED
  viewBox CDATA #IMPLIED
  preserveAspectRatio CDATA 'xMidYMid meet' >
<!ELEMENT marker (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a|
                   animate|animateTransform|animateColor)*)>
<!ATTLIST marker
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  refX CDATA #IMPLIED
  refY CDATA #IMPLIED
  viewBox CDATA #IMPLIED
  preserveAspectRatio CDATA 'xMidYMid meet'
  markerUnits (stroke-width | userSpace) "stroke-width"
  markerWidth  CDATA "3"
  markerHeight CDATA "3"
  orient CDATA "0">
<!--========== Descriptions and Titles ==========-->
<!ELEMENT desc (#PCDATA)* >
<!ATTLIST desc
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  %structured_text;>
<!ELEMENT title (#PCDATA)* >
<!ATTLIST title
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  %structured_text;>
<!--=================== Clipping and Masking ===================-->
<!ELEMENT clipPath (desc?,title?,
                    (path|text|rect|circle|ellipse|line|polyline|polygon|
                     use)*) >
<!ATTLIST clipPath
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED >
<!ELEMENT mask (defs?,desc?,title?,
                    (path|text|rect|circle|ellipse|line|polyline|polygon|
                     use|image|svg|g|switch|a|
                     animate)*)>
<!ATTLIST mask
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  maskUnits (userSpace | objectBoundingBox) "userSpace"
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #IMPLIED
  height CDATA #IMPLIED >
<!--=================== Built-in Types of Paint ===================-->
<!ELEMENT linearGradient (stop|animate|animateTransform)* >
<!ATTLIST linearGradient
  id ID #IMPLIED
  gradientUnits (userSpace | objectBoundingBox) 'userSpace'
  gradientTransform CDATA #IMPLIED
  x1 CDATA #IMPLIED
  y1 CDATA #IMPLIED
  x2 CDATA #IMPLIED
  y2 CDATA #IMPLIED
  spreadMethod (pad | reflect | repeat) "pad">
<!ELEMENT radialGradient (stop|animate|animateTransform)* >
<!ATTLIST radialGradient
  id ID #IMPLIED
  gradientUnits (userSpace | objectBoundingBox) 'userSpace'
  gradientTransform CDATA #IMPLIED
  cx CDATA #IMPLIED
  cy CDATA #IMPLIED
  r CDATA #IMPLIED
  fx CDATA #IMPLIED
  fy CDATA #IMPLIED>
<!ELEMENT stop (animate|animateColor)* >
<!ATTLIST stop
  id ID #IMPLIED
  style CDATA #IMPLIED
  offset CDATA #REQUIRED >
<!ELEMENT pattern (defs?,desc?,title?,
                    (path|text|rect|circle|ellipse|line|polyline|polygon|
                     use|image|svg|g|switch|a|
                     animate|animateTransform)*)>
<!ATTLIST pattern
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  patternUnits (userSpace | objectBoundingBox) 'userSpace'
  patternTransform CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #REQUIRED
  height CDATA #REQUIRED
  refX CDATA #IMPLIED
  refY CDATA #IMPLIED
  viewBox CDATA #IMPLIED
  preserveAspectRatio CDATA 'xMidYMid meet' >
<!--=================== Linking ===================-->
<!ELEMENT a (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a)*)>
<!ATTLIST a
  id ID #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'replace'
  xlink:actuate (user|auto) #FIXED 'user'
  xlink:href CDATA #REQUIRED >
<!--=================== Animation ===================-->
<!ELEMENT animate (desc?,title?) >
<!ATTLIST animate
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #IMPLIED
  attribute CDATA #REQUIRED
  attributeType (xml|css) 'xml'
  begin CDATA #IMPLIED
  end CDATA #IMPLIED
  dur CDATA #IMPLIED
  repeatCount CDATA "1"
  repeatDur CDATA #IMPLIED
  beginEvent CDATA #IMPLIED
  endEvent CDATA #IMPLIED
  additive (true | false) "false"
  accumulate (true | false) "false"
  fill (remove | freeze) "remove"
  values CDATA #IMPLIED
  from CDATA #IMPLIED
  to CDATA #IMPLIED
  by CDATA #IMPLIED
  calcMode (discrete | linear | spline) "discrete"
  vtimes CDATA #IMPLIED
  interpSpline CDATA #IMPLIED >
<!ELEMENT animateMotion (desc?,title?) >
<!ATTLIST animateMotion
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #IMPLIED
  motionPath CDATA #IMPLIED
  rotate CDATA #IMPLIED
  begin CDATA #IMPLIED
  end CDATA #IMPLIED
  dur CDATA #IMPLIED
  repeatCount CDATA "1"
  repeatDur CDATA #IMPLIED
  beginEvent CDATA #IMPLIED
  endEvent CDATA #IMPLIED
  fill (remove | freeze) "remove"
  values CDATA #IMPLIED
  from CDATA #IMPLIED
  to CDATA #IMPLIED
  by CDATA #IMPLIED
  calcMode (discrete | linear | spline) "discrete"
  vtimes CDATA #IMPLIED
  interpSpline CDATA #IMPLIED >
<!ELEMENT animateTransform (desc?,title?) >
<!ATTLIST animateTransform
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #IMPLIED
  begin CDATA #IMPLIED
  end CDATA #IMPLIED
  dur CDATA #IMPLIED
  repeatCount CDATA "1"
  repeatDur CDATA #IMPLIED
  beginEvent CDATA #IMPLIED
  endEvent CDATA #IMPLIED
  additive (true | false) "false"
  accumulate (true | false) "false"
  fill (remove | freeze) "remove"
  values CDATA #IMPLIED
  from CDATA #IMPLIED
  to CDATA #IMPLIED
  by CDATA #IMPLIED
  calcMode (discrete | linear | spline) "discrete"
  vtimes CDATA #IMPLIED
  interpSpline CDATA #IMPLIED >
<!ELEMENT animateColor (desc?,title?) >
<!ATTLIST animateColor
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #IMPLIED
  attribute CDATA #REQUIRED
  attributeType (xml|css) 'xml'
  begin CDATA #IMPLIED
  end CDATA #IMPLIED
  dur CDATA #IMPLIED
  repeatCount CDATA "1"
  repeatDur CDATA #IMPLIED
  beginEvent CDATA #IMPLIED
  endEvent CDATA #IMPLIED
  additive (true | false) "false"
  accumulate (true | false) "false"
  fill (remove | freeze) "remove"
  values CDATA #IMPLIED
  from CDATA #IMPLIED
  to CDATA #IMPLIED
  by CDATA #IMPLIED
  calcMode (discrete | linear | spline) "discrete"
  vtimes CDATA #IMPLIED
  interpSpline CDATA #IMPLIED >
<!ELEMENT animateFlipbook (desc?,title?,(animateFlipbookValue)*) >
<!ATTLIST animateFlipbook
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  begin CDATA #IMPLIED
  end CDATA #IMPLIED
  dur CDATA #IMPLIED
  repeatCount CDATA "1"
  repeatDur CDATA #IMPLIED
  beginEvent CDATA #IMPLIED
  endEvent CDATA #IMPLIED
  fill (remove | freeze) "remove"
  vtimes CDATA #IMPLIED >
<!ELEMENT animateFlipbookValue EMPTY >
<!ATTLIST animateFlipbookValue
  id ID #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!--========== Defining Scripts and Declaring Styles ==========-->
<!ELEMENT script (#PCDATA)* >
<!ATTLIST script
  language CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!ELEMENT style (#PCDATA)* >
<!ATTLIST style type CDATA #FIXED "text/css">
<!--=================== Custom cursors ===================-->
<!ELEMENT cursor (desc?,title?) >
<!ATTLIST cursor
  id ID #IMPLIED
  system-required CDATA #IMPLIED
  x CDATA "0"
  y CDATA "0"
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED >
<!--=================== Extensibility ===================-->
<!ELEMENT switch (defs?,desc?,title?,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a|foreignObject)*)>
<!ATTLIST switch
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED>
<!ELEMENT foreignObject (#PCDATA)* >
<!ATTLIST foreignObject
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  class NMTOKENS #IMPLIED
  style CDATA #IMPLIED
  transform CDATA #IMPLIED
  %graphicsElementEvents;
  system-required CDATA #IMPLIED
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #REQUIRED
  height CDATA #REQUIRED
  %structured_text; >
<!--============== Filter Effects ==============-->
<!ENTITY % filter_node_attributes
  "in CDATA #IMPLIED
  nodeId CDATA #IMPLIED">
<!ENTITY % component_transfer_function_attributes
  "type CDATA #REQUIRED
  tableValues CDATA #IMPLIED
  slope CDATA #IMPLIED
  intercept CDATA #IMPLIED
  amplitude CDATA #IMPLIED
  exponent CDATA #IMPLIED
  offset CDATA #IMPLIED">
<!ELEMENT filter (feBlend|feFlood|
  feColorMatrix|feComponentTransfer|
  feComposite|feDiffuseLighting|feDisplacementMap|
  feGaussianBlur|feImage|feMerge|
  feMorphology|feOffset|feSpecularLighting|
  feTile|feTurbulence)* >
<!ATTLIST filter
  id ID #IMPLIED
  xml:lang NMTOKEN #IMPLIED
  xml:space (default|preserve) #IMPLIED
  filterUnits (userSpace | objectBoundingBox) "userSpace"
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  width CDATA #IMPLIED
  height CDATA #IMPLIED
  filterRes CDATA #IMPLIED>
<!ELEMENT feBlend EMPTY >
<!ATTLIST feBlend
  %filter_node_attributes;
  mode (normal | multiple | screen | darken | lighten) "normal"
  in2 CDATA #REQUIRED>
<!ELEMENT feFlood (animateColor)* >
<!ATTLIST feFlood
  %filter_node_attributes;
  style CDATA #IMPLIED>
<!ELEMENT feColorMatrix (animate)* >
<!ATTLIST feColorMatrix
  %filter_node_attributes;
  type CDATA #REQUIRED
  values CDATA #IMPLIED>
<!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
<!ATTLIST feComponentTransfer
  %filter_node_attributes;>
<!ELEMENT feFuncR (animate)* >
<!ATTLIST feFuncR
  %component_transfer_function_attributes;>
<!ELEMENT feFuncG (animate)* >
<!ATTLIST feFuncG
  %component_transfer_function_attributes;>
<!ELEMENT feFuncB (animate)* >
<!ATTLIST feFuncB
  %component_transfer_function_attributes;>
<!ELEMENT feFuncA (animate)* >
<!ATTLIST feFuncA
  %component_transfer_function_attributes;>
<!ELEMENT feComposite EMPTY >
<!ATTLIST feComposite
  %filter_node_attributes;
  operator (over | in | out | atop | xor | arithmetic) "over"
  k1 CDATA #IMPLIED
  k2 CDATA #IMPLIED
  k3 CDATA #IMPLIED
  k4 CDATA #IMPLIED
  in2 CDATA #REQUIRED>
<!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|animateColor)*) >
<!ATTLIST feDiffuseLighting
  %filter_node_attributes;
  resultScale CDATA #IMPLIED
  surfaceScale CDATA #IMPLIED
  diffuseConstant CDATA #IMPLIED
  lightColor CDATA #IMPLIED>
<!ELEMENT feDistantLight (animate)* >
<!ATTLIST feDistantLight
  azimuth CDATA #IMPLIED
  elevation CDATA #IMPLIED>
<!ELEMENT fePointLight (animate)* >
<!ATTLIST fePointLight
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  z CDATA #IMPLIED>
<!ELEMENT feSpotLight (animate)* >
<!ATTLIST feSpotLight
  x CDATA #IMPLIED
  y CDATA #IMPLIED
  z CDATA #IMPLIED
  pointsAtX CDATA #IMPLIED
  pointsAtY CDATA #IMPLIED
  pointsAtZ CDATA #IMPLIED
  specularExponent CDATA #IMPLIED>
<!ELEMENT feDisplacementMap (animate)* >
<!ATTLIST feDisplacementMap
  %filter_node_attributes;
  scale CDATA #IMPLIED
  xChannelSelector (R | G | B | A) "A"
  yChannelSelector (R | G | B | A) "A"
  in2 CDATA #REQUIRED>
<!ELEMENT feGaussianBlur (animate)* >
<!ATTLIST feGaussianBlur
  %filter_node_attributes;
  stdDeviation CDATA #IMPLIED>
<!ELEMENT feImage (animateTransform)* >
<!ATTLIST feImage
  nodeId CDATA #IMPLIED
  xmlns:xlink CDATA #FIXED "http://www.w3.org/XML/XLink/0.9"
  xlink:type (simple|extended|locator|arc) #FIXED "simple" 
  xlink:role CDATA #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (new|parsed|replace) #FIXED 'parsed'
  xlink:actuate (user|auto) #FIXED 'auto'
  xlink:href CDATA #REQUIRED
  transform CDATA #IMPLIED>
<!ELEMENT feMerge (feMergeNode)* >
<!ATTLIST feMerge
  %filter_node_attributes;>
<!ELEMENT feMergeNode EMPTY >
<!ATTLIST feMergeNode
  in CDATA #IMPLIED>
<!ELEMENT feMorphology (animate)* >
<!ATTLIST feMorphology
  %filter_node_attributes;
  operator (erode | dilate) "erode"
  radius CDATA #IMPLIED>
<!ELEMENT feOffset (animate)* >
<!ATTLIST feOffset
  %filter_node_attributes;
  dx CDATA #IMPLIED
  dy CDATA #IMPLIED>
<!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|animateColor)*) >
<!ATTLIST feSpecularLighting
  %filter_node_attributes;
  surfaceScale CDATA #IMPLIED
  specularConstant CDATA #IMPLIED
  specularExponent CDATA #IMPLIED
  lightColor CDATA #IMPLIED>
<!ELEMENT feTile EMPTY >
<!ATTLIST feTile
  %filter_node_attributes;>
<!ELEMENT feTurbulence (animate)* >
<!ATTLIST feTurbulence
  %filter_node_attributes;
  baseFrequency CDATA #IMPLIED
  numOctaves CDATA #IMPLIED
  type (fractalNoise | turbulence) "turbulence">