previous next contents elements attributes properties index

19 July, 2001

# Appendix A: DTD

### Contents

This appendix is normative.

    <!-- =====================================================================
      This is the DTD for SVG 1.0 (draft 20010719).

      The specification for SVG that corresponds to this DTD is available at:

        http://www.w3.org/TR/2001/PR-SVG-20010719/

      Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

      For this working draft:

        Namespace:
          http://www.w3.org/2000/svg

        Public identifier:
          PUBLIC "-//W3C//DTD SVG 1.0//EN"

        URI for the DTD:
          http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd
    ============================================================================= -->

    <!-- ==============================================================
         ENTITY DEFINITIONS: Data types
         ============================================================== -->

    <!ENTITY % BaselineShiftValue "CDATA">
        <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->

    <!ENTITY % Boolean "(false | true)">
        <!-- feature specification -->

    <!ENTITY % ClassList "CDATA">
        <!-- list of classes -->

    <!ENTITY % ClipValue "CDATA">
        <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->

    <!ENTITY % ClipPathValue "CDATA">
        <!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->

    <!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
        <!-- 'clip-rule' or fill-rule property/attribute value -->

    <!ENTITY % ContentType "CDATA">
        <!-- media type, as per [RFC2045] -->

    <!ENTITY % Coordinate "CDATA">
        <!-- a <coordinate> -->

    <!ENTITY % Coordinates "CDATA">
        <!-- a list of <coordinate>s -->

    <!ENTITY % Color "CDATA">
        <!-- a <color> value -->

    <!ENTITY % CursorValue "CDATA">
        <!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->

    <!ENTITY % EnableBackgroundValue "CDATA">
        <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->

    <!ENTITY % ExtensionList "CDATA">
        <!-- extension list specification -->

    <!ENTITY % FeatureList "CDATA">
        <!-- feature list specification -->

    <!ENTITY % FilterValue "CDATA">
        <!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->

    <!ENTITY % FontFamilyValue "CDATA">
        <!-- 'font-family' property/attribute value (i.e., list of fonts) -->

    <!ENTITY % FontSizeValue "CDATA">
        <!-- 'font-size' property/attribute value -->

    <!ENTITY % FontSizeAdjustValue "CDATA">
        <!-- 'font-size-adjust' property/attribute value -->

    <!ENTITY % GlyphOrientationHorizontalValue "CDATA">
        <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->

    <!ENTITY % GlyphOrientationVerticalValue "CDATA">
        <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->

    <!ENTITY % Integer "CDATA">
        <!-- a <integer> -->

    <!ENTITY % KerningValue "CDATA">
        <!-- 'kerning' property/attribute value (e.g., auto | <length>) -->

    <!ENTITY % LanguageCode "NMTOKEN">
        <!-- a language code, as per [RFC3066] -->

    <!ENTITY % LanguageCodes "CDATA">
        <!-- comma-separated list of language codes, as per [RFC3066] -->

    <!ENTITY % Length "CDATA">
        <!-- a <length> -->

    <!ENTITY % Lengths "CDATA">
        <!-- a list of <length>s -->

    <!ENTITY % LinkTarget "NMTOKEN">
        <!-- link to this target -->

    <!ENTITY % MarkerValue "CDATA">
        <!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->

    <!ENTITY % MaskValue "CDATA">
        <!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->

    <!ENTITY % MediaDesc "CDATA">
        <!-- comma-separated list of media descriptors. -->

    <!ENTITY % Number "CDATA">
        <!-- a <number> -->

    <!ENTITY % NumberOptionalNumber "CDATA">
        <!-- list of <number>s, but at least one and at most two -->

    <!ENTITY % NumberOrPercentage "CDATA">
        <!-- a <number> or a  <percentage> -->

    <!ENTITY % Numbers "CDATA">
        <!-- a list of <number>s -->

    <!ENTITY % OpacityValue "CDATA">
        <!-- opacity value (e.g., <number>) -->

    <!ENTITY % Paint "CDATA">
        <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->

    <!ENTITY % PathData "CDATA">
        <!-- a path data specification -->

    <!ENTITY % Points "CDATA">
        <!-- a list of points -->

    <!ENTITY % PreserveAspectRatioSpec "CDATA">
        <!-- 'preserveAspectRatio' attribute specification -->

    <!ENTITY % Script "CDATA">
        <!-- script expression -->

    <!ENTITY % SpacingValue "CDATA">
        <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->

    <!ENTITY % StrokeDashArrayValue "CDATA">
        <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->

    <!ENTITY % StrokeDashOffsetValue "CDATA">
        <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->

    <!ENTITY % StrokeMiterLimitValue "CDATA">
        <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->

    <!ENTITY % StrokeWidthValue "CDATA">
        <!-- 'stroke-width' property/attribute value (e.g., <length>) -->

    <!ENTITY % StructuredText
      "content CDATA #FIXED 'structured text'" >

    <!ENTITY % StyleSheet "CDATA">
        <!-- style sheet data -->

    <!ENTITY % SVGColor "CDATA">
        <!-- An SVG color value (RGB plus optional ICC) -->

    <!ENTITY % Text "CDATA">
        <!-- arbitrary text string -->

    <!ENTITY % TextDecorationValue "CDATA">
        <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->

    <!ENTITY % TransformList "CDATA">
        <!-- list of transforms -->

    <!ENTITY % URI "CDATA">
        <!-- a Uniform Resource Identifier, see [URI] -->

    <!ENTITY % ViewBoxSpec "CDATA">
        <!-- 'viewBox' attribute specification -->

    <!-- ==============================================================
         ENTITY DEFINITIONS: Collections of common attributes
         ============================================================== -->

    <!-- All elements have an ID. -->
    <!ENTITY % stdAttrs
     "id ID #IMPLIED
      xml:base %URI; #IMPLIED" >

    <!-- Common attributes for elements that might contain character data content. -->
    <!ENTITY % langSpaceAttrs
     "xml:lang %LanguageCode; #IMPLIED
      xml:space (default|preserve) #IMPLIED" >

    <!-- Common attributes to check for system capabilities. -->
    <!ENTITY % testAttrs
     "requiredFeatures %FeatureList; #IMPLIED
      requiredExtensions %ExtensionList; #IMPLIED
      systemLanguage %LanguageCodes; #IMPLIED" >

    <!-- For most uses of URI referencing:
            standard XLink attributes other than xlink:href. -->
    <!ENTITY % xlinkRefAttrs
     "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
      xlink:type (simple) #FIXED 'simple'
      xlink:role %URI; #IMPLIED
      xlink:arcrole %URI; #IMPLIED
      xlink:title CDATA #IMPLIED
      xlink:show (other) 'other'
      xlink:actuate (onLoad) #FIXED 'onLoad'" >

    <!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
    <!ENTITY % xlinkRefAttrsEmbed
     "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
      xlink:type (simple) #FIXED 'simple'
      xlink:role %URI; #IMPLIED
      xlink:arcrole %URI; #IMPLIED
      xlink:title CDATA #IMPLIED
      xlink:show (embed) 'embed'
      xlink:actuate (onLoad) #FIXED 'onLoad'" >

    <!ENTITY % graphicsElementEvents
      "onfocusin %Script; #IMPLIED
       onfocusout %Script; #IMPLIED
       onactivate %Script; #IMPLIED
       onclick %Script; #IMPLIED
       onmousedown %Script; #IMPLIED
       onmouseup %Script; #IMPLIED
       onmouseover %Script; #IMPLIED
       onmousemove %Script; #IMPLIED
       onmouseout %Script; #IMPLIED
       onload %Script; #IMPLIED" >

    <!ENTITY % documentEvents
      "onunload %Script; #IMPLIED
       onabort %Script; #IMPLIED
       onerror %Script; #IMPLIED
       onresize %Script; #IMPLIED
       onscroll %Script; #IMPLIED
       onzoom %Script; #IMPLIED" >

    <!ENTITY % animationEvents
      "onbegin %Script; #IMPLIED
       onend %Script; #IMPLIED
       onrepeat %Script; #IMPLIED" >

    <!-- This entity allows for at most one of desc, title and metadata,
         supplied in any order -->
    <!ENTITY % descTitleMetadata
              "(((desc,((title,metadata?)|(metadata,title?))?)|
              (title,((desc,metadata?)|(metadata,desc?))?)|
              (metadata,((desc,title?)|(title,desc?))?))?)" >

    <!-- ==============================================================
         ENTITY DEFINITIONS: Collections of presentation attributes
         ============================================================== -->

    <!-- The following presentation attributes have to do with specifying color. -->
    <!ENTITY % PresentationAttributes-Color
      "color %Color; #IMPLIED
       color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
       color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED " >

    <!-- The following presentation attributes apply to container elements. -->
    <!ENTITY % PresentationAttributes-Containers
      "enable-background %EnableBackgroundValue; #IMPLIED " >

    <!-- The following presentation attributes apply to 'feFlood' elements. -->
    <!ENTITY % PresentationAttributes-feFlood
      "flood-color %SVGColor; #IMPLIED
       flood-opacity %OpacityValue; #IMPLIED " >

    <!-- The following presentation attributes apply to filling and stroking operations. -->
    <!ENTITY % PresentationAttributes-FillStroke
      "fill %Paint; #IMPLIED
       fill-opacity %OpacityValue; #IMPLIED
       fill-rule %ClipFillRule; #IMPLIED
       stroke %Paint; #IMPLIED
       stroke-dasharray %StrokeDashArrayValue; #IMPLIED
       stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
       stroke-linecap (butt | round | square | inherit) #IMPLIED
       stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
       stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
       stroke-opacity %OpacityValue; #IMPLIED
       stroke-width %StrokeWidthValue; #IMPLIED " >

    <!-- The following presentation attributes apply to filter primitives. -->
    <!ENTITY % PresentationAttributes-FilterPrimitives
      "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED " >

    <!-- The following presentation attributes have to do with selecting a font to use. -->
    <!ENTITY % PresentationAttributes-FontSpecification
      "font-family %FontFamilyValue; #IMPLIED
       font-size %FontSizeValue; #IMPLIED
       font-size-adjust %FontSizeAdjustValue; #IMPLIED
       font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
                     condensed | semi-condensed | semi-expanded | expanded |
                     extra-expanded | ultra-expanded | inherit) #IMPLIED
       font-style (normal | italic | oblique | inherit) #IMPLIED
       font-variant (normal | small-caps | inherit) #IMPLIED
       font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
                   400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED " >

    <!-- The following presentation attributes apply to gradient 'stop' elements. -->
    <!ENTITY % PresentationAttributes-Gradients
      "stop-color %SVGColor; #IMPLIED
       stop-opacity %OpacityValue; #IMPLIED " >

    <!-- The following presentation attributes apply to graphics elements. -->
    <!ENTITY % PresentationAttributes-Graphics
      "clip-path %ClipPathValue; #IMPLIED
       clip-rule %ClipFillRule; #IMPLIED
       cursor %CursorValue; #IMPLIED
       display (inline | block | list-item | run-in | compact | marker |
                table | inline-table | table-row-group | table-header-group |
                table-footer-group | table-row | table-column-group | table-column |
                table-cell | table-caption | none | inherit) #IMPLIED
       filter %FilterValue; #IMPLIED
       image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
       mask %MaskValue; #IMPLIED
       opacity %OpacityValue; #IMPLIED
       pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
                       painted | fill | stroke | all | none | inherit) #IMPLIED
       shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
       text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
       visibility (visible | hidden | inherit) #IMPLIED " >

    <!-- The following presentation attributes apply to 'image' elements. -->
    <!ENTITY % PresentationAttributes-Images
      "color-profile CDATA #IMPLIED " >

    <!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
    <!ENTITY % PresentationAttributes-LightingEffects
      "lighting-color %SVGColor; #IMPLIED " >

    <!-- The following presentation attributes apply to marker operations. -->
    <!ENTITY % PresentationAttributes-Markers
      "marker-start %MarkerValue; #IMPLIED
       marker-mid %MarkerValue; #IMPLIED
       marker-end %MarkerValue; #IMPLIED " >

    <!-- The following presentation attributes apply to text content elements. -->
    <!ENTITY % PresentationAttributes-TextContentElements
      "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
                            middle | bottom | after-edge | text-bottom | text-after-edge |
                            ideographic | lower | hanging | mathematical | inherit) #IMPLIED
       baseline-shift %BaselineShiftValue; #IMPLIED
       direction (ltr | rtl | inherit) #IMPLIED
       dominant-baseline (auto | autosense-script | no-change | reset|
                          ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
       glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
       glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
       kerning %KerningValue; #IMPLIED
       letter-spacing %SpacingValue; #IMPLIED
       text-anchor (start | middle | end | inherit) #IMPLIED
       text-decoration %TextDecorationValue; #IMPLIED
       unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
       word-spacing %SpacingValue; #IMPLIED " >

    <!-- The following presentation attributes apply to 'text' elements. -->
    <!ENTITY % PresentationAttributes-TextElements
      "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED " >

    <!-- The following presentation attributes apply to elements that establish viewports. -->
    <!ENTITY % PresentationAttributes-Viewports
      "clip %ClipValue; #IMPLIED
       overflow (visible | hidden | scroll | auto | inherit) #IMPLIED " >

    <!--The following represents the complete list of presentation attributes. -->
    <!ENTITY % PresentationAttributes-All
      "%PresentationAttributes-Color;
       %PresentationAttributes-Containers;
       %PresentationAttributes-feFlood;
       %PresentationAttributes-FillStroke;
       %PresentationAttributes-FilterPrimitives;
       %PresentationAttributes-FontSpecification;
       %PresentationAttributes-Gradients;
       %PresentationAttributes-Graphics;
       %PresentationAttributes-Images;
       %PresentationAttributes-LightingEffects;
       %PresentationAttributes-Markers;
       %PresentationAttributes-TextContentElements;
       %PresentationAttributes-TextElements;
       %PresentationAttributes-Viewports;" >

    <!-- ==============================================================
         ENTITY DEFINITIONS: DTD extensions
         ============================================================== -->

    <!-- Allow for extending the DTD with internal subset for
         container and graphics elements -->
    <!ENTITY % ceExt "" >
    <!ENTITY % geExt "" >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Document Structure
         ============================================================== -->

    <!ENTITY % svgExt "" >
    <!ELEMENT svg (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%svgExt;)* >
    <!ATTLIST svg
      xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      viewBox %ViewBoxSpec; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      zoomAndPan (disable | magnify) 'magnify'
      %graphicsElementEvents;
      %documentEvents;
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #IMPLIED
      height %Length; #IMPLIED
      contentScriptType %ContentType; "text/ecmascript"
      contentStyleType %ContentType; "text/css" >

    <!ENTITY % gExt "" >
    <!ELEMENT g (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%gExt;)* >
    <!ATTLIST g
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;  >

    <!ENTITY % defsExt "" >
    <!ELEMENT defs (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%defsExt;)* >
    <!ATTLIST defs
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;  >

    <!ENTITY % descExt "" >
    <!ELEMENT desc (#PCDATA %descExt;)* >
    <!ATTLIST desc
      %stdAttrs;
      %langSpaceAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %StructuredText; >

    <!ENTITY % titleExt "" >
    <!ELEMENT title (#PCDATA %titleExt;)* >
    <!ATTLIST title
      %stdAttrs;
      %langSpaceAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %StructuredText; >

    <!ENTITY % symbolExt "" >
    <!ELEMENT symbol (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%symbolExt;)* >
    <!ATTLIST symbol
      %stdAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      viewBox %ViewBoxSpec; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      %graphicsElementEvents; >

    <!ENTITY % useExt "" >
    <!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                       %geExt;%useExt;)*) >
    <!ATTLIST use
      %stdAttrs;
      %xlinkRefAttrsEmbed;
      xlink:href %URI; #REQUIRED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #IMPLIED
      height %Length; #IMPLIED >

    <!ENTITY % imageExt "" >
    <!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                       %geExt;%imageExt;)*) >
    <!ATTLIST image
      %stdAttrs;
      %xlinkRefAttrsEmbed;
      xlink:href %URI; #REQUIRED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-Images;
      %PresentationAttributes-Viewports;
      transform %TransformList; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      %graphicsElementEvents;
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #REQUIRED
      height %Length; #REQUIRED >

    <!ENTITY % switchExt "" >
    <!ELEMENT switch (%descTitleMetadata;,
                      (path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|switch|a|foreignObject|
                       animate|set|animateMotion|animateColor|animateTransform
                       %ceExt;%switchExt;)*) >
    <!ATTLIST switch
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents; >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Styling
         ============================================================== -->

    <!ELEMENT style (#PCDATA) >
    <!ATTLIST style
      %stdAttrs;
      xml:space (preserve) #FIXED "preserve"
      type %ContentType; #REQUIRED
      media %MediaDesc; #IMPLIED
      title %Text; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Paths
         ============================================================== -->

    <!ENTITY % pathExt "" >
    <!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%pathExt;)*) >
    <!ATTLIST path
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-Markers;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      d %PathData; #REQUIRED
      pathLength %Number; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Basic Shapes
         ============================================================== -->

    <!ENTITY % rectExt "" >
    <!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%rectExt;)*) >
    <!ATTLIST rect
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #REQUIRED
      height %Length; #REQUIRED
      rx %Length; #IMPLIED
      ry %Length; #IMPLIED >

    <!ENTITY % circleExt "" >
    <!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%circleExt;)*) >
    <!ATTLIST circle
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      cx %Coordinate; #IMPLIED
      cy %Coordinate; #IMPLIED
      r %Length; #REQUIRED >

    <!ENTITY % ellipseExt "" >
    <!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%ellipseExt;)*) >
    <!ATTLIST ellipse
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      cx %Coordinate; #IMPLIED
      cy %Coordinate; #IMPLIED
      rx %Length; #REQUIRED
      ry %Length; #REQUIRED >

    <!ENTITY % lineExt "" >
    <!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%lineExt;)*) >
    <!ATTLIST line
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-Markers;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      x1 %Coordinate; #IMPLIED
      y1 %Coordinate; #IMPLIED
      x2 %Coordinate; #IMPLIED
      y2 %Coordinate; #IMPLIED >

    <!ENTITY % polylineExt "" >
    <!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%polylineExt;)*) >
    <!ATTLIST polyline
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-Markers;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      points %Points; #REQUIRED >

    <!ENTITY % polygonExt "" >
    <!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                    %geExt;%polygonExt;)*) >
    <!ATTLIST polygon
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-Markers;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      points %Points; #REQUIRED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Text
         ============================================================== -->

    <!ENTITY % textExt "" >
    <!ELEMENT text (#PCDATA|desc|title|metadata|
                    tspan|tref|textPath|altGlyph|a|animate|set|
                    animateMotion|animateColor|animateTransform
                    %geExt;%textExt;)* >
    <!ATTLIST text
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %PresentationAttributes-TextElements;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      x %Coordinates; #IMPLIED
      y %Coordinates; #IMPLIED
      dx %Lengths; #IMPLIED
      dy %Lengths; #IMPLIED
      rotate %Numbers; #IMPLIED
      textLength %Length; #IMPLIED
      lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >

    <!ENTITY % tspanExt "" >
    <!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
                    %tspanExt;)* >
    <!ATTLIST tspan
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %graphicsElementEvents;
      x %Coordinates; #IMPLIED
      y %Coordinates; #IMPLIED
      dx %Lengths; #IMPLIED
      dy %Lengths; #IMPLIED
      rotate %Numbers; #IMPLIED
      textLength %Length; #IMPLIED
      lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >

    <!ENTITY % trefExt "" >
    <!ELEMENT tref (desc|title|metadata|animate|set|animateColor
                    %trefExt;)* >
    <!ATTLIST tref
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %graphicsElementEvents;
      x %Coordinates; #IMPLIED
      y %Coordinates; #IMPLIED
      dx %Lengths; #IMPLIED
      dy %Lengths; #IMPLIED
      rotate %Numbers; #IMPLIED
      textLength %Length; #IMPLIED
      lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED >

    <!ENTITY % textPathExt "" >
    <!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
                    %textPathExt;)* >
    <!ATTLIST textPath
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED
      %langSpaceAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %graphicsElementEvents;
      startOffset %Length; #IMPLIED
      textLength %Length; #IMPLIED
      lengthAdjust (spacing|spacingAndGlyphs) #IMPLIED
      method (align|stretch) #IMPLIED
      spacing (auto|exact) #IMPLIED >

    <!ENTITY % altGlyphExt "" >
    <!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
    <!ATTLIST altGlyph
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      glyphRef CDATA #IMPLIED
      format CDATA #IMPLIED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %graphicsElementEvents;
      x %Coordinates; #IMPLIED
      y %Coordinates; #IMPLIED
      dx %Lengths; #IMPLIED
      dy %Lengths; #IMPLIED
      rotate %Numbers; #IMPLIED >

    <!ENTITY % altGlyphDefExt "" >
    <!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
    <!ATTLIST altGlyphDef
      %stdAttrs; >

    <!ENTITY % altGlyphItemExt "" >
    <!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
    <!ATTLIST altGlyphItem
      %stdAttrs; >

    <!ELEMENT glyphRef EMPTY >
    <!ATTLIST glyphRef
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-FontSpecification;
      glyphRef CDATA #IMPLIED
      format CDATA #IMPLIED
      x %Number; #IMPLIED
      y %Number; #IMPLIED
      dx %Number; #IMPLIED
      dy %Number; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols
         ============================================================== -->

    <!ENTITY % markerExt "" >
    <!ELEMENT marker (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%markerExt;)* >
    <!ATTLIST marker
      %stdAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      viewBox %ViewBoxSpec; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      refX %Coordinate; #IMPLIED
      refY %Coordinate; #IMPLIED
      markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
      markerWidth  %Length; #IMPLIED
      markerHeight %Length; #IMPLIED
      orient CDATA #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Color
         ============================================================== -->

    <!ELEMENT color-profile (%descTitleMetadata;) >
    <!ATTLIST color-profile
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      local CDATA #IMPLIED
      name CDATA #REQUIRED
      rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto" >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Gradients and Patterns
         ============================================================== -->

    <!ENTITY % linearGradientExt "" >
    <!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
                       %linearGradientExt;)*) >
    <!ATTLIST linearGradient
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-Gradients;
      gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      gradientTransform %TransformList; #IMPLIED
      x1 %Coordinate; #IMPLIED
      y1 %Coordinate; #IMPLIED
      x2 %Coordinate; #IMPLIED
      y2 %Coordinate; #IMPLIED
      spreadMethod (pad | reflect | repeat) #IMPLIED >

    <!ENTITY % radialGradientExt "" >
    <!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
                       %radialGradientExt;)*) >
    <!ATTLIST radialGradient
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-Gradients;
      gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      gradientTransform %TransformList; #IMPLIED
      cx %Coordinate; #IMPLIED
      cy %Coordinate; #IMPLIED
      r %Length; #IMPLIED
      fx %Coordinate; #IMPLIED
      fy %Coordinate; #IMPLIED
      spreadMethod (pad | reflect | repeat) #IMPLIED >

    <!ENTITY % stopExt "" >
    <!ELEMENT stop (animate|set|animateColor
                       %stopExt;)* >
    <!ATTLIST stop
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-Gradients;
      offset %NumberOrPercentage; #REQUIRED >

    <!ENTITY % patternExt "" >
    <!ELEMENT pattern (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%patternExt;)* >
    <!ATTLIST pattern
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      viewBox %ViewBoxSpec; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      patternTransform %TransformList; #IMPLIED
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #IMPLIED
      height %Length; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Clipping, Masking and Compositing
         ============================================================== -->

    <!ENTITY % clipPathExt "" >
    <!ELEMENT clipPath (%descTitleMetadata;,
                        (path|text|rect|circle|ellipse|line|polyline|polygon|
                         use|animate|set|animateMotion|animateColor|animateTransform
                         %ceExt;%clipPathExt;)*) >
    <!ATTLIST clipPath
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FillStroke;
      %PresentationAttributes-FontSpecification;
      %PresentationAttributes-Graphics;
      %PresentationAttributes-TextContentElements;
      %PresentationAttributes-TextElements;
      transform %TransformList; #IMPLIED
      clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED >

    <!ENTITY % maskExt "" >
    <!ELEMENT mask (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%maskExt;)*  >
    <!ATTLIST mask
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #IMPLIED
      height %Length; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Filter Effects
         ============================================================== -->

    <!ENTITY % filterExt "" >
    <!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
      feColorMatrix|feComponentTransfer|
      feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
      feGaussianBlur|feImage|feMerge|
      feMorphology|feOffset|feSpecularLighting|
      feTile|feTurbulence|
      animate|set
      %filterExt;)*) >
    <!ATTLIST filter
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #IMPLIED
      height %Length; #IMPLIED
      filterRes %NumberOptionalNumber; #IMPLIED >

    <!ENTITY % filter_primitive_attributes
      "x %Coordinate; #IMPLIED
       y %Coordinate; #IMPLIED
       width %Length; #IMPLIED
       height %Length; #IMPLIED
       result CDATA #IMPLIED" >

    <!ENTITY % filter_primitive_attributes_with_in
      "%filter_primitive_attributes;
       in CDATA #IMPLIED">

    <!ELEMENT feDistantLight (animate|set)* >
    <!ATTLIST feDistantLight
      %stdAttrs;
      azimuth %Number; #IMPLIED
      elevation %Number; #IMPLIED >

    <!ELEMENT fePointLight (animate|set)* >
    <!ATTLIST fePointLight
      %stdAttrs;
      x %Number; #IMPLIED
      y %Number; #IMPLIED
      z %Number; #IMPLIED >

    <!ELEMENT feSpotLight (animate|set)* >
    <!ATTLIST feSpotLight
      %stdAttrs;
      x %Number; #IMPLIED
      y %Number; #IMPLIED
      z %Number; #IMPLIED
      pointsAtX %Number; #IMPLIED
      pointsAtY %Number; #IMPLIED
      pointsAtZ %Number; #IMPLIED
      specularExponent %Number; #IMPLIED
      limitingConeAngle %Number; #IMPLIED >

    <!ELEMENT feBlend (animate|set)* >
    <!ATTLIST feBlend
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      in2 CDATA #REQUIRED
      mode (normal | multiply | screen | darken | lighten) "normal" >

    <!ELEMENT feColorMatrix (animate|set)* >
    <!ATTLIST feColorMatrix
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
      values CDATA #IMPLIED >

    <!ELEMENT feComponentTransfer (feFuncR?,feFuncG?,feFuncB?,feFuncA?) >
    <!ATTLIST feComponentTransfer
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in; >

    <!ENTITY % component_transfer_function_attributes
      "type (identity | table | discrete | linear | gamma) #REQUIRED
       tableValues CDATA #IMPLIED
       slope %Number; #IMPLIED
       intercept %Number; #IMPLIED
       amplitude %Number; #IMPLIED
       exponent %Number; #IMPLIED
       offset %Number; #IMPLIED" >

    <!ELEMENT feFuncR (animate|set)* >
    <!ATTLIST feFuncR
      %stdAttrs;
      %component_transfer_function_attributes; >

    <!ELEMENT feFuncG (animate|set)* >
    <!ATTLIST feFuncG
      %stdAttrs;
      %component_transfer_function_attributes; >

    <!ELEMENT feFuncB (animate|set)* >
    <!ATTLIST feFuncB
      %stdAttrs;
      %component_transfer_function_attributes; >

    <!ELEMENT feFuncA (animate|set)* >
    <!ATTLIST feFuncA
      %stdAttrs;
      %component_transfer_function_attributes; >

    <!ELEMENT feComposite (animate|set)* >
    <!ATTLIST feComposite
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      in2 CDATA #REQUIRED
      operator (over | in | out | atop | xor | arithmetic) "over"
      k1 %Number; #IMPLIED
      k2 %Number; #IMPLIED
      k3 %Number; #IMPLIED
      k4 %Number; #IMPLIED >

    <!ELEMENT feConvolveMatrix (animate|set)* >
    <!ATTLIST feConvolveMatrix
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      order %NumberOptionalNumber; #REQUIRED
      kernelMatrix CDATA #REQUIRED
      divisor %Number; #IMPLIED
      bias %Number; #IMPLIED
      targetX %Integer; #IMPLIED
      targetY %Integer; #IMPLIED
      edgeMode (duplicate|wrap|none) "duplicate"
      kernelUnitLength %NumberOptionalNumber; #IMPLIED
      preserveAlpha %Boolean; #IMPLIED >

    <!ELEMENT feDiffuseLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
    <!ATTLIST feDiffuseLighting
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FilterPrimitives;
      %PresentationAttributes-LightingEffects;
      %filter_primitive_attributes_with_in;
      surfaceScale %Number; #IMPLIED
      diffuseConstant %Number; #IMPLIED
      kernelUnitLength %NumberOptionalNumber; #IMPLIED >

    <!ELEMENT feDisplacementMap (animate|set)* >
    <!ATTLIST feDisplacementMap
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      in2 CDATA #REQUIRED
      scale %Number; #IMPLIED
      xChannelSelector (R | G | B | A) "A"
      yChannelSelector (R | G | B | A) "A" >

    <!ELEMENT feFlood (animate|set|animateColor)* >
    <!ATTLIST feFlood
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-feFlood;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in; >

    <!ELEMENT feGaussianBlur (animate|set)* >
    <!ATTLIST feGaussianBlur
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      stdDeviation %NumberOptionalNumber; #IMPLIED >

    <!ELEMENT feImage (animate|set|animateTransform)* >
    <!ATTLIST feImage
      %stdAttrs;
      %xlinkRefAttrsEmbed;
      xlink:href %URI; #REQUIRED
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All; >

    <!ELEMENT feMerge (feMergeNode)* >
    <!ATTLIST feMerge
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes; >

    <!ELEMENT feMergeNode (animate|set)* >
    <!ATTLIST feMergeNode
      %stdAttrs;
      in CDATA #IMPLIED >

    <!ELEMENT feMorphology (animate|set)* >
    <!ATTLIST feMorphology
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      operator (erode | dilate) "erode"
      radius %NumberOptionalNumber; #IMPLIED >

    <!ELEMENT feOffset (animate|set)* >
    <!ATTLIST feOffset
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in;
      dx %Number; #IMPLIED
      dy %Number; #IMPLIED >

    <!ELEMENT feSpecularLighting ((feDistantLight|fePointLight|feSpotLight),(animate|set|animateColor)*) >
    <!ATTLIST feSpecularLighting
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-Color;
      %PresentationAttributes-FilterPrimitives;
      %PresentationAttributes-LightingEffects;
      %filter_primitive_attributes_with_in;
      surfaceScale %Number; #IMPLIED
      specularConstant %Number; #IMPLIED
      specularExponent %Number; #IMPLIED
      kernelUnitLength %NumberOptionalNumber; #IMPLIED >

    <!ELEMENT feTile (animate|set)* >
    <!ATTLIST feTile
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes_with_in; >

    <!ELEMENT feTurbulence (animate|set)* >
    <!ATTLIST feTurbulence
      %stdAttrs;
      %PresentationAttributes-FilterPrimitives;
      %filter_primitive_attributes;
      baseFrequency %NumberOptionalNumber; #IMPLIED
      numOctaves %Integer; #IMPLIED
      seed %Number; #IMPLIED
      stitchTiles (stitch | noStitch) "noStitch"
      type (fractalNoise | turbulence) "turbulence" >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Interactivity
         ============================================================== -->

    <!ELEMENT cursor (%descTitleMetadata;) >
    <!ATTLIST cursor
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Linking
         ============================================================== -->

    <!ENTITY % aExt "" >
    <!ELEMENT a       (#PCDATA|desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %ceExt;%aExt;)* >
    <!ATTLIST a
      %stdAttrs;
      xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
      xlink:type (simple) #FIXED "simple"
      xlink:role %URI; #IMPLIED
      xlink:arcrole %URI; #IMPLIED
      xlink:title CDATA #IMPLIED
      xlink:show (new|replace) 'replace'
      xlink:actuate (onRequest) #FIXED 'onRequest'
      xlink:href %URI; #REQUIRED
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      target %LinkTarget; #IMPLIED >

    <!ENTITY % viewExt "" >
    <!ELEMENT view (%descTitleMetadata;%viewExt;) >
    <!ATTLIST view
      %stdAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      viewBox %ViewBoxSpec; #IMPLIED
      preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
      zoomAndPan (disable | magnify) 'magnify'
      viewTarget CDATA #IMPLIED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Scripting
         ============================================================== -->

    <!ELEMENT script (#PCDATA) >
    <!ATTLIST script
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #IMPLIED
      externalResourcesRequired %Boolean; #IMPLIED
      type %ContentType; #REQUIRED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Animation
         ============================================================== -->

    <!ENTITY % animElementAttrs
     "%xlinkRefAttrs;
      xlink:href %URI; #IMPLIED" >

    <!ENTITY % animAttributeAttrs
     "attributeName  CDATA  #REQUIRED
      attributeType  CDATA  #IMPLIED" >

    <!ENTITY % animTimingAttrs
     "begin CDATA #IMPLIED
      dur CDATA #IMPLIED
      end CDATA #IMPLIED
      min CDATA #IMPLIED
      max CDATA #IMPLIED
      restart (always | never | whenNotActive) 'always'
      repeatCount CDATA #IMPLIED
      repeatDur CDATA #IMPLIED
      fill (remove | freeze) 'remove'" >

    <!ENTITY % animValueAttrs
     "calcMode (discrete | linear | paced | spline) 'linear'
      values CDATA #IMPLIED
      keyTimes CDATA #IMPLIED
      keySplines CDATA #IMPLIED
      from CDATA #IMPLIED
      to CDATA #IMPLIED
      by CDATA #IMPLIED" >

    <!ENTITY % animAdditionAttrs
     "additive       (replace | sum) 'replace'
      accumulate     (none | sum) 'none'" >

    <!ENTITY % animateExt "" >
    <!ELEMENT animate (%descTitleMetadata;%animateExt;) >
    <!ATTLIST animate
      %stdAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      %animationEvents;
      %animElementAttrs;
      %animAttributeAttrs;
      %animTimingAttrs;
      %animValueAttrs;
      %animAdditionAttrs; >

    <!ENTITY % setExt "" >
    <!ELEMENT set (%descTitleMetadata;%setExt;) >
    <!ATTLIST set
      %stdAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      %animationEvents;
      %animElementAttrs;
      %animAttributeAttrs;
      %animTimingAttrs;
      to CDATA #IMPLIED >

    <!ENTITY % animateMotionExt "" >
    <!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
    <!ATTLIST animateMotion
      %stdAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      %animationEvents;
      %animElementAttrs;
      %animTimingAttrs;
      calcMode (discrete | linear | paced | spline) 'paced'
      values CDATA #IMPLIED
      keyTimes CDATA #IMPLIED
      keySplines CDATA #IMPLIED
      from CDATA #IMPLIED
      to CDATA #IMPLIED
      by CDATA #IMPLIED
      %animAdditionAttrs;
      path CDATA #IMPLIED
      keyPoints CDATA #IMPLIED
      rotate CDATA #IMPLIED
      origin CDATA #IMPLIED >

    <!ENTITY % mpathExt "" >
    <!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
    <!ATTLIST mpath
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED
      externalResourcesRequired %Boolean; #IMPLIED >

    <!ENTITY % animateColorExt "" >
    <!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
    <!ATTLIST animateColor
      %stdAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      %animationEvents;
      %animElementAttrs;
      %animAttributeAttrs;
      %animTimingAttrs;
      %animValueAttrs;
      %animAdditionAttrs; >

    <!ENTITY % animateTransformExt "" >
    <!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
    <!ATTLIST animateTransform
      %stdAttrs;
      %testAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      %animationEvents;
      %animElementAttrs;
      %animAttributeAttrs;
      %animTimingAttrs;
      %animValueAttrs;
      %animAdditionAttrs;
      type (translate | scale | rotate | skewX | skewY) "translate" >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Fonts
         ============================================================== -->

    <!ENTITY % fontExt "" >
    <!ELEMENT font (%descTitleMetadata;,font-face,
                       missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
    <!ATTLIST font
      %stdAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      horiz-origin-x %Number; #IMPLIED
      horiz-origin-y %Number; #IMPLIED
      horiz-adv-x %Number; #REQUIRED
      vert-origin-x %Number; #IMPLIED
      vert-origin-y %Number; #IMPLIED
      vert-adv-y %Number; #IMPLIED >

    <!ENTITY % glyphExt "" >
    <!ELEMENT glyph (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %glyphExt;)* >
    <!ATTLIST glyph
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      unicode CDATA #IMPLIED
      glyph-name CDATA #IMPLIED
      d %PathData; #IMPLIED
      orientation CDATA #IMPLIED
      arabic-form CDATA #IMPLIED
      lang %LanguageCodes; #IMPLIED
      horiz-adv-x %Number; #IMPLIED
      vert-origin-x %Number; #IMPLIED
      vert-origin-y %Number; #IMPLIED
      vert-adv-y %Number; #IMPLIED >

    <!ENTITY % missing-glyphExt "" >
    <!ELEMENT missing-glyph (desc|title|metadata|defs|
                       path|text|rect|circle|ellipse|line|polyline|polygon|
                       use|image|svg|g|view|switch|a|altGlyphDef|
                       script|style|symbol|marker|clipPath|mask|
                       linearGradient|radialGradient|pattern|filter|cursor|font|
                       animate|set|animateMotion|animateColor|animateTransform|
                       color-profile|font-face
                       %missing-glyphExt;)* >
    <!ATTLIST missing-glyph
      %stdAttrs;
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      d %PathData; #IMPLIED
      horiz-adv-x %Number; #IMPLIED
      vert-origin-x %Number; #IMPLIED
      vert-origin-y %Number; #IMPLIED
      vert-adv-y %Number; #IMPLIED >

    <!ELEMENT hkern EMPTY >
    <!ATTLIST hkern
      %stdAttrs;
      u1 CDATA #IMPLIED
      g1 CDATA #IMPLIED
      u2 CDATA #IMPLIED
      g2 CDATA #IMPLIED
      k %Number; #REQUIRED >

    <!ELEMENT vkern EMPTY >
    <!ATTLIST vkern
      %stdAttrs;
      u1 CDATA #IMPLIED
      g1 CDATA #IMPLIED
      u2 CDATA #IMPLIED
      g2 CDATA #IMPLIED
      k %Number; #REQUIRED >

    <!ELEMENT font-face (%descTitleMetadata;,font-face-src?,definition-src?) >
    <!ATTLIST font-face
      %stdAttrs;
      font-family CDATA #IMPLIED
      font-style CDATA #IMPLIED
      font-variant CDATA #IMPLIED
      font-weight CDATA #IMPLIED
      font-stretch CDATA #IMPLIED
      font-size CDATA #IMPLIED
      unicode-range CDATA #IMPLIED
      units-per-em %Number; #IMPLIED
      panose-1 CDATA #IMPLIED
      stemv %Number; #IMPLIED
      stemh %Number; #IMPLIED
      slope %Number; #IMPLIED
      cap-height %Number; #IMPLIED
      x-height %Number; #IMPLIED
      accent-height %Number; #IMPLIED
      ascent %Number; #IMPLIED
      descent %Number; #IMPLIED
      widths CDATA #IMPLIED
      bbox CDATA #IMPLIED
      ideographic %Number; #IMPLIED
      alphabetic %Number; #IMPLIED
      mathematical %Number; #IMPLIED
      hanging %Number; #IMPLIED
      v-ideographic %Number; #IMPLIED
      v-alphabetic %Number; #IMPLIED
      v-mathematical %Number; #IMPLIED
      v-hanging %Number; #IMPLIED
      underline-position %Number; #IMPLIED
      underline-thickness %Number; #IMPLIED
      strikethrough-position %Number; #IMPLIED
      strikethrough-thickness %Number; #IMPLIED
      overline-position %Number; #IMPLIED
      overline-thickness %Number; #IMPLIED >

    <!ELEMENT font-face-src (font-face-uri|font-face-name)+ >
    <!ATTLIST font-face-src
      %stdAttrs; >

    <!ELEMENT font-face-uri (font-face-format*) >
    <!ATTLIST font-face-uri
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED >

    <!ELEMENT font-face-format EMPTY >
    <!ATTLIST font-face-format
      %stdAttrs;
      string CDATA #IMPLIED >

    <!ELEMENT font-face-name EMPTY >
    <!ATTLIST font-face-name
      %stdAttrs;
      name CDATA #IMPLIED >

    <!ELEMENT definition-src EMPTY >
    <!ATTLIST definition-src
      %stdAttrs;
      %xlinkRefAttrs;
      xlink:href %URI; #REQUIRED >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Metadata
         ============================================================== -->

    <!ENTITY % metadataExt "" >
    <!ELEMENT metadata (#PCDATA %metadataExt;)* >
    <!ATTLIST metadata
      %stdAttrs; >

    <!-- ==============================================================
         DEFINITIONS CORRESPONDING TO: Extensibility
         ============================================================== -->

    <!ENTITY % foreignObjectExt "" >
    <!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
    <!ATTLIST foreignObject
      %stdAttrs;
      %testAttrs;
      %langSpaceAttrs;
      externalResourcesRequired %Boolean; #IMPLIED
      class %ClassList; #IMPLIED
      style %StyleSheet; #IMPLIED
      %PresentationAttributes-All;
      transform %TransformList; #IMPLIED
      %graphicsElementEvents;
      x %Coordinate; #IMPLIED
      y %Coordinate; #IMPLIED
      width %Length; #REQUIRED
      height %Length; #REQUIRED
      %StructuredText; >

previous next contents elements attributes properties index