<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by DTDinst version 2001-12-03. -->
<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" ns="http://www.w3.org/2000/svg">
<!-- =====================================================================
  This is the DTD for SVG 1.0.

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

    http://www.w3.org/TR/2001/REC-SVG-20010904/

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

  For SVG 1.0:

    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/REC-SVG-20010904/DTD/svg10.dtd
============================================================================= -->
<!-- ==============================================================
     ENTITY DECLARATIONS: Data types 
     ============================================================== -->
  <define name="svg.BaselineShiftValue">
    <data type="string"/>
  </define>
<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
  <define name="svg.Boolean">
    <choice>
      <value>false</value>
      <value>true</value>
    </choice>
  </define>
<!-- feature specification -->
  <define name="svg.ClassList">
    <data type="string"/>
  </define>
<!-- list of classes -->
  <define name="svg.ClipValue">
    <data type="string"/>
  </define>
<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
  <define name="svg.ClipPathValue">
    <data type="string"/>
  </define>
<!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
  <define name="svg.ClipFillRule">
    <choice>
      <value>nonzero</value>
      <value>evenodd</value>
      <value>inherit</value>
    </choice>
  </define>
<!-- 'clip-rule' or fill-rule property/attribute value -->
  <define name="svg.ContentType">
    <data type="string"/>
  </define>
<!-- media type, as per [RFC2045] -->
  <define name="svg.Coordinate">
    <data type="string"/>
  </define>
<!-- a <coordinate> -->
  <define name="svg.Coordinates">
    <data type="string"/>
  </define>
<!-- a list of <coordinate>s -->
  <define name="svg.Color">
    <data type="string"/>
  </define>
<!-- a <color> value -->
  <define name="svg.CursorValue">
    <data type="string"/>
  </define>
<!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
  <define name="svg.EnableBackgroundValue">
    <data type="string"/>
  </define>
<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
  <define name="svg.ExtensionList">
    <data type="string"/>
  </define>
<!-- extension list specification -->
  <define name="svg.FeatureList">
    <data type="string"/>
  </define>
<!-- feature list specification -->
  <define name="svg.FilterValue">
    <data type="string"/>
  </define>
<!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
  <define name="svg.FontFamilyValue">
    <data type="string"/>
  </define>
<!-- 'font-family' property/attribute value (i.e., list of fonts) -->
  <define name="svg.FontSizeValue">
    <data type="string"/>
  </define>
<!-- 'font-size' property/attribute value -->
  <define name="svg.FontSizeAdjustValue">
    <data type="string"/>
  </define>
<!-- 'font-size-adjust' property/attribute value -->
  <define name="svg.GlyphOrientationHorizontalValue">
    <data type="string"/>
  </define>
<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
  <define name="svg.GlyphOrientationVerticalValue">
    <data type="string"/>
  </define>
<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
  <define name="svg.Integer">
    <data type="string"/>
  </define>
<!-- a <integer> -->
  <define name="svg.KerningValue">
    <data type="string"/>
  </define>
<!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
  <define name="svg.LanguageCode">
    <data type="NMTOKEN"/>
  </define>
<!-- a language code, as per [RFC3066] -->
  <define name="svg.LanguageCodes">
    <data type="string"/>
  </define>
<!-- comma-separated list of language codes, as per [RFC3066] -->
  <define name="svg.Length">
    <data type="string"/>
  </define>
<!-- a <length> -->
  <define name="svg.Lengths">
    <data type="string"/>
  </define>
<!-- a list of <length>s -->
  <define name="svg.LinkTarget">
    <data type="NMTOKEN"/>
  </define>
<!-- link to this target -->
  <define name="svg.MarkerValue">
    <data type="string"/>
  </define>
<!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
  <define name="svg.MaskValue">
    <data type="string"/>
  </define>
<!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
  <define name="svg.MediaDesc">
    <data type="string"/>
  </define>
<!-- comma-separated list of media descriptors. -->
  <define name="svg.Number">
    <data type="string"/>
  </define>
<!-- a <number> -->
  <define name="svg.NumberOptionalNumber">
    <data type="string"/>
  </define>
<!-- list of <number>s, but at least one and at most two -->
  <define name="svg.NumberOrPercentage">
    <data type="string"/>
  </define>
<!-- a <number> or a  <percentage> -->
  <define name="svg.Numbers">
    <data type="string"/>
  </define>
<!-- a list of <number>s -->
  <define name="svg.OpacityValue">
    <data type="string"/>
  </define>
<!-- opacity value (e.g., <number>) -->
  <define name="svg.Paint">
    <data type="string"/>
  </define>
<!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
  <define name="svg.PathData">
    <data type="string"/>
  </define>
<!-- a path data specification -->
  <define name="svg.Points">
    <data type="string"/>
  </define>
<!-- a list of points -->
  <define name="svg.PreserveAspectRatioSpec">
    <data type="string"/>
  </define>
<!-- 'preserveAspectRatio' attribute specification -->
  <define name="svg.Script">
    <data type="string"/>
  </define>
<!-- script expression -->
  <define name="svg.SpacingValue">
    <data type="string"/>
  </define>
<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
  <define name="svg.StrokeDashArrayValue">
    <data type="string"/>
  </define>
<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
  <define name="svg.StrokeDashOffsetValue">
    <data type="string"/>
  </define>
<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
  <define name="svg.StrokeMiterLimitValue">
    <data type="string"/>
  </define>
<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
  <define name="svg.StrokeWidthValue">
    <data type="string"/>
  </define>
<!-- 'stroke-width' property/attribute value (e.g., <length>) -->
  <define name="svg.StructuredText">
    <optional>
      <attribute name="content" a:defaultValue="structured text">
        <value type="string">structured text</value>
      </attribute>
    </optional>
  </define>
  <define name="svg.StyleSheet">
    <data type="string"/>
  </define>
<!-- style sheet data -->
  <define name="svg.SVGColor">
    <data type="string"/>
  </define>
<!-- An SVG color value (RGB plus optional ICC) -->
  <define name="svg.Text">
    <data type="string"/>
  </define>
<!-- arbitrary text string -->
  <define name="svg.TextDecorationValue">
    <data type="string"/>
  </define>
<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
  <define name="svg.TransformList">
    <data type="string"/>
  </define>
<!-- list of transforms -->
  <define name="svg.URI">
    <data type="string"/>
  </define>
<!-- a Uniform Resource Identifier, see [URI] -->
  <define name="svg.ViewBoxSpec">
    <data type="string"/>
  </define>
<!-- 'viewBox' attribute specification -->
<!-- ==============================================================
     ENTITY DECLARATIONS: Collections of common attributes 
     ============================================================== -->
<!-- All elements have an ID. -->
  <define name="svg.stdAttrs">
    <optional>
      <attribute name="id">
        <data type="ID"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xml:base">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
  </define>
<!-- Common attributes for elements that might contain character data content. -->
  <define name="svg.langSpaceAttrs">
    <optional>
      <attribute name="xml:lang">
        <ref name="svg.LanguageCode"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xml:space">
        <choice>
          <value>default</value>
          <value>preserve</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- Common attributes to check for system capabilities. -->
  <define name="svg.testAttrs">
    <optional>
      <attribute name="requiredFeatures">
        <ref name="svg.FeatureList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="requiredExtensions">
        <ref name="svg.ExtensionList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="systemLanguage">
        <ref name="svg.LanguageCodes"/>
      </attribute>
    </optional>
  </define>
<!-- For most uses of URI referencing:
        standard XLink attributes other than xlink:href. -->
  <define name="svg.xlinkRefAttrs">
    <empty/>
    <optional>
      <attribute name="xlink:type" a:defaultValue="simple">
        <value>simple</value>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:role">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:arcrole">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:title"/>
    </optional>
    <optional>
      <attribute name="xlink:show" a:defaultValue="other">
        <choice>
          <value>other</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:actuate" a:defaultValue="onLoad">
        <value>onLoad</value>
      </attribute>
    </optional>
  </define>
<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
  <define name="svg.xlinkRefAttrsEmbed">
    <empty/>
    <optional>
      <attribute name="xlink:type" a:defaultValue="simple">
        <value>simple</value>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:role">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:arcrole">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:title"/>
    </optional>
    <optional>
      <attribute name="xlink:show" a:defaultValue="embed">
        <choice>
          <value>embed</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:actuate" a:defaultValue="onLoad">
        <value>onLoad</value>
      </attribute>
    </optional>
  </define>
  <define name="svg.graphicsElementEvents">
    <optional>
      <attribute name="onfocusin">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onfocusout">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onactivate">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onclick">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onmousedown">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onmouseup">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onmouseover">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onmousemove">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onmouseout">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onload">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.documentEvents">
    <optional>
      <attribute name="onunload">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onabort">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onerror">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onresize">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onscroll">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onzoom">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.animationEvents">
    <optional>
      <attribute name="onbegin">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onend">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="onrepeat">
        <ref name="svg.Script"/>
      </attribute>
    </optional>
  </define>
<!-- This entity allows for at most one of desc, title and metadata,
     supplied in any order -->
  <define name="svg.descTitleMetadata">
    <optional>
      <choice>
        <group>
          <ref name="svg.desc"/>
          <optional>
            <choice>
              <group>
                <ref name="svg.title"/>
                <optional>
                  <ref name="svg.metadata"/>
                </optional>
              </group>
              <group>
                <ref name="svg.metadata"/>
                <optional>
                  <ref name="svg.title"/>
                </optional>
              </group>
            </choice>
          </optional>
        </group>
        <group>
          <ref name="svg.title"/>
          <optional>
            <choice>
              <group>
                <ref name="svg.desc"/>
                <optional>
                  <ref name="svg.metadata"/>
                </optional>
              </group>
              <group>
                <ref name="svg.metadata"/>
                <optional>
                  <ref name="svg.desc"/>
                </optional>
              </group>
            </choice>
          </optional>
        </group>
        <group>
          <ref name="svg.metadata"/>
          <optional>
            <choice>
              <group>
                <ref name="svg.desc"/>
                <optional>
                  <ref name="svg.title"/>
                </optional>
              </group>
              <group>
                <ref name="svg.title"/>
                <optional>
                  <ref name="svg.desc"/>
                </optional>
              </group>
            </choice>
          </optional>
        </group>
      </choice>
    </optional>
  </define>
<!-- ==============================================================
     ENTITY DECLARATIONS: Collections of presentation attributes 
     ============================================================== -->
<!-- The following presentation attributes have to do with specifying color. -->
  <define name="svg.PresentationAttributes-Color">
    <optional>
      <attribute name="color">
        <ref name="svg.Color"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="color-interpolation">
        <choice>
          <value>auto</value>
          <value>sRGB</value>
          <value>linearRGB</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="color-rendering">
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>optimizeQuality</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to container elements. -->
  <define name="svg.PresentationAttributes-Containers">
    <optional>
      <attribute name="enable-background">
        <ref name="svg.EnableBackgroundValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to 'feFlood' elements. -->
  <define name="svg.PresentationAttributes-feFlood">
    <optional>
      <attribute name="flood-color">
        <ref name="svg.SVGColor"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="flood-opacity">
        <ref name="svg.OpacityValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to filling and stroking operations. -->
  <define name="svg.PresentationAttributes-FillStroke">
    <optional>
      <attribute name="fill">
        <ref name="svg.Paint"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="fill-opacity">
        <ref name="svg.OpacityValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="fill-rule">
        <ref name="svg.ClipFillRule"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke">
        <ref name="svg.Paint"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-dasharray">
        <ref name="svg.StrokeDashArrayValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-dashoffset">
        <ref name="svg.StrokeDashOffsetValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-linecap">
        <choice>
          <value>butt</value>
          <value>round</value>
          <value>square</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-linejoin">
        <choice>
          <value>miter</value>
          <value>round</value>
          <value>bevel</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-miterlimit">
        <ref name="svg.StrokeMiterLimitValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-opacity">
        <ref name="svg.OpacityValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stroke-width">
        <ref name="svg.StrokeWidthValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to filter primitives. -->
  <define name="svg.PresentationAttributes-FilterPrimitives">
    <optional>
      <attribute name="color-interpolation-filters">
        <choice>
          <value>auto</value>
          <value>sRGB</value>
          <value>linearRGB</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes have to do with selecting a font to use. -->
  <define name="svg.PresentationAttributes-FontSpecification">
    <optional>
      <attribute name="font-family">
        <ref name="svg.FontFamilyValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-size">
        <ref name="svg.FontSizeValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-size-adjust">
        <ref name="svg.FontSizeAdjustValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-stretch">
        <choice>
          <value>normal</value>
          <value>wider</value>
          <value>narrower</value>
          <value>ultra-condensed</value>
          <value>extra-condensed</value>
          <value>condensed</value>
          <value>semi-condensed</value>
          <value>semi-expanded</value>
          <value>expanded</value>
          <value>extra-expanded</value>
          <value>ultra-expanded</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-style">
        <choice>
          <value>normal</value>
          <value>italic</value>
          <value>oblique</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-variant">
        <choice>
          <value>normal</value>
          <value>small-caps</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="font-weight">
        <choice>
          <value>normal</value>
          <value>bold</value>
          <value>bolder</value>
          <value>lighter</value>
          <value>100</value>
          <value>200</value>
          <value>300</value>
          <value>400</value>
          <value>500</value>
          <value>600</value>
          <value>700</value>
          <value>800</value>
          <value>900</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to gradient 'stop' elements. -->
  <define name="svg.PresentationAttributes-Gradients">
    <optional>
      <attribute name="stop-color">
        <ref name="svg.SVGColor"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stop-opacity">
        <ref name="svg.OpacityValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to graphics elements. -->
  <define name="svg.PresentationAttributes-Graphics">
    <optional>
      <attribute name="clip-path">
        <ref name="svg.ClipPathValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="clip-rule">
        <ref name="svg.ClipFillRule"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cursor">
        <ref name="svg.CursorValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="display">
        <choice>
          <value>inline</value>
          <value>block</value>
          <value>list-item</value>
          <value>run-in</value>
          <value>compact</value>
          <value>marker</value>
          <value>table</value>
          <value>inline-table</value>
          <value>table-row-group</value>
          <value>table-header-group</value>
          <value>table-footer-group</value>
          <value>table-row</value>
          <value>table-column-group</value>
          <value>table-column</value>
          <value>table-cell</value>
          <value>table-caption</value>
          <value>none</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="filter">
        <ref name="svg.FilterValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="image-rendering">
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>optimizeQuality</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="mask">
        <ref name="svg.MaskValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="opacity">
        <ref name="svg.OpacityValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="pointer-events">
        <choice>
          <value>visiblePainted</value>
          <value>visibleFill</value>
          <value>visibleStroke</value>
          <value>visible</value>
          <value>painted</value>
          <value>fill</value>
          <value>stroke</value>
          <value>all</value>
          <value>none</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="shape-rendering">
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>crispEdges</value>
          <value>geometricPrecision</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="text-rendering">
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>optimizeLegibility</value>
          <value>geometricPrecision</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="visibility">
        <choice>
          <value>visible</value>
          <value>hidden</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to 'image' elements. -->
  <define name="svg.PresentationAttributes-Images">
    <optional>
      <attribute name="color-profile"/>
    </optional>
  </define>
<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
  <define name="svg.PresentationAttributes-LightingEffects">
    <optional>
      <attribute name="lighting-color">
        <ref name="svg.SVGColor"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to marker operations. -->
  <define name="svg.PresentationAttributes-Markers">
    <optional>
      <attribute name="marker-start">
        <ref name="svg.MarkerValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="marker-mid">
        <ref name="svg.MarkerValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="marker-end">
        <ref name="svg.MarkerValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to text content elements. -->
  <define name="svg.PresentationAttributes-TextContentElements">
    <optional>
      <attribute name="alignment-baseline">
        <choice>
          <value>baseline</value>
          <value>top</value>
          <value>before-edge</value>
          <value>text-top</value>
          <value>text-before-edge</value>
          <value>middle</value>
          <value>bottom</value>
          <value>after-edge</value>
          <value>text-bottom</value>
          <value>text-after-edge</value>
          <value>ideographic</value>
          <value>lower</value>
          <value>hanging</value>
          <value>mathematical</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="baseline-shift">
        <ref name="svg.BaselineShiftValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="direction">
        <choice>
          <value>ltr</value>
          <value>rtl</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="dominant-baseline">
        <choice>
          <value>auto</value>
          <value>autosense-script</value>
          <value>no-change</value>
          <value>reset</value>
          <value>ideographic</value>
          <value>lower</value>
          <value>hanging</value>
          <value>mathematical</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="glyph-orientation-horizontal">
        <ref name="svg.GlyphOrientationHorizontalValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="glyph-orientation-vertical">
        <ref name="svg.GlyphOrientationVerticalValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="kerning">
        <ref name="svg.KerningValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="letter-spacing">
        <ref name="svg.SpacingValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="text-anchor">
        <choice>
          <value>start</value>
          <value>middle</value>
          <value>end</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="text-decoration">
        <ref name="svg.TextDecorationValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="unicode-bidi">
        <choice>
          <value>normal</value>
          <value>embed</value>
          <value>bidi-override</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="word-spacing">
        <ref name="svg.SpacingValue"/>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to 'text' elements. -->
  <define name="svg.PresentationAttributes-TextElements">
    <optional>
      <attribute name="writing-mode">
        <choice>
          <value>lr-tb</value>
          <value>rl-tb</value>
          <value>tb-rl</value>
          <value>lr</value>
          <value>rl</value>
          <value>tb</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- The following presentation attributes apply to elements that establish viewports. -->
  <define name="svg.PresentationAttributes-Viewports">
    <optional>
      <attribute name="clip">
        <ref name="svg.ClipValue"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="overflow">
        <choice>
          <value>visible</value>
          <value>hidden</value>
          <value>scroll</value>
          <value>auto</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!--The following represents the complete list of presentation attributes. -->
  <define name="svg.PresentationAttributes-All">
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-Containers"/>
    <ref name="svg.PresentationAttributes-feFlood"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Gradients"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Images"/>
    <ref name="svg.PresentationAttributes-LightingEffects"/>
    <ref name="svg.PresentationAttributes-Markers"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.PresentationAttributes-TextElements"/>
    <ref name="svg.PresentationAttributes-Viewports"/>
  </define>
<!-- ==============================================================
     ENTITY DECLARATIONS: DTD extensions 
     ============================================================== -->
<!-- Allow for extending the DTD with internal subset for 
     container and graphics elements -->
  <define name="svg.ceExt">
    <notAllowed/>
  </define>
  <define name="svg.geExt">
    <notAllowed/>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Document Structure 
     ============================================================== -->
  <define name="svg.svgExt">
    <notAllowed/>
  </define>
  <define name="svg.svg">
    <element name="svg">
      <ref name="svg.attlist-svg"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.svgExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-svg" combine="interleave">
    <empty/>
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="viewBox">
        <ref name="svg.ViewBoxSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="zoomAndPan" a:defaultValue="magnify">
        <choice>
          <value>disable</value>
          <value>magnify</value>
        </choice>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <ref name="svg.documentEvents"/>
    <optional>
      <attribute name="version" a:defaultValue="1.0">
        <value type="string">1.0</value>
      </attribute>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="contentScriptType" a:defaultValue="text/ecmascript">
        <ref name="svg.ContentType"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="contentStyleType" a:defaultValue="text/css">
        <ref name="svg.ContentType"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.gExt">
    <notAllowed/>
  </define>
  <define name="svg.g">
    <element name="g">
      <ref name="svg.attlist-g"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.gExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-g" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
  </define>
  <define name="svg.defsExt">
    <notAllowed/>
  </define>
  <define name="svg.defs">
    <element name="defs">
      <ref name="svg.attlist-defs"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.defsExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-defs" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
  </define>
  <define name="svg.descExt">
    <notAllowed/>
  </define>
  <define name="svg.desc">
    <element name="desc">
      <ref name="svg.attlist-desc"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.descExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-desc" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.StructuredText"/>
  </define>
  <define name="svg.titleExt">
    <notAllowed/>
  </define>
  <define name="svg.title">
    <element name="title">
      <ref name="svg.attlist-title"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.titleExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-title" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.StructuredText"/>
  </define>
  <define name="svg.symbolExt">
    <notAllowed/>
  </define>
  <define name="svg.symbol">
    <element name="symbol">
      <ref name="svg.attlist-symbol"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.symbolExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-symbol" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="viewBox">
        <ref name="svg.ViewBoxSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
  </define>
  <define name="svg.useExt">
    <notAllowed/>
  </define>
  <define name="svg.use">
    <element name="use">
      <ref name="svg.attlist-use"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.useExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-use" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrsEmbed"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.imageExt">
    <notAllowed/>
  </define>
  <define name="svg.image">
    <element name="image">
      <ref name="svg.attlist-image"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.imageExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-image" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrsEmbed"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Images"/>
    <ref name="svg.PresentationAttributes-Viewports"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <attribute name="width">
      <ref name="svg.Length"/>
    </attribute>
    <attribute name="height">
      <ref name="svg.Length"/>
    </attribute>
  </define>
  <define name="svg.switchExt">
    <notAllowed/>
  </define>
  <define name="svg.switch">
    <element name="switch">
      <ref name="svg.attlist-switch"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.foreignObject"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.switchExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-switch" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Styling 
     ============================================================== -->
  <define name="svg.style">
    <element name="style">
      <ref name="svg.attlist-style"/>
      <text/>
    </element>
  </define>
  <define name="svg.attlist-style" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="xml:space" a:defaultValue="preserve">
        <value>preserve</value>
      </attribute>
    </optional>
    <attribute name="type">
      <ref name="svg.ContentType"/>
    </attribute>
    <optional>
      <attribute name="media">
        <ref name="svg.MediaDesc"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="title">
        <ref name="svg.Text"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Paths
     ============================================================== -->
  <define name="svg.pathExt">
    <notAllowed/>
  </define>
  <define name="svg.path">
    <element name="path">
      <ref name="svg.attlist-path"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.pathExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-path" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Markers"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <attribute name="d">
      <ref name="svg.PathData"/>
    </attribute>
    <optional>
      <attribute name="pathLength">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Basic Shapes
     ============================================================== -->
  <define name="svg.rectExt">
    <notAllowed/>
  </define>
  <define name="svg.rect">
    <element name="rect">
      <ref name="svg.attlist-rect"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.rectExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-rect" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <attribute name="width">
      <ref name="svg.Length"/>
    </attribute>
    <attribute name="height">
      <ref name="svg.Length"/>
    </attribute>
    <optional>
      <attribute name="rx">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="ry">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.circleExt">
    <notAllowed/>
  </define>
  <define name="svg.circle">
    <element name="circle">
      <ref name="svg.attlist-circle"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.circleExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-circle" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="cx">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cy">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <attribute name="r">
      <ref name="svg.Length"/>
    </attribute>
  </define>
  <define name="svg.ellipseExt">
    <notAllowed/>
  </define>
  <define name="svg.ellipse">
    <element name="ellipse">
      <ref name="svg.attlist-ellipse"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.ellipseExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-ellipse" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="cx">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cy">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <attribute name="rx">
      <ref name="svg.Length"/>
    </attribute>
    <attribute name="ry">
      <ref name="svg.Length"/>
    </attribute>
  </define>
  <define name="svg.lineExt">
    <notAllowed/>
  </define>
  <define name="svg.line">
    <element name="line">
      <ref name="svg.attlist-line"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.lineExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-line" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Markers"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x1">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y1">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x2">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y2">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.polylineExt">
    <notAllowed/>
  </define>
  <define name="svg.polyline">
    <element name="polyline">
      <ref name="svg.attlist-polyline"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.polylineExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-polyline" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Markers"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <attribute name="points">
      <ref name="svg.Points"/>
    </attribute>
  </define>
  <define name="svg.polygonExt">
    <notAllowed/>
  </define>
  <define name="svg.polygon">
    <element name="polygon">
      <ref name="svg.attlist-polygon"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.polygonExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-polygon" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-Markers"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <attribute name="points">
      <ref name="svg.Points"/>
    </attribute>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Text
     ============================================================== -->
  <define name="svg.textExt">
    <notAllowed/>
  </define>
  <define name="svg.text">
    <element name="text">
      <ref name="svg.attlist-text"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.tspan"/>
          <ref name="svg.tref"/>
          <ref name="svg.textPath"/>
          <ref name="svg.altGlyph"/>
          <ref name="svg.a"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.geExt"/>
          <ref name="svg.textExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-text" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.PresentationAttributes-TextElements"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dx">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="rotate">
        <ref name="svg.Numbers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="textLength">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="lengthAdjust">
        <choice>
          <value>spacing</value>
          <value>spacingAndGlyphs</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.tspanExt">
    <notAllowed/>
  </define>
  <define name="svg.tspan">
    <element name="tspan">
      <ref name="svg.attlist-tspan"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.tspan"/>
          <ref name="svg.tref"/>
          <ref name="svg.altGlyph"/>
          <ref name="svg.a"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.tspanExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-tspan" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dx">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="rotate">
        <ref name="svg.Numbers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="textLength">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="lengthAdjust">
        <choice>
          <value>spacing</value>
          <value>spacingAndGlyphs</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.trefExt">
    <notAllowed/>
  </define>
  <define name="svg.tref">
    <element name="tref">
      <ref name="svg.attlist-tref"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.trefExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-tref" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dx">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="rotate">
        <ref name="svg.Numbers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="textLength">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="lengthAdjust">
        <choice>
          <value>spacing</value>
          <value>spacingAndGlyphs</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.textPathExt">
    <notAllowed/>
  </define>
  <define name="svg.textPath">
    <element name="textPath">
      <ref name="svg.attlist-textPath"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.tspan"/>
          <ref name="svg.tref"/>
          <ref name="svg.altGlyph"/>
          <ref name="svg.a"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.textPathExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-textPath" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.langSpaceAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="startOffset">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="textLength">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="lengthAdjust">
        <choice>
          <value>spacing</value>
          <value>spacingAndGlyphs</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="method">
        <choice>
          <value>align</value>
          <value>stretch</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="spacing">
        <choice>
          <value>auto</value>
          <value>exact</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.altGlyphExt">
    <notAllowed/>
  </define>
  <define name="svg.altGlyph">
    <element name="altGlyph">
      <ref name="svg.attlist-altGlyph"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.altGlyphExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-altGlyph" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="glyphRef"/>
    </optional>
    <optional>
      <attribute name="format"/>
    </optional>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinates"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dx">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Lengths"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="rotate">
        <ref name="svg.Numbers"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.altGlyphDefExt">
    <notAllowed/>
  </define>
  <define name="svg.altGlyphDef">
    <element name="altGlyphDef">
      <ref name="svg.attlist-altGlyphDef"/>
      <choice>
        <oneOrMore>
          <ref name="svg.glyphRef"/>
        </oneOrMore>
        <oneOrMore>
          <ref name="svg.altGlyphItem"/>
        </oneOrMore>
        <ref name="svg.altGlyphDefExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-altGlyphDef" combine="interleave">
    <ref name="svg.stdAttrs"/>
  </define>
  <define name="svg.altGlyphItemExt">
    <notAllowed/>
  </define>
  <define name="svg.altGlyphItem">
    <element name="altGlyphItem">
      <ref name="svg.attlist-altGlyphItem"/>
      <choice>
        <oneOrMore>
          <ref name="svg.glyphRef"/>
        </oneOrMore>
        <ref name="svg.altGlyphItemExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-altGlyphItem" combine="interleave">
    <ref name="svg.stdAttrs"/>
  </define>
  <define name="svg.glyphRef">
    <element name="glyphRef">
      <ref name="svg.attlist-glyphRef"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-glyphRef" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <optional>
      <attribute name="glyphRef"/>
    </optional>
    <optional>
      <attribute name="format"/>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dx">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
     ============================================================== -->
  <define name="svg.markerExt">
    <notAllowed/>
  </define>
  <define name="svg.marker">
    <element name="marker">
      <ref name="svg.attlist-marker"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.markerExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-marker" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="viewBox">
        <ref name="svg.ViewBoxSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="refX">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="refY">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="markerUnits">
        <choice>
          <value>strokeWidth</value>
          <value>userSpaceOnUse</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="markerWidth">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="markerHeight">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="orient"/>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Color 
     ============================================================== -->
  <define name="svg.color-profile">
    <element name="color-profile">
      <ref name="svg.attlist-color-profile"/>
      <ref name="svg.descTitleMetadata"/>
    </element>
  </define>
  <define name="svg.attlist-color-profile" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="local"/>
    </optional>
    <attribute name="name"/>
    <optional>
      <attribute name="rendering-intent" a:defaultValue="auto">
        <choice>
          <value>auto</value>
          <value>perceptual</value>
          <value>relative-colorimetric</value>
          <value>saturation</value>
          <value>absolute-colorimetric</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
     ============================================================== -->
  <define name="svg.linearGradientExt">
    <notAllowed/>
  </define>
  <define name="svg.linearGradient">
    <element name="linearGradient">
      <ref name="svg.attlist-linearGradient"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.stop"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.linearGradientExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-linearGradient" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-Gradients"/>
    <optional>
      <attribute name="gradientUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="gradientTransform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x1">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y1">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x2">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y2">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="spreadMethod">
        <choice>
          <value>pad</value>
          <value>reflect</value>
          <value>repeat</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.radialGradientExt">
    <notAllowed/>
  </define>
  <define name="svg.radialGradient">
    <element name="radialGradient">
      <ref name="svg.attlist-radialGradient"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.stop"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.radialGradientExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-radialGradient" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-Gradients"/>
    <optional>
      <attribute name="gradientUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="gradientTransform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cx">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cy">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="r">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="fx">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="fy">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="spreadMethod">
        <choice>
          <value>pad</value>
          <value>reflect</value>
          <value>repeat</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.stopExt">
    <notAllowed/>
  </define>
  <define name="svg.stop">
    <element name="stop">
      <ref name="svg.attlist-stop"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.stopExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-stop" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-Gradients"/>
    <attribute name="offset">
      <ref name="svg.NumberOrPercentage"/>
    </attribute>
  </define>
  <define name="svg.patternExt">
    <notAllowed/>
  </define>
  <define name="svg.pattern">
    <element name="pattern">
      <ref name="svg.attlist-pattern"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.patternExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-pattern" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="viewBox">
        <ref name="svg.ViewBoxSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="patternUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="patternContentUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="patternTransform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
     ============================================================== -->
  <define name="svg.clipPathExt">
    <notAllowed/>
  </define>
  <define name="svg.clipPath">
    <element name="clipPath">
      <ref name="svg.attlist-clipPath"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.clipPathExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-clipPath" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FillStroke"/>
    <ref name="svg.PresentationAttributes-FontSpecification"/>
    <ref name="svg.PresentationAttributes-Graphics"/>
    <ref name="svg.PresentationAttributes-TextContentElements"/>
    <ref name="svg.PresentationAttributes-TextElements"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="clipPathUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.maskExt">
    <notAllowed/>
  </define>
  <define name="svg.mask">
    <element name="mask">
      <ref name="svg.attlist-mask"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.maskExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-mask" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="maskUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="maskContentUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Filter Effects
     ============================================================== -->
  <define name="svg.filterExt">
    <notAllowed/>
  </define>
  <define name="svg.filter">
    <element name="filter">
      <ref name="svg.attlist-filter"/>
      <ref name="svg.descTitleMetadata"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.feBlend"/>
          <ref name="svg.feFlood"/>
          <ref name="svg.feColorMatrix"/>
          <ref name="svg.feComponentTransfer"/>
          <ref name="svg.feComposite"/>
          <ref name="svg.feConvolveMatrix"/>
          <ref name="svg.feDiffuseLighting"/>
          <ref name="svg.feDisplacementMap"/>
          <ref name="svg.feGaussianBlur"/>
          <ref name="svg.feImage"/>
          <ref name="svg.feMerge"/>
          <ref name="svg.feMorphology"/>
          <ref name="svg.feOffset"/>
          <ref name="svg.feSpecularLighting"/>
          <ref name="svg.feTile"/>
          <ref name="svg.feTurbulence"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.filterExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-filter" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="filterUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="primitiveUnits">
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="filterRes">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.filter_primitive_attributes">
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="width">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="height">
        <ref name="svg.Length"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="result"/>
    </optional>
  </define>
  <define name="svg.filter_primitive_attributes_with_in">
    <ref name="svg.filter_primitive_attributes"/>
    <optional>
      <attribute name="in"/>
    </optional>
  </define>
  <define name="svg.feDistantLight">
    <element name="feDistantLight">
      <ref name="svg.attlist-feDistantLight"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feDistantLight" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="azimuth">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="elevation">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.fePointLight">
    <element name="fePointLight">
      <ref name="svg.attlist-fePointLight"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-fePointLight" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="z">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feSpotLight">
    <element name="feSpotLight">
      <ref name="svg.attlist-feSpotLight"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feSpotLight" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="z">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="pointsAtX">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="pointsAtY">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="pointsAtZ">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="specularExponent">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="limitingConeAngle">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feBlend">
    <element name="feBlend">
      <ref name="svg.attlist-feBlend"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feBlend" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <attribute name="in2"/>
    <optional>
      <attribute name="mode" a:defaultValue="normal">
        <choice>
          <value>normal</value>
          <value>multiply</value>
          <value>screen</value>
          <value>darken</value>
          <value>lighten</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.feColorMatrix">
    <element name="feColorMatrix">
      <ref name="svg.attlist-feColorMatrix"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feColorMatrix" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="type" a:defaultValue="matrix">
        <choice>
          <value>matrix</value>
          <value>saturate</value>
          <value>hueRotate</value>
          <value>luminanceToAlpha</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="values"/>
    </optional>
  </define>
  <define name="svg.feComponentTransfer">
    <element name="feComponentTransfer">
      <ref name="svg.attlist-feComponentTransfer"/>
      <optional>
        <ref name="svg.feFuncR"/>
      </optional>
      <optional>
        <ref name="svg.feFuncG"/>
      </optional>
      <optional>
        <ref name="svg.feFuncB"/>
      </optional>
      <optional>
        <ref name="svg.feFuncA"/>
      </optional>
    </element>
  </define>
  <define name="svg.attlist-feComponentTransfer" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
  </define>
  <define name="svg.component_transfer_function_attributes">
    <attribute name="type">
      <choice>
        <value>identity</value>
        <value>table</value>
        <value>discrete</value>
        <value>linear</value>
        <value>gamma</value>
      </choice>
    </attribute>
    <optional>
      <attribute name="tableValues"/>
    </optional>
    <optional>
      <attribute name="slope">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="intercept">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="amplitude">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="exponent">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="offset">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feFuncR">
    <element name="feFuncR">
      <ref name="svg.attlist-feFuncR"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feFuncR" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.component_transfer_function_attributes"/>
  </define>
  <define name="svg.feFuncG">
    <element name="feFuncG">
      <ref name="svg.attlist-feFuncG"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feFuncG" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.component_transfer_function_attributes"/>
  </define>
  <define name="svg.feFuncB">
    <element name="feFuncB">
      <ref name="svg.attlist-feFuncB"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feFuncB" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.component_transfer_function_attributes"/>
  </define>
  <define name="svg.feFuncA">
    <element name="feFuncA">
      <ref name="svg.attlist-feFuncA"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feFuncA" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.component_transfer_function_attributes"/>
  </define>
  <define name="svg.feComposite">
    <element name="feComposite">
      <ref name="svg.attlist-feComposite"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feComposite" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <attribute name="in2"/>
    <optional>
      <attribute name="operator" a:defaultValue="over">
        <choice>
          <value>over</value>
          <value>in</value>
          <value>out</value>
          <value>atop</value>
          <value>xor</value>
          <value>arithmetic</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="k1">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="k2">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="k3">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="k4">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feConvolveMatrix">
    <element name="feConvolveMatrix">
      <ref name="svg.attlist-feConvolveMatrix"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feConvolveMatrix" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <attribute name="order">
      <ref name="svg.NumberOptionalNumber"/>
    </attribute>
    <attribute name="kernelMatrix"/>
    <optional>
      <attribute name="divisor">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="bias">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="targetX">
        <ref name="svg.Integer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="targetY">
        <ref name="svg.Integer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="edgeMode" a:defaultValue="duplicate">
        <choice>
          <value>duplicate</value>
          <value>wrap</value>
          <value>none</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="kernelUnitLength">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAlpha">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feDiffuseLighting">
    <element name="feDiffuseLighting">
      <ref name="svg.attlist-feDiffuseLighting"/>
      <choice>
        <ref name="svg.feDistantLight"/>
        <ref name="svg.fePointLight"/>
        <ref name="svg.feSpotLight"/>
      </choice>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feDiffuseLighting" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.PresentationAttributes-LightingEffects"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="surfaceScale">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="diffuseConstant">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="kernelUnitLength">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feDisplacementMap">
    <element name="feDisplacementMap">
      <ref name="svg.attlist-feDisplacementMap"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feDisplacementMap" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <attribute name="in2"/>
    <optional>
      <attribute name="scale">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xChannelSelector" a:defaultValue="A">
        <choice>
          <value>R</value>
          <value>G</value>
          <value>B</value>
          <value>A</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="yChannelSelector" a:defaultValue="A">
        <choice>
          <value>R</value>
          <value>G</value>
          <value>B</value>
          <value>A</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.feFlood">
    <element name="feFlood">
      <ref name="svg.attlist-feFlood"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feFlood" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-feFlood"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
  </define>
  <define name="svg.feGaussianBlur">
    <element name="feGaussianBlur">
      <ref name="svg.attlist-feGaussianBlur"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feGaussianBlur" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="stdDeviation">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feImage">
    <element name="feImage">
      <ref name="svg.attlist-feImage"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateTransform"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feImage" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrsEmbed"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <ref name="svg.filter_primitive_attributes"/>
  </define>
  <define name="svg.feMerge">
    <element name="feMerge">
      <ref name="svg.attlist-feMerge"/>
      <zeroOrMore>
        <ref name="svg.feMergeNode"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feMerge" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes"/>
  </define>
  <define name="svg.feMergeNode">
    <element name="feMergeNode">
      <ref name="svg.attlist-feMergeNode"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feMergeNode" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="in"/>
    </optional>
  </define>
  <define name="svg.feMorphology">
    <element name="feMorphology">
      <ref name="svg.attlist-feMorphology"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feMorphology" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="operator" a:defaultValue="erode">
        <choice>
          <value>erode</value>
          <value>dilate</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="radius">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feOffset">
    <element name="feOffset">
      <ref name="svg.attlist-feOffset"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feOffset" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="dx">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="dy">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feSpecularLighting">
    <element name="feSpecularLighting">
      <ref name="svg.attlist-feSpecularLighting"/>
      <choice>
        <ref name="svg.feDistantLight"/>
        <ref name="svg.fePointLight"/>
        <ref name="svg.feSpotLight"/>
      </choice>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateColor"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feSpecularLighting" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-Color"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.PresentationAttributes-LightingEffects"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
    <optional>
      <attribute name="surfaceScale">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="specularConstant">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="specularExponent">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="kernelUnitLength">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.feTile">
    <element name="feTile">
      <ref name="svg.attlist-feTile"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feTile" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes_with_in"/>
  </define>
  <define name="svg.feTurbulence">
    <element name="feTurbulence">
      <ref name="svg.attlist-feTurbulence"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-feTurbulence" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.PresentationAttributes-FilterPrimitives"/>
    <ref name="svg.filter_primitive_attributes"/>
    <optional>
      <attribute name="baseFrequency">
        <ref name="svg.NumberOptionalNumber"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="numOctaves">
        <ref name="svg.Integer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="seed">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stitchTiles" a:defaultValue="noStitch">
        <choice>
          <value>stitch</value>
          <value>noStitch</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="type" a:defaultValue="turbulence">
        <choice>
          <value>fractalNoise</value>
          <value>turbulence</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Interactivity 
     ============================================================== -->
  <define name="svg.cursor">
    <element name="cursor">
      <ref name="svg.attlist-cursor"/>
      <ref name="svg.descTitleMetadata"/>
    </element>
  </define>
  <define name="svg.attlist-cursor" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Linking
     ============================================================== -->
  <define name="svg.aExt">
    <notAllowed/>
  </define>
  <define name="svg.a">
    <element name="a">
      <ref name="svg.attlist-a"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.ceExt"/>
          <ref name="svg.aExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-a" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <empty/>
    <optional>
      <attribute name="xlink:type" a:defaultValue="simple">
        <value>simple</value>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:role">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:arcrole">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:title"/>
    </optional>
    <optional>
      <attribute name="xlink:show" a:defaultValue="replace">
        <choice>
          <value>new</value>
          <value>replace</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="xlink:actuate" a:defaultValue="onRequest">
        <value>onRequest</value>
      </attribute>
    </optional>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="target">
        <ref name="svg.LinkTarget"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.viewExt">
    <notAllowed/>
  </define>
  <define name="svg.view">
    <element name="view">
      <ref name="svg.attlist-view"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.viewExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-view" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="viewBox">
        <ref name="svg.ViewBoxSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="preserveAspectRatio" a:defaultValue="xMidYMid meet">
        <ref name="svg.PreserveAspectRatioSpec"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="zoomAndPan" a:defaultValue="magnify">
        <choice>
          <value>disable</value>
          <value>magnify</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="viewTarget"/>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Scripting 
     ============================================================== -->
  <define name="svg.script">
    <element name="script">
      <ref name="svg.attlist-script"/>
      <text/>
    </element>
  </define>
  <define name="svg.attlist-script" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <attribute name="type">
      <ref name="svg.ContentType"/>
    </attribute>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Animation 
     ============================================================== -->
  <define name="svg.animElementAttrs">
    <ref name="svg.xlinkRefAttrs"/>
    <optional>
      <attribute name="xlink:href">
        <ref name="svg.URI"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.animAttributeAttrs">
    <attribute name="attributeName"/>
    <optional>
      <attribute name="attributeType"/>
    </optional>
  </define>
  <define name="svg.animTimingAttrs">
    <optional>
      <attribute name="begin"/>
    </optional>
    <optional>
      <attribute name="dur"/>
    </optional>
    <optional>
      <attribute name="end"/>
    </optional>
    <optional>
      <attribute name="min"/>
    </optional>
    <optional>
      <attribute name="max"/>
    </optional>
    <optional>
      <attribute name="restart" a:defaultValue="always">
        <choice>
          <value>always</value>
          <value>never</value>
          <value>whenNotActive</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="repeatCount"/>
    </optional>
    <optional>
      <attribute name="repeatDur"/>
    </optional>
    <optional>
      <attribute name="fill" a:defaultValue="remove">
        <choice>
          <value>remove</value>
          <value>freeze</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.animValueAttrs">
    <optional>
      <attribute name="calcMode" a:defaultValue="linear">
        <choice>
          <value>discrete</value>
          <value>linear</value>
          <value>paced</value>
          <value>spline</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="values"/>
    </optional>
    <optional>
      <attribute name="keyTimes"/>
    </optional>
    <optional>
      <attribute name="keySplines"/>
    </optional>
    <optional>
      <attribute name="from"/>
    </optional>
    <optional>
      <attribute name="to"/>
    </optional>
    <optional>
      <attribute name="by"/>
    </optional>
  </define>
  <define name="svg.animAdditionAttrs">
    <optional>
      <attribute name="additive" a:defaultValue="replace">
        <choice>
          <value>replace</value>
          <value>sum</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="accumulate" a:defaultValue="none">
        <choice>
          <value>none</value>
          <value>sum</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="svg.animateExt">
    <notAllowed/>
  </define>
  <define name="svg.animate">
    <element name="animate">
      <ref name="svg.attlist-animate"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.animateExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-animate" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <ref name="svg.animationEvents"/>
    <ref name="svg.animElementAttrs"/>
    <ref name="svg.animAttributeAttrs"/>
    <ref name="svg.animTimingAttrs"/>
    <ref name="svg.animValueAttrs"/>
    <ref name="svg.animAdditionAttrs"/>
  </define>
  <define name="svg.setExt">
    <notAllowed/>
  </define>
  <define name="svg.set">
    <element name="set">
      <ref name="svg.attlist-set"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.setExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-set" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <ref name="svg.animationEvents"/>
    <ref name="svg.animElementAttrs"/>
    <ref name="svg.animAttributeAttrs"/>
    <ref name="svg.animTimingAttrs"/>
    <optional>
      <attribute name="to"/>
    </optional>
  </define>
  <define name="svg.animateMotionExt">
    <empty/>
  </define>
  <define name="svg.animateMotion">
    <element name="animateMotion">
      <ref name="svg.attlist-animateMotion"/>
      <ref name="svg.descTitleMetadata"/>
      <optional>
        <ref name="svg.mpath"/>
      </optional>
      <ref name="svg.animateMotionExt"/>
    </element>
  </define>
  <define name="svg.attlist-animateMotion" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <ref name="svg.animationEvents"/>
    <ref name="svg.animElementAttrs"/>
    <ref name="svg.animTimingAttrs"/>
    <optional>
      <attribute name="calcMode" a:defaultValue="paced">
        <choice>
          <value>discrete</value>
          <value>linear</value>
          <value>paced</value>
          <value>spline</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="values"/>
    </optional>
    <optional>
      <attribute name="keyTimes"/>
    </optional>
    <optional>
      <attribute name="keySplines"/>
    </optional>
    <optional>
      <attribute name="from"/>
    </optional>
    <optional>
      <attribute name="to"/>
    </optional>
    <optional>
      <attribute name="by"/>
    </optional>
    <ref name="svg.animAdditionAttrs"/>
    <optional>
      <attribute name="path"/>
    </optional>
    <optional>
      <attribute name="keyPoints"/>
    </optional>
    <optional>
      <attribute name="rotate"/>
    </optional>
    <optional>
      <attribute name="origin"/>
    </optional>
  </define>
  <define name="svg.mpathExt">
    <notAllowed/>
  </define>
  <define name="svg.mpath">
    <element name="mpath">
      <ref name="svg.attlist-mpath"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.mpathExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-mpath" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.animateColorExt">
    <notAllowed/>
  </define>
  <define name="svg.animateColor">
    <element name="animateColor">
      <ref name="svg.attlist-animateColor"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.animateColorExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-animateColor" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <ref name="svg.animationEvents"/>
    <ref name="svg.animElementAttrs"/>
    <ref name="svg.animAttributeAttrs"/>
    <ref name="svg.animTimingAttrs"/>
    <ref name="svg.animValueAttrs"/>
    <ref name="svg.animAdditionAttrs"/>
  </define>
  <define name="svg.animateTransformExt">
    <notAllowed/>
  </define>
  <define name="svg.animateTransform">
    <element name="animateTransform">
      <ref name="svg.attlist-animateTransform"/>
      <choice>
        <ref name="svg.descTitleMetadata"/>
        <ref name="svg.animateTransformExt"/>
      </choice>
    </element>
  </define>
  <define name="svg.attlist-animateTransform" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <ref name="svg.animationEvents"/>
    <ref name="svg.animElementAttrs"/>
    <ref name="svg.animAttributeAttrs"/>
    <ref name="svg.animTimingAttrs"/>
    <ref name="svg.animValueAttrs"/>
    <ref name="svg.animAdditionAttrs"/>
    <optional>
      <attribute name="type" a:defaultValue="translate">
        <choice>
          <value>translate</value>
          <value>scale</value>
          <value>rotate</value>
          <value>skewX</value>
          <value>skewY</value>
        </choice>
      </attribute>
    </optional>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Fonts 
     ============================================================== -->
  <define name="svg.fontExt">
    <notAllowed/>
  </define>
  <define name="svg.font">
    <element name="font">
      <ref name="svg.attlist-font"/>
      <ref name="svg.descTitleMetadata"/>
      <ref name="svg.font-face"/>
      <ref name="svg.missing-glyph"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.glyph"/>
          <ref name="svg.hkern"/>
          <ref name="svg.vkern"/>
          <ref name="svg.fontExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-font" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="horiz-origin-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="horiz-origin-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <attribute name="horiz-adv-x">
      <ref name="svg.Number"/>
    </attribute>
    <optional>
      <attribute name="vert-origin-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-origin-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-adv-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.glyphExt">
    <notAllowed/>
  </define>
  <define name="svg.glyph">
    <element name="glyph">
      <ref name="svg.attlist-glyph"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.glyphExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-glyph" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="unicode"/>
    </optional>
    <optional>
      <attribute name="glyph-name"/>
    </optional>
    <optional>
      <attribute name="d">
        <ref name="svg.PathData"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="orientation"/>
    </optional>
    <optional>
      <attribute name="arabic-form"/>
    </optional>
    <optional>
      <attribute name="lang">
        <ref name="svg.LanguageCodes"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="horiz-adv-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-origin-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-origin-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-adv-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.missing-glyphExt">
    <notAllowed/>
  </define>
  <define name="svg.missing-glyph">
    <element name="missing-glyph">
      <ref name="svg.attlist-missing-glyph"/>
      <zeroOrMore>
        <choice>
          <ref name="svg.desc"/>
          <ref name="svg.title"/>
          <ref name="svg.metadata"/>
          <ref name="svg.defs"/>
          <ref name="svg.path"/>
          <ref name="svg.text"/>
          <ref name="svg.rect"/>
          <ref name="svg.circle"/>
          <ref name="svg.ellipse"/>
          <ref name="svg.line"/>
          <ref name="svg.polyline"/>
          <ref name="svg.polygon"/>
          <ref name="svg.use"/>
          <ref name="svg.image"/>
          <ref name="svg.svg"/>
          <ref name="svg.g"/>
          <ref name="svg.view"/>
          <ref name="svg.switch"/>
          <ref name="svg.a"/>
          <ref name="svg.altGlyphDef"/>
          <ref name="svg.script"/>
          <ref name="svg.style"/>
          <ref name="svg.symbol"/>
          <ref name="svg.marker"/>
          <ref name="svg.clipPath"/>
          <ref name="svg.mask"/>
          <ref name="svg.linearGradient"/>
          <ref name="svg.radialGradient"/>
          <ref name="svg.pattern"/>
          <ref name="svg.filter"/>
          <ref name="svg.cursor"/>
          <ref name="svg.font"/>
          <ref name="svg.animate"/>
          <ref name="svg.set"/>
          <ref name="svg.animateMotion"/>
          <ref name="svg.animateColor"/>
          <ref name="svg.animateTransform"/>
          <ref name="svg.color-profile"/>
          <ref name="svg.font-face"/>
          <ref name="svg.missing-glyphExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-missing-glyph" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="d">
        <ref name="svg.PathData"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="horiz-adv-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-origin-x">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-origin-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="vert-adv-y">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.hkern">
    <element name="hkern">
      <ref name="svg.attlist-hkern"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-hkern" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="u1"/>
    </optional>
    <optional>
      <attribute name="g1"/>
    </optional>
    <optional>
      <attribute name="u2"/>
    </optional>
    <optional>
      <attribute name="g2"/>
    </optional>
    <attribute name="k">
      <ref name="svg.Number"/>
    </attribute>
  </define>
  <define name="svg.vkern">
    <element name="vkern">
      <ref name="svg.attlist-vkern"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-vkern" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="u1"/>
    </optional>
    <optional>
      <attribute name="g1"/>
    </optional>
    <optional>
      <attribute name="u2"/>
    </optional>
    <optional>
      <attribute name="g2"/>
    </optional>
    <attribute name="k">
      <ref name="svg.Number"/>
    </attribute>
  </define>
  <define name="svg.font-face">
    <element name="font-face">
      <ref name="svg.attlist-font-face"/>
      <ref name="svg.descTitleMetadata"/>
      <optional>
        <ref name="svg.font-face-src"/>
      </optional>
      <optional>
        <ref name="svg.definition-src"/>
      </optional>
    </element>
  </define>
  <define name="svg.attlist-font-face" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="font-family"/>
    </optional>
    <optional>
      <attribute name="font-style"/>
    </optional>
    <optional>
      <attribute name="font-variant"/>
    </optional>
    <optional>
      <attribute name="font-weight"/>
    </optional>
    <optional>
      <attribute name="font-stretch"/>
    </optional>
    <optional>
      <attribute name="font-size"/>
    </optional>
    <optional>
      <attribute name="unicode-range"/>
    </optional>
    <optional>
      <attribute name="units-per-em">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="panose-1"/>
    </optional>
    <optional>
      <attribute name="stemv">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="stemh">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="slope">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="cap-height">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="x-height">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="accent-height">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="ascent">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="descent">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="widths"/>
    </optional>
    <optional>
      <attribute name="bbox"/>
    </optional>
    <optional>
      <attribute name="ideographic">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="alphabetic">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="mathematical">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="hanging">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="v-ideographic">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="v-alphabetic">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="v-mathematical">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="v-hanging">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="underline-position">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="underline-thickness">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="strikethrough-position">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="strikethrough-thickness">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="overline-position">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="overline-thickness">
        <ref name="svg.Number"/>
      </attribute>
    </optional>
  </define>
  <define name="svg.font-face-src">
    <element name="font-face-src">
      <ref name="svg.attlist-font-face-src"/>
      <oneOrMore>
        <choice>
          <ref name="svg.font-face-uri"/>
          <ref name="svg.font-face-name"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <define name="svg.attlist-font-face-src" combine="interleave">
    <ref name="svg.stdAttrs"/>
  </define>
  <define name="svg.font-face-uri">
    <element name="font-face-uri">
      <ref name="svg.attlist-font-face-uri"/>
      <zeroOrMore>
        <ref name="svg.font-face-format"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-font-face-uri" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
  </define>
  <define name="svg.font-face-format">
    <element name="font-face-format">
      <ref name="svg.attlist-font-face-format"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-font-face-format" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="string"/>
    </optional>
  </define>
  <define name="svg.font-face-name">
    <element name="font-face-name">
      <ref name="svg.attlist-font-face-name"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-font-face-name" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <optional>
      <attribute name="name"/>
    </optional>
  </define>
  <define name="svg.definition-src">
    <element name="definition-src">
      <ref name="svg.attlist-definition-src"/>
      <empty/>
    </element>
  </define>
  <define name="svg.attlist-definition-src" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.xlinkRefAttrs"/>
    <attribute name="xlink:href">
      <ref name="svg.URI"/>
    </attribute>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Metadata 
     ============================================================== -->
  <define name="svg.metadataExt">
    <notAllowed/>
  </define>
  <define name="svg.metadata">
    <element name="metadata">
      <ref name="svg.attlist-metadata"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.metadataExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-metadata" combine="interleave">
    <ref name="svg.stdAttrs"/>
  </define>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Extensibility 
     ============================================================== -->
  <define name="svg.foreignObjectExt">
    <notAllowed/>
  </define>
  <define name="svg.foreignObject">
    <element name="foreignObject">
      <ref name="svg.attlist-foreignObject"/>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="svg.ceExt"/>
          <ref name="svg.foreignObjectExt"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="svg.attlist-foreignObject" combine="interleave">
    <ref name="svg.stdAttrs"/>
    <ref name="svg.testAttrs"/>
    <ref name="svg.langSpaceAttrs"/>
    <optional>
      <attribute name="externalResourcesRequired">
        <ref name="svg.Boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="class">
        <ref name="svg.ClassList"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="style">
        <ref name="svg.StyleSheet"/>
      </attribute>
    </optional>
    <ref name="svg.PresentationAttributes-All"/>
    <optional>
      <attribute name="transform">
        <ref name="svg.TransformList"/>
      </attribute>
    </optional>
    <ref name="svg.graphicsElementEvents"/>
    <optional>
      <attribute name="x">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="y">
        <ref name="svg.Coordinate"/>
      </attribute>
    </optional>
    <attribute name="width">
      <ref name="svg.Length"/>
    </attribute>
    <attribute name="height">
      <ref name="svg.Length"/>
    </attribute>
    <ref name="svg.StructuredText"/>
  </define>
</grammar>
