The DTD is also available for download.
<!ENTITY % namespace "xmlns CDATA #FIXED 'http://www.w3.org/Graphics/SVG/SVG-19990706'"> <!ENTITY % class "class NMTOKENS #IMPLIED"> <!ENTITY % id "id ID #IMPLIED"> <!ENTITY % lang "xml:lang NMTOKEN #IMPLIED"> <!ENTITY % style "style CDATA #IMPLIED"> <!ENTITY % class_id_lang "%class; %id; %style;"> <!ENTITY % class_id_lang_style "%class; %id; %lang; %style;"> <!ENTITY % structured_text "content CDATA #FIXED 'structured text'"> <!ENTITY % xmlspace "xml:space (default|preserve) #IMPLIED"> <!ENTITY % g_eventhandlers "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 % r_eventhandlers "onunload CDATA #IMPLIED onzoom CDATA #IMPLIED "> <!ENTITY % system_required "system-required CDATA #IMPLIED"> <!ENTITY % replaced "xml:link CDATA #FIXED 'simple' show CDATA #FIXED 'embed' actuate CDATA #FIXED 'auto' href CDATA #REQUIRED "> <!ENTITY % hyperlink "xml:link CDATA #FIXED 'simple' show CDATA #FIXED 'replace' actuate CDATA #FIXED 'user' href CDATA #REQUIRED "> <!ENTITY % xy_attributes "x CDATA #IMPLIED y CDATA #IMPLIED"> <!ENTITY % dxdy_attributes "dx CDATA '0' dy CDATA '0'"> <!ENTITY % bbox_attributes_optional "%xy_attributes; width CDATA #IMPLIED height CDATA #IMPLIED"> <!ENTITY % bbox_attributes_wh_required "%xy_attributes; width CDATA #REQUIRED height CDATA #REQUIRED"> <!ENTITY % ref_xy_attributes "ref-x CDATA #IMPLIED ref-y CDATA #IMPLIED"> <!ENTITY % fit_attributes "fit-box-to-viewport CDATA #IMPLIED preserve-aspect-ratio CDATA 'xmid-ymid meet'"> <!ENTITY % transform_attributes "transform CDATA #IMPLIED"> <!ENTITY % shapes "rect|circle|ellipse|polyline|polygon|line"> <!ENTITY % g_elements "(defs?,title?,desc?,(use|image|text|path|%shapes;|g|switch|svg|a)*)"> <!ENTITY % g_elements_and_foreignobject "(defs?,title?,desc?,(use|image|text|path|%shapes;|g|switch|svg|a|foreignobject)*)"> <!ENTITY % filter_node_attributes "in CDATA #IMPLIED nodeid CDATA #IMPLIED"> <!ENTITY % component_transfer_function_attributes "type CDATA #REQUIRED table-values CDATA #IMPLIED slope CDATA #IMPLIED intercept CDATA #IMPLIED amplitude CDATA #IMPLIED exponent CDATA #IMPLIED offset CDATA #IMPLIED"> <!ELEMENT svg %g_elements; > <!ATTLIST svg %namespace; %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %r_eventhandlers; %transform_attributes; %bbox_attributes_wh_required; %ref_xy_attributes; %fit_attributes; allow-zoom-and-pan (true | false) "true" > <!ELEMENT g %g_elements; > <!ATTLIST g %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %transform_attributes;> <!ELEMENT switch %g_elements_and_foreignobject; > <!ATTLIST switch %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %transform_attributes;> <!ELEMENT path (data)* > <!ATTLIST path %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; d CDATA #REQUIRED flatness CDATA #IMPLIED nominal-length CDATA #IMPLIED> <!ELEMENT data EMPTY > <!ATTLIST data d CDATA #REQUIRED > <!ELEMENT rect EMPTY > <!ATTLIST rect %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; %bbox_attributes_wh_required; rx CDATA "#IMPLIED" ry CDATA "#IMPLIED"> <!ELEMENT circle EMPTY > <!ATTLIST circle %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; cx CDATA "0" cy CDATA "0" r CDATA #REQUIRED> <!ELEMENT ellipse EMPTY > <!ATTLIST ellipse %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; cx CDATA "0" cy CDATA "0" rx CDATA #REQUIRED ry CDATA #REQUIRED> <!ELEMENT polyline EMPTY > <!ATTLIST polyline %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; points CDATA #REQUIRED> <!ELEMENT polygon EMPTY > <!ATTLIST polygon %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; points CDATA #REQUIRED> <!ELEMENT line EMPTY > <!ATTLIST line %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; x1 CDATA "0" x2 CDATA "0" y1 CDATA "0" y2 CDATA "0"> <!ELEMENT text (#PCDATA|tspan|textpath)* > <!ATTLIST text %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %transform_attributes; %xy_attributes;> <!ELEMENT textpath (#PCDATA|tspan)* > <!ATTLIST textpath start-offset CDATA "0" %replaced;> <!ELEMENT tspan (#PCDATA)* > <!ATTLIST tspan %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %xy_attributes; %dxdy_attributes; %replaced;> <!ELEMENT use (desc?, title?) > <!ATTLIST use %class_id_lang; %system_required; %g_eventhandlers; %transform_attributes; %bbox_attributes_optional; %replaced;> <!ELEMENT image (desc?, title?) > <!ATTLIST image %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %transform_attributes; %bbox_attributes_wh_required; %replaced;> <!ELEMENT foreignobject (#PCDATA)* > <!ATTLIST foreignobject %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %transform_attributes; %bbox_attributes_wh_required; %structured_text; > <!ELEMENT a %g_elements; > <!ATTLIST a %hyperlink;> <!ELEMENT desc (#PCDATA)* > <!ATTLIST desc %class_id_lang_style; %system_required; %g_eventhandlers; %xmlspace; %structured_text;> <!ELEMENT title (#PCDATA)* > <!ATTLIST title %class_id_lang_style; %xmlspace; %structured_text;> <!ELEMENT defs (path|use|image|text|%shapes;|g|switch|svg| script|style| symbol|marker| lineargradient|radialgradient|pattern| clippath|mask|filter)* > <!ATTLIST defs %class_id_lang_style; %xmlspace;> <!ELEMENT script (#PCDATA)* > <!ATTLIST script language CDATA "text/ecmascript" %replaced; > <!ELEMENT style (#PCDATA)* > <!ATTLIST style type CDATA #FIXED "text/css"> <!ELEMENT symbol %g_elements; > <!ATTLIST symbol %class_id_lang_style; %xmlspace; %bbox_attributes_optional; %ref_xy_attributes; %fit_attributes;> <!ELEMENT marker %g_elements; > <!ATTLIST marker %class_id_lang_style; %xmlspace; %bbox_attributes_optional; %ref_xy_attributes; %fit_attributes; marker-units (stroke-width | userspace) "stroke-width" marker-width CDATA "3" marker-height CDATA "3" orient CDATA "0"> <!ENTITY % gradient.attrs "gradient-units (userspace | object-bbox) 'userspace' gradient-transform CDATA #IMPLIED" > <!ELEMENT lineargradient (stop)* > <!ATTLIST lineargradient id ID #IMPLIED %gradient.attrs; x1 CDATA #IMPLIED y1 CDATA #IMPLIED x2 CDATA #IMPLIED y2 CDATA #IMPLIED spread-method (stick | reflect | repeat) "stick"> <!ELEMENT radialgradient (stop)* > <!ATTLIST radialgradient id ID #IMPLIED %gradient.attrs; cx CDATA #IMPLIED cy CDATA #IMPLIED r CDATA #IMPLIED fx CDATA #IMPLIED fy CDATA #IMPLIED> <!ELEMENT stop EMPTY > <!ATTLIST stop %style; id ID #IMPLIED offset CDATA #REQUIRED> <!ELEMENT pattern %g_elements; > <!ATTLIST pattern %class_id_lang_style; %xmlspace; %bbox_attributes_wh_required; %ref_xy_attributes; %fit_attributes; pattern-units (userspace | object-bbox) "userspace" pattern-transform CDATA #IMPLIED> <!ELEMENT clippath (path|text|%shapes;|use)* > <!ATTLIST clippath %class_id_lang_style; %xmlspace;> <!ELEMENT mask %g_elements; > <!ATTLIST mask %class_id_lang_style; %xmlspace; mask-units (userspace | object-bbox) "userspace" %bbox_attributes_optional;> <!ELEMENT filter (feBlend|feColor| feColorMatrix|feComponentTransfer| feComposite|feDiffuseLighting|feDisplacementMap| feGaussianBlur|feImage|feMerge| feMorphology|feOffset|feSpecularLighting| feTile|feTurbulence)* > <!ATTLIST filter %class_id_lang; filter-units (userspace | object-bbox) "userspace" %bbox_attributes_optional; filter-res CDATA #IMPLIED> <!ELEMENT feBlend EMPTY > <!ATTLIST feBlend %filter_node_attributes; mode (normal | multiple | screen | darken | lighten) "normal" in2 CDATA #REQUIRED> <!ELEMENT feColor EMPTY > <!ATTLIST feColor %filter_node_attributes; color CDATA #IMPLIED> <!ELEMENT feColorMatrix EMPTY > <!ATTLIST feColorMatrix %filter_node_attributes; type CDATA #REQUIRED values CDATA #IMPLIED> <!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) > <!ATTLIST feComponentTransfer %filter_node_attributes;> <!ELEMENT feFuncR EMPTY > <!ATTLIST feFuncR %component_transfer_function_attributes;> <!ELEMENT feFuncG EMPTY > <!ATTLIST feFuncG %component_transfer_function_attributes;> <!ELEMENT feFuncB EMPTY > <!ATTLIST feFuncB %component_transfer_function_attributes;> <!ELEMENT feFuncA EMPTY > <!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) > <!ATTLIST feDiffuseLighting %filter_node_attributes; result-scale CDATA #IMPLIED surface-scale CDATA #IMPLIED diffuse-constant CDATA #IMPLIED light-color CDATA #IMPLIED> <!ELEMENT feDistantLight EMPTY > <!ATTLIST feDistantLight azimuth CDATA #IMPLIED elevation CDATA #IMPLIED> <!ELEMENT fePointLight EMPTY > <!ATTLIST fePointLight x CDATA #IMPLIED y CDATA #IMPLIED z CDATA #IMPLIED> <!ELEMENT feSpotLight EMPTY > <!ATTLIST feSpotLight x CDATA #IMPLIED y CDATA #IMPLIED z CDATA #IMPLIED points-at-x CDATA #IMPLIED points-at-y CDATA #IMPLIED points-at-z CDATA #IMPLIED specular-exponent CDATA #IMPLIED> <!ELEMENT feDisplacementMap EMPTY > <!ATTLIST feEDisplacementMap %filter_node_attributes; scale CDATA #IMPLIED x-channel-selector (R | G | B | A) "A" y-channel-selector (R | G | B | A) "A" in2 CDATA #REQUIRED> <!ELEMENT feGaussianBlur EMPTY > <!ATTLIST feGaussianBlur %filter_node_attributes; std-deviation CDATA #IMPLIED> <!ELEMENT feImage EMPTY > <!ATTLIST feImage nodeid CDATA #IMPLIED %replaced; %transform_attributes;> <!ELEMENT feMerge (feMergeNode)* > <!ATTLIST feMerge %filter_node_attributes;> <!ELEMENT feMergeNode EMPTY > <!ATTLIST feMergeNode in CDATA #IMPLIED> <!ELEMENT feMorphology EMPTY > <!ATTLIST feEMorphology %filter_node_attributes; operator (erode | dilate) "erode" radius CDATA #IMPLIED> <!ELEMENT feOffset EMPTY > <!ATTLIST feOffset %filter_node_attributes; dx CDATA #IMPLIED dy CDATA #IMPLIED> <!ELEMENT feSpecularLighting (feDistantLight|fePointLight|feSpotLight) > <!ATTLIST feSpecularLighting %filter_node_attributes; surface-scale CDATA #IMPLIED specular-constant CDATA #IMPLIED specular-exponent CDATA #IMPLIED light-color CDATA #IMPLIED> <!ELEMENT feTile EMPTY > <!ATTLIST feTile %filter_node_attributes;> <!ELEMENT feTurbulence EMPTY > <!ATTLIST feTurbulence %filter_node_attributes; base-frequency CDATA #IMPLIED num-octaves CDATA #IMPLIED type (fractal-noise | turbulence) "turbulence">