The DTD is also available for download.
<!ENTITY % namespace "xmlns CDATA #FIXED 'http://www.w3.org/Graphics/SVG/SVG-19990625'"> <!ENTITY % class "class NMTOKENS #IMPLIED"> <!ENTITY % id "id ID #IMPLIED"> <!ENTITY % lang "xml:lang NMTOKEN #IMPLIED"> <!ENTITY % style "style CDATA #IMPLIED"> <!ENTITY % global "%class; %id; %style;"> <!ENTITY % str_text "content CDATA #FIXED 'structured text'"> <!ENTITY % global_t "%class; %id; %lang; %style;"> <!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 % std_g_attrs "%global; %system_required; %g_eventhandlers;"> <!ENTITY % std_g_attrs_t "%global_t; %system_required; %g_eventhandlers;"> <!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 % 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 % symbol_ref_attributes "ref-x CDATA #IMPLIED ref-y CDATA #IMPLIED"> <!ENTITY % symbol_descriptor_attributes "%bbox_attributes_optional; %symbol_ref_attributes;"> <!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|textblock|text|path|%shapes;|g|switch|svg|a)*)"> <!ENTITY % g_elements_and_foreignobject "(defs?,title?,desc?,(use|image|textblock|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; %std_g_attrs_t; %xmlspace; %r_eventhandlers; %transform_attributes; %bbox_attributes_wh_required; %symbol_ref_attributes; %fit_attributes; allow-zoom-and-pan (true | false) "true" > <!ELEMENT g %g_elements; > <!ATTLIST g %std_g_attrs_t; %xmlspace; %transform_attributes;> <!ELEMENT switch %g_elements_and_foreignobject; > <!ATTLIST switch %std_g_attrs_t; %xmlspace; %transform_attributes;> <!ELEMENT defs (script|style|lineargradient|radialgradient| symbol|image|textblock|text|textflow|path|%shapes;)* > <!ATTLIST defs %global_t; %xmlspace;> <!ELEMENT title (#PCDATA)* > <!ATTLIST title %global_t; %xmlspace; %str_text;> <!ELEMENT desc (#PCDATA)* > <!ATTLIST desc %std_g_attrs_t; %xmlspace; %str_text;> <!ELEMENT use EMPTY > <!ATTLIST use %std_g_attrs; %transform_attributes; %bbox_attributes_optional; %replaced;> <!ELEMENT marker %g_elements; > <!ATTLIST marker %global_t; %xmlspace; %symbol_descriptor_attributes; %fit_attributes; marker-units (stroke-width | userspace) "stroke-width" marker-width CDATA "3" marker-height CDATA "3" orient CDATA "0"> <!ELEMENT image (desc?, title?) > <!ATTLIST image %std_g_attrs_t; %xmlspace; %transform_attributes; %bbox_attributes_wh_required; %replaced;> <!ELEMENT text (#PCDATA|textsrc|textpath)* > <!ATTLIST text %std_g_attrs_t; %xmlspace; %transform_attributes; %xy_attributes;> <!ELEMENT textpath EMPTY > <!ATTLIST textpath start-offset CDATA "0" %replaced;> <!ELEMENT path (data)* > <!ATTLIST path %std_g_attrs; %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 %std_g_attrs; %transform_attributes; %bbox_attributes_wh_required; rx CDATA "0" ry CDATA "0"> <!ELEMENT circle EMPTY > <!ATTLIST circle %std_g_attrs; %transform_attributes; cx CDATA "0" cy CDATA "0" r CDATA #REQUIRED> <!ELEMENT ellipse EMPTY > <!ATTLIST ellipse %std_g_attrs; %transform_attributes; cx CDATA "0" cy CDATA "0" rx CDATA #REQUIRED ry CDATA #REQUIRED> <!ELEMENT polyline EMPTY > <!ATTLIST polyline %std_g_attrs; %transform_attributes; points CDATA #REQUIRED> <!ELEMENT polygon EMPTY > <!ATTLIST polygon %std_g_attrs; %transform_attributes; points CDATA #REQUIRED> <!ELEMENT line EMPTY > <!ATTLIST line %std_g_attrs; %transform_attributes; x1 CDATA "0" x2 CDATA "0" y1 CDATA "0" y2 CDATA "0"> <!ELEMENT foreignobject (#PCDATA)* > <!ATTLIST foreignobject %std_g_attrs_t; %xmlspace; %transform_attributes; %bbox_attributes_wh_required; %str_text; > <!ELEMENT script (#PCDATA)* > <!ATTLIST script language CDATA "text/ecmascript" %replaced; > <!ELEMENT style (#PCDATA)* > <!ATTLIST style type CDATA #FIXED "text/css"> <!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 %global_t; %xmlspace; %symbol_descriptor_attributes; %fit_attributes; pattern-units (userspace | object-bbox) "userspace" %bbox_attributes_wh_required; pattern-transform CDATA #IMPLIED> <!ELEMENT symbol %g_elements; > <!ATTLIST symbol %global_t; %xmlspace; %symbol_descriptor_attributes; %fit_attributes;> <!ELEMENT textsrc EMPTY > <!ATTLIST textsrc %replaced;> <!ELEMENT textblock (text)* > <!ATTLIST textblock %std_g_attrs_t; %xmlspace; %transform_attributes;> <!ELEMENT textflow (tref)* > <!ATTLIST textflow id ID #IMPLIED> <!ELEMENT tref EMPTY > <!ATTLIST tref %replaced;> <!ELEMENT a %g_elements; > <!ATTLIST a %hyperlink;> <!ELEMENT filter (ColorMatrix|ComponentTransfer|REBlend|REColor| REComposite|REDiffuseLighting|REDisplacementMap| REGaussianBlur|REImage|REMerge| REMorphology|REOffset|RESpecularLighting| RETile|RETurbulence| VEAdjustGraphics|VEPathTurbulence)* > <!ATTLIST filter %global; filter-units (userspace | object-bbox) "userspace" %bbox_attributes_optional; filter-res CDATA #IMPLIED> <!ELEMENT ColorMatrix EMPTY > <!ATTLIST ColorMatrix %filter_node_attributes; type CDATA #REQUIRED values CDATA #IMPLIED> <!ELEMENT ComponentTransfer (Fr|Fg|Fb|Fa) > <!ATTLIST ComponentTransfer %filter_node_attributes;> <!ELEMENT Fr EMPTY > <!ATTLIST Fr %component_transfer_function_attributes;> <!ELEMENT Fg EMPTY > <!ATTLIST Fg %component_transfer_function_attributes;> <!ELEMENT Fb EMPTY > <!ATTLIST Fb %component_transfer_function_attributes;> <!ELEMENT Fa EMPTY > <!ATTLIST Fa %component_transfer_function_attributes;> <!ELEMENT REBlend EMPTY > <!ATTLIST REBlend %filter_node_attributes; mode (normal | multiple | screen | darken | lighten) "normal" in2 CDATA #REQUIRED> <!ELEMENT REColor EMPTY > <!ATTLIST REColor %filter_node_attributes; color CDATA #IMPLIED> <!ELEMENT REComposite EMPTY > <!ATTLIST REComposite %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 REDiffuseLighting (distant-light|point-light|spot-light) > <!ATTLIST REDiffuseLighting %filter_node_attributes; result-scale CDATA #IMPLIED surface-scale CDATA #IMPLIED diffuse-constant CDATA #IMPLIED light-color CDATA #IMPLIED> <!ELEMENT RESpecularLighting (distant-light|point-light|spot-light) > <!ATTLIST RESpecularLighting %filter_node_attributes; surface-scale CDATA #IMPLIED specular-constant CDATA #IMPLIED specular-exponent CDATA #IMPLIED light-color CDATA #IMPLIED> <!ELEMENT distant-light EMPTY > <!ATTLIST distant-light azimuth CDATA #IMPLIED elevation CDATA #IMPLIED> <!ELEMENT point-light EMPTY > <!ATTLIST point-light x CDATA #IMPLIED y CDATA #IMPLIED z CDATA #IMPLIED> <!ELEMENT spot-light EMPTY > <!ATTLIST spot-light 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 REDisplacementMap EMPTY > <!ATTLIST REDisplacementMap %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 REGaussianBlur EMPTY > <!ATTLIST REGaussianBlur %filter_node_attributes; std-deviation CDATA #IMPLIED> <!ELEMENT REImage EMPTY > <!ATTLIST REImage nodeid CDATA #IMPLIED %replaced; %transform_attributes;> <!ELEMENT REMerge (REMergeNode)* > <!ATTLIST REMerge %filter_node_attributes;> <!ELEMENT REMergeNode EMPTY > <!ATTLIST REMergeNode in CDATA #IMPLIED> <!ELEMENT REMorphology EMPTY > <!ATTLIST REMorphology %filter_node_attributes; operator (erode | dilate) "erode" radius CDATA #IMPLIED> <!ELEMENT REOffset EMPTY > <!ATTLIST REOffset %filter_node_attributes; dx CDATA #IMPLIED dy CDATA #IMPLIED> <!ELEMENT RETile EMPTY > <!ATTLIST RETile %filter_node_attributes;> <!ELEMENT RETurbulence EMPTY > <!ATTLIST RETurbulence %filter_node_attributes; base-frequency CDATA #IMPLIED num-octaves CDATA #IMPLIED type (fractal-noise | turbulence) "turbulence"> <!ELEMENT VEAdjustGraphics EMPTY > <!ATTLIST VEAdjustGraphics %filter_node_attributes; transform CDATA #IMPLIED style CDATA #IMPLIED> <!ELEMENT VEPathTurbulence EMPTY > <!ATTLIST VEPathTurbulence %filter_node_attributes; base-frequency CDATA #IMPLIED num-octaves CDATA #IMPLIED>