UNPKG

testeranto

Version:

the AI powered BDD test framework for typescript projects

3,038 lines 131 kB
<!--  edited with XML Spy v4.0.1 U (http://www.xmlspy.com) by Chris Lilley (W3C Staff)  -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:svg="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.w3.org/2000/svg"
  elementFormDefault="unqualified" attributeFormDefault="unqualified" xml:lang="en">
  <!--  don't declare the XML namespace; it is predeclared and redeclaring it upsets some software  -->
  <import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd" />
  <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
  <!--  simpleTypes  -->
  <simpleType name="BaselineShiftValueType">
    <annotation>
      <documentation>The actual definition is baseline | sub | super | <percentage> | <length> |
        inherit not sure that union can do this </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  SVG BooleanType not needed, already defined by XML Schema  -->
  <simpleType name="ClassListType">
    <annotation>
      <documentation>Space-separated list of classes</documentation>
    </annotation>
    <list itemType="string" />
  </simpleType>
  <simpleType name="ClipValueType">
    <annotation>
      <documentation>
        <shape> | auto | inherit </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="ClipPathValueType">
    <annotation>
      <documentation><uri> | none | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="ClipFillRuleType">
    <annotation>
      <documentation>'clip-rule' or fill-rule property/attribute value </documentation>
    </annotation>
    <restriction base="string">
      <enumeration value="evenodd" />
      <enumeration value="nonzero" />
      <enumeration value="inherit" />
    </restriction>
  </simpleType>
  <simpleType name="ContentTypeType">
    <annotation>
      <documentation source="http://www.ietf.org/rfc/rfc2045.txt">media type, as per [RFC2045]</documentation>
      <documentation>media type, as per [RFC2045] </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="CoordinateType">
    <annotation>
      <documentation source="http://www.w3.org/TR/SVG/types.html#DataTypeCoordinate">a <co-ordinate></documentation>
      <documentation>a coordinate, which is a number optionally followed immediately by a unit
        identifier. Perhaps it is possible to represent this as a union by declaring unit idenifiers
        as a type?</documentation>
    </annotation>
    <restriction base="string">
      <pattern
        value="((((\+|\-)?((\d+)))|((\+|\-)?(((((\d+)?\.(\d+))|((\d+)\.))([eE](\+|\-)?(\d+))?)|((\d+)([eE](\+|\-)?(\d+))))))(em|ex|px|pt|pc|cm|mm|in|%)?)" />
    </restriction>
  </simpleType>
  <simpleType name="CoordinatesType">
    <annotation>
      <documentation>a space separated list of CoordinateType. Punt to 'string' for now</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="ColorType">
    <annotation>
      <documentation source="http://www.w3.org/TR/SVG/types.html#DataTypeColor">a CSS2 Color </documentation>
      <documentation>Color as defined in CSS2 and XSL 1.0 plus additional recognised color keyword
        names (the 'X11 colors')</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="CursorValueType">
    <annotation>
      <documentation>Value is an optional comma-separated list orf uri references followed by one
        token from an enumerated list. </documentation>
      <documentation> [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize |
        ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize| text | wait
        | help ] ] | inherit </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="EnableBackgroundValueType">
    <annotation>
      <documentation>accumulate | new [ <x>
        <y>
        <width>
        <height> ] | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="ExtensionListType">
    <annotation>
      <documentation>extension list specification </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="FeatureListType">
    <annotation>
      <documentation>feature list specification </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="FilterValueType">
    <annotation>
      <documentation><uri> | none | inherit </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="FontFamilyValueType">
    <annotation>
      <documentation>[[ <family-name> | <generic-family> ],]* [<family-name> | <generic-family>] |
        inherit</documentation>
      <documentation>'font-family' property/attribute value (i.e., list of fonts) </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="FontSizeValueType">
    <annotation>
      <documentation>'font-size' property/attribute value </documentation>
      <documentation><absolute-size> | <relative-size> | <length> | <percentage> | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="FontSizeAdjustValueType">
    <annotation>
      <documentation>'font-size-adjust' property/attribute value </documentation>
      <documentation><number> | none | inherit </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="GlyphOrientationHorizontalValueType">
    <annotation>
      <documentation>'glyph-orientation-horizontal' property/attribute value (e.g., <angle>)</documentation>
      <documentation><angle> | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="GlyphOrientationVerticalValueType">
    <annotation>
      <documentation>'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>)</documentation>
      <documentation>auto | <angle> | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  no need to declare IntegerType as XML Schema defines integers  -->
  <simpleType name="KerningValue">
    <annotation>
      <documentation>'kerning' property/attribute value (e.g., auto | <length>)</documentation>
      <documentation>auto | <length> | inherit </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="LanguageCodeType">
    <annotation>
      <documentation>a language code, as per [RFC3066]</documentation>
      <documentation source="http://www.ietf.org/rfc/rfc3066.txt" />
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="LanguageCodesType">
    <annotation>
      <documentation>a comma-separated list of language codes, as per [RFC3066]</documentation>
      <documentation source="http://www.ietf.org/rfc/rfc3066.txt" />
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="LengthType">
    <annotation>
      <documentation>a <length></documentation>
    </annotation>
    <restriction base="string">
      <pattern
        value="((((\+|\-)?((\d+)))|((\+|\-)?(((((\d+)?\.(\d+))|((\d+)\.))([eE](\+|\-)?(\d+))?)|((\d+)([eE](\+|\-)?(\d+))))))(em|ex|px|pt|pc|cm|mm|in|%)?)" />
    </restriction>
  </simpleType>
  <simpleType name="LengthsType">
    <annotation>
      <documentation>a list of <length>s</documentation>
    </annotation>
    <restriction base="string" />
    <!--  make a regexp for this one  -->
  </simpleType>
  <simpleType name="LinkTargetType">
    <annotation>
      <documentation>link to this target</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="MarkerValueType">
    <annotation>
      <documentation>'marker' property/attribute value (e.g., 'none', %URI;)</documentation>
    </annotation>
    <restriction base="string" />
    <!--  need to check this one, its a shorthand value  -->
  </simpleType>
  <simpleType name="MaskValueType">
    <annotation>
      <documentation>'mask' property/attribute value (e.g., 'none', %URI;)</documentation>
      <documentation><uri> | none | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="MediaDescType">
    <annotation>
      <documentation>comma-separated list of media descriptors.</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  no need to define NumberType as XML Schema has double  -->
  <simpleType name="NumberOptionalNumberType">
    <annotation>
      <documentation>list of <number>s, but at least one and at most two</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="NumberOrPercentageType">
    <annotation>
      <documentation>a <number> or a <percentage> </documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="NumbersType">
    <annotation>
      <documentation>list of <number>s</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="OpacityValueType">
    <annotation>
      <documentation>opacity value (e.g., <number>) </documentation>
      <documentation><alphavalue> | inherit</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="PaintType">
    <annotation>
      <documentation>a 'fill' or 'stroke' property/attribute value</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="PathDataType">
    <annotation>
      <documentation>a path data specification</documentation>
      <documentation source="http://www.w3.org/TR/SVG/paths.html" />
      <documentation>Yes, of course this was generated by a program!</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="PointsType">
    <annotation>
      <documentation>a list of points</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="PreserveAspectRatioSpecType">
    <annotation>
      <documentation>'preserveAspectRatio' attribute specification</documentation>
    </annotation>
    <restriction base="string">
      <pattern value="(\s*(" none"|x(" Min"|" Mid"|" Max")y(" Min"|" Mid"|" Max"))\s+(" meet"|" slice")?\s*)" />
    </restriction>
  </simpleType>
  <simpleType name="ScriptType">
    <annotation>
      <documentation>script expression</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="SpacingValueType">
    <annotation>
      <documentation>'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>
        )</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="StrokeDashArrayValueType">
    <annotation>
      <documentation>'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s)</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="StrokeDashOffsetValueType">
    <annotation>
      <documentation>'stroke-dashoffset' property/attribute value (e.g., 'none', >length>)</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="StrokeMiterLimitValueType">
    <annotation>
      <documentation>'stroke-miterlimit' property/attribute value (e.g., <number>)</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="StrokeWidthValueType">
    <annotation>
      <documentation>'stroke-width' property/attribute value (e.g., <length>)</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  <simpleType name="StructuredTextType" base="string"/> expanded  -->
  <simpleType name="StyleSheetType">
    <annotation>
      <documentation>style sheet data</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="SVGColorType">
    <annotation>
      <documentation>An SVG color value (sRGB plus optional ICC)</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  <simpleType name="TextType" base="string"/> not necessary (string)  -->
  <simpleType name="TextDecorationValueType">
    <annotation>
      <documentation>'text-decoration' property/attribute value (e.g., 'none', 'underline')</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <simpleType name="TransformListType">
    <annotation>
      <documentation>Yes, of course this was generated by a program!</documentation>
      <documentation>list of transforms</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <!--  <simpleType name="URIType" base="string"/> not necessary (use AnyURI)  -->
  <simpleType name="ViewBoxSpecType">
    <annotation>
      <documentation>'viewBox' attribute specification</documentation>
    </annotation>
    <restriction base="string" />
  </simpleType>
  <attributeGroup name="stdAttrs">
    <annotation>
      <documentation>All elements have an ID</documentation>
    </annotation>
    <attribute name="id" type="ID" use="optional" />
    <attribute ref="xml:base" type="anyURI" use="optional" />
  </attributeGroup>
  <attributeGroup name="langSpaceAttrs">
    <annotation>
      <documentation>Common attributes for elements that might contain character data content</documentation>
    </annotation>
    <attribute ref="xml:lang" use="optional" />
    <attribute ref="xml:space" use="optional" />
  </attributeGroup>
  <attributeGroup name="testAttrs">
    <annotation>
      <documentation>Common attributes to check for system capabilities</documentation>
    </annotation>
    <attribute name="requiredFeatures" type="svg:FeatureListType" use="optional" />
    <attribute name="requiredExtensions" type="svg:ExtensionListType" use="optional" />
    <attribute name="systemLanguage" type="svg:LanguageCodesType" use="optional" />
  </attributeGroup>
  <attributeGroup name="xlinkRefAttrs">
    <annotation>
      <documentation>For most uses of URI referencing: standard XLink attributes other than
        xlink:href</documentation>
    </annotation>
    <attribute ref="xlink:type" fixed="simple" />
    <attribute ref="xlink:role" />
    <attribute ref="xlink:arcrole" />
    <attribute ref="xlink:title" />
    <attribute ref="xlink:show" default="other" />
    <attribute ref="xlink:actuate" />
  </attributeGroup>
  <attributeGroup name="xlinkRefAttrsEmbed">
    <annotation>
      <documentation>Standard XLink attributes for uses of URI referencing where xlink:show is
        'embed'</documentation>
    </annotation>
    <attribute ref="xlink:type" fixed="simple" />
    <attribute ref="xlink:role" />
    <attribute ref="xlink:arcrole" />
    <attribute ref="xlink:title" />
    <attribute ref="xlink:show" />
    <attribute ref="xlink:actuate" />
  </attributeGroup>
  <attributeGroup name="graphicsElementEvents">
    <attribute name="onfocusin" type="svg:ScriptType" use="optional" />
    <attribute name="onfocusout" type="svg:ScriptType" use="optional" />
    <attribute name="onactivate" type="svg:ScriptType" use="optional" />
    <attribute name="onclick" type="svg:ScriptType" use="optional" />
    <attribute name="onmousedown" type="svg:ScriptType" use="optional" />
    <attribute name="onmouseup" type="svg:ScriptType" use="optional" />
    <attribute name="onmouseover" type="svg:ScriptType" use="optional" />
    <attribute name="onmousemove" type="svg:ScriptType" use="optional" />
    <attribute name="onmouseout" type="svg:ScriptType" use="optional" />
    <attribute name="onload" type="svg:ScriptType" use="optional" />
  </attributeGroup>
  <attributeGroup name="documentEvents">
    <attribute name="onunload" type="svg:ScriptType" use="optional" />
    <attribute name="onabort" type="svg:ScriptType" use="optional" />
    <attribute name="onerror" type="svg:ScriptType" use="optional" />
    <attribute name="onresize" type="svg:ScriptType" use="optional" />
    <attribute name="onscroll" type="svg:ScriptType" use="optional" />
    <attribute name="onzoom" type="svg:ScriptType" use="optional" />
  </attributeGroup>
  <attributeGroup name="animationEvents">
    <attribute name="onbegin" type="svg:ScriptType" use="optional" />
    <attribute name="onend" type="svg:ScriptType" use="optional" />
    <attribute name="onrepeat" type="svg:ScriptType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Color">
    <annotation>
      <documentation>The following presentation attributes have to do with specifying color.</documentation>
    </annotation>
    <attribute name="color" type="svg:ColorType" use="optional" />
    <attribute name="color-interpolation" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="sRGB" />
          <enumeration value="linearRGB" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="color-rendering" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="optimizeSpeed" />
          <enumeration value="optimizeQuality" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Containers">
    <annotation>
      <documentation>The following presentation attributes apply to container elements</documentation>
    </annotation>
    <attribute name="enable-background" type="svg:EnableBackgroundValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-feFlood">
    <annotation>
      <documentation>The following presentation attributes apply to 'feFlood' elements</documentation>
    </annotation>
    <attribute name="flood-color" type="svg:SVGColorType" use="optional" />
    <attribute name="flood-opacity" type="svg:OpacityValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-FilterPrimitives">
    <annotation>
      <documentation>The following presentation attributes apply to filter primitives</documentation>
    </annotation>
    <attribute name="color-interpolation-filters" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="sRGB" />
          <enumeration value="linearRGB" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-FillStroke">
    <annotation>
      <documentation>The following presentation attributes apply to filling and stroking operations</documentation>
    </annotation>
    <attribute name="fill" type="svg:PaintType" use="optional" />
    <attribute name="fill-opacity" type="svg:OpacityValueType" use="optional" />
    <attribute name="fill-rule" type="svg:ClipFillRuleType" use="optional" />
    <attribute name="stroke" type="svg:PaintType" use="optional" />
    <attribute name="stroke-dasharray" type="svg:StrokeDashArrayValueType" use="optional" />
    <attribute name="stroke-dashoffset" type="svg:StrokeDashOffsetValueType" use="optional" />
    <attribute name="stroke-linecap" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="butt" />
          <enumeration value="round" />
          <enumeration value="square" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="stroke-linejoin" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="miter" />
          <enumeration value="round" />
          <enumeration value="bevel" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="stroke-miterlimit" type="svg:StrokeMiterLimitValueType" use="optional" />
    <attribute name="stroke-opacity" type="svg:OpacityValueType" use="optional" />
    <attribute name="stroke-width" type="svg:StrokeWidthValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-FontSpecification">
    <annotation>
      <documentation>The following presentation attributes have to do with selecting a font to use</documentation>
    </annotation>
    <attribute name="font-family" type="svg:FontFamilyValueType" use="optional" />
    <attribute name="font-size" type="svg:FontSizeValueType" use="optional" />
    <attribute name="font-size-adjust" type="svg:FontSizeAdjustValueType" use="optional" />
    <attribute name="font-stretch" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="wider" />
          <enumeration value="narrower" />
          <enumeration value="ultra-condensed" />
          <enumeration value="extra-condensed" />
          <enumeration value="condensed" />
          <enumeration value="semi-condensed" />
          <enumeration value="semi-expanded" />
          <enumeration value="expanded" />
          <enumeration value="extra-expanded" />
          <enumeration value="ultra-expanded" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="font-style" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="italic" />
          <enumeration value="oblique" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="font-variant" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="small-caps" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="font-weight" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="bold" />
          <enumeration value="bolder" />
          <enumeration value="lighter" />
          <enumeration value="100" />
          <enumeration value="200" />
          <enumeration value="300" />
          <enumeration value="400" />
          <enumeration value="500" />
          <enumeration value="600" />
          <enumeration value="700" />
          <enumeration value="800" />
          <enumeration value="900" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Gradients">
    <annotation>
      <documentation>The following presentation attributes apply to gradient 'stop' elements</documentation>
    </annotation>
    <attribute name="stop-color" type="svg:SVGColorType" use="optional" />
    <attribute name="stop-opacity" type="svg:OpacityValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Graphics">
    <annotation>
      <documentation>The following presentation attributes apply to graphics elements</documentation>
    </annotation>
    <attribute name="clip-path" type="svg:ClipPathValueType" use="optional" />
    <attribute name="clip-rule" type="svg:ClipFillRuleType" use="optional" />
    <attribute name="cursor" type="svg:CursorValueType" use="optional" />
    <attribute name="display" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="inline" />
          <enumeration value="block" />
          <enumeration value="list-item" />
          <enumeration value="run-in" />
          <enumeration value="compact" />
          <enumeration value="marker" />
          <enumeration value="table" />
          <enumeration value="inline-table" />
          <enumeration value="table-row-group" />
          <enumeration value="table-header-group" />
          <enumeration value="table-footer-group" />
          <enumeration value="table-row" />
          <enumeration value="table-column-group" />
          <enumeration value="table-column" />
          <enumeration value="table-cell" />
          <enumeration value="table-caption" />
          <enumeration value="none" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="filter" type="svg:FilterValueType" use="optional" />
    <attribute name="image-rendering" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="optimizeSpeed" />
          <enumeration value="optimizeQuality" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="mask" type="svg:MaskValueType" use="optional" />
    <attribute name="opacity" type="svg:OpacityValueType" use="optional" />
    <attribute name="pointer-events" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="visiblePainted" />
          <enumeration value="visibleFill" />
          <enumeration value="visibleStroke" />
          <enumeration value="visibleFillStroke" />
          <enumeration value="visible" />
          <enumeration value="painted" />
          <enumeration value="fill" />
          <enumeration value="stroke" />
          <enumeration value="fillstroke" />
          <enumeration value="all" />
          <enumeration value="none" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="shape-rendering" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="optimizeSpeed" />
          <enumeration value="crispEdges" />
          <enumeration value="geometricPrecision" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="text-rendering" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="optimizeSpeed" />
          <enumeration value="optimizeLegibility" />
          <enumeration value="geometricPrecision" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="visibility" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="visible" />
          <enumeration value="hidden" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Images">
    <annotation>
      <documentation>The following presentation attributes apply to 'image' elements</documentation>
    </annotation>
    <attribute name="color-profile" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-LightingEffects">
    <annotation>
      <documentation>The following presentation attributes apply to 'feDiffuseLighting' and
        'feSpecularLighting' elements</documentation>
    </annotation>
    <attribute name="lighting-color" type="svg:SVGColorType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Markers">
    <annotation>
      <documentation>The following presentation attributes apply to marker operations</documentation>
    </annotation>
    <attribute name="marker-start" type="svg:MarkerValueType" use="optional" />
    <attribute name="marker-mid" type="svg:MarkerValueType" use="optional" />
    <attribute name="marker-end" type="svg:MarkerValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-TextContentElements">
    <annotation>
      <documentation>The following presentation attributes apply to text content elements</documentation>
    </annotation>
    <attribute name="alignment-baseline" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="baseline" />
          <enumeration value="top" />
          <enumeration value="before-edge" />
          <enumeration value="text-top" />
          <enumeration value="text-before-edge" />
          <enumeration value="middle" />
          <enumeration value="bottom" />
          <enumeration value="after-edge" />
          <enumeration value="text-bottom" />
          <enumeration value="text-after-edge" />
          <enumeration value="ideographic" />
          <enumeration value="lower" />
          <enumeration value="hanging" />
          <enumeration value="mathematical" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="baseline-shift" type="svg:BaselineShiftValueType" use="optional" />
    <attribute name="direction" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="ltr" />
          <enumeration value="rtl" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="dominant-baseline" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="autosense-script" />
          <enumeration value="no-change" />
          <enumeration value="reset" />
          <enumeration value="ideographic" />
          <enumeration value="lower" />
          <enumeration value="hanging" />
          <enumeration value="mathematical" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="glyph-orientation-horizontal" type="svg:GlyphOrientationHorizontalValueType"
      use="optional" />
    <attribute name="glyph-orientation-vertical" type="svg:GlyphOrientationVerticalValueType"
      use="optional" />
    <attribute name="letter-spacing" type="svg:SpacingValueType" use="optional" />
    <attribute name="text-anchor" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="start" />
          <enumeration value="middle" />
          <enumeration value="end" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="text-decoration" type="svg:TextDecorationValueType" use="optional" />
    <attribute name="unicode-bidi" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="embed" />
          <enumeration value="bidi-override" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="word-spacing" type="svg:SpacingValueType" use="optional" />
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-TextElements">
    <annotation>
      <documentation>The following presentation attributes apply to 'text' elements</documentation>
    </annotation>
    <attribute name="writing-mode" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="lr-tb" />
          <enumeration value="rl-tb" />
          <enumeration value="tb-rl" />
          <enumeration value="lr" />
          <enumeration value="rl" />
          <enumeration value="tb" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-Viewports">
    <annotation>
      <documentation>The following presentation attributes apply to elements that establish
        viewports</documentation>
    </annotation>
    <attribute name="clip" type="svg:ClipValueType" use="optional" />
    <attribute name="overflow" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="visible" />
          <enumeration value="hidden" />
          <enumeration value="scroll" />
          <enumeration value="auto" />
          <enumeration value="inherit" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="PresentationAttributes-All">
    <annotation>
      <documentation>The following represents the complete list of presentation attributes</documentation>
    </annotation>
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-Containers" />
    <attributeGroup ref="svg:PresentationAttributes-feFlood" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FilterPrimitives" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Gradients" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Images" />
    <attributeGroup ref="svg:PresentationAttributes-LightingEffects" />
    <attributeGroup ref="svg:PresentationAttributes-Markers" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:PresentationAttributes-TextElements" />
    <attributeGroup ref="svg:PresentationAttributes-Viewports" />
  </attributeGroup>
  <attributeGroup name="filter_primitive_attributes">
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="optional" />
    <attribute name="height" type="svg:LengthType" use="optional" />
    <attribute name="result" type="string" use="optional" />
  </attributeGroup>
  <attributeGroup name="filter_primitive_attributes_with_in">
    <attributeGroup ref="svg:filter_primitive_attributes" />
    <attribute name="in" type="string" use="optional" />
  </attributeGroup>
  <attributeGroup name="component_transfer_function_attributes">
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="identity" />
          <enumeration value="table" />
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="gamma" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="tableValues" type="string" use="optional" />
    <attribute name="slope" type="double" use="optional" />
    <attribute name="intercept" type="double" use="optional" />
    <attribute name="amplitude" type="double" use="optional" />
    <attribute name="exponent" type="double" use="optional" />
    <attribute name="offset" type="double" use="optional" />
    <!--  here  -->
  </attributeGroup>
  <attributeGroup name="animElementAttrs">
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" type="anyURI" use="optional" />
  </attributeGroup>
  <attributeGroup name="animAttributeAttrs">
    <attribute name="attributeName" type="string" use="required" />
    <attribute name="attributeType" type="string" use="optional" />
  </attributeGroup>
  <attributeGroup name="animTargetAttrs">
    <attributeGroup ref="svg:animElementAttrs" />
    <attributeGroup ref="svg:animAttributeAttrs" />
  </attributeGroup>
  <attributeGroup name="animTimingAttrs">
    <attribute name="begin" type="string" use="optional" />
    <attribute name="dur" type="string" use="optional" />
    <attribute name="end" type="string" use="optional" />
    <attribute name="min" type="string" use="optional" />
    <attribute name="max" type="string" use="optional" />
    <attribute name="restart" default="always">
      <simpleType>
        <restriction base="string">
          <enumeration value="always" />
          <enumeration value="never" />
          <enumeration value="whenNotActive" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="repeatCount" type="string" use="optional" />
    <attribute name="repeatDur" type="string" use="optional" />
    <attribute name="fill" default="remove">
      <simpleType>
        <restriction base="string">
          <enumeration value="remove" />
          <enumeration value="freeze" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <attributeGroup name="animValueAttrs">
    <attribute name="calcMode" default="linear">
      <simpleType>
        <restriction base="string">
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="paced" />
          <enumeration value="spline" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="values" type="string" use="optional" />
    <attribute name="keyTimes" type="string" use="optional" />
    <attribute name="keySplines" type="string" use="optional" />
    <attribute name="from" type="string" use="optional" />
    <attribute name="to" type="string" use="optional" />
    <attribute name="by" type="string" use="optional" />
    <!--  could add a pattern facet here  -->
  </attributeGroup>
  <attributeGroup name="animAdditionAttrs">
    <attribute name="additive" default="replace">
      <simpleType>
        <restriction base="string">
          <enumeration value="replace" />
          <enumeration value="sum" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="accumulate" default="none">
      <simpleType>
        <restriction base="string">
          <enumeration value="none" />
          <enumeration value="sum" />
        </restriction>
      </simpleType>
    </attribute>
  </attributeGroup>
  <group name="descTitleMetadata">
    <annotation>
      <documentation>A bit simpler than the DTD, but see commented-out alternative</documentation>
    </annotation>
    <all>
      <element name="desc" type="svg:descType" minOccurs="0" />
      <element name="title" type="svg:titleType" minOccurs="0" />
      <element name="metadata" type="svg:metadataType" minOccurs="0" />
    </all>
  </group>
  <!-- 
	<group name="descTitleMetadata">
	<annotation>
			<documentation>Captures the ordering restrictions of the DTD, but suffers from over complexity. No
  easy way to express this without a wrapper element.</documentation>
		</annotation>
		<choice minOccurs="0" maxOccurs="1">
			<sequence>
				<element name="desc" type="svg:descType"/>
				<choice minOccurs="0" maxOccurs="1">
					<sequence>
						<element name="title" type="svg:titleType"/>
						<element name="metadata" type="svg:metadataType" minOccurs="0" maxOccurs="1"/>
					</sequence>
					<sequence>
						<element name="metadata" type="svg:metadataType"/>
						<element name="title" type="svg:titleType" minOccurs="0" maxOccurs="1"/>
					</sequence>
				</choice>
			</sequence>
			<sequence>
				<element name="title" type="svg:titleType"/>
				<choice minOccurs="0" maxOccurs="1">
					<sequence>
						<element name="desc" type="svg:descType"/>
						<element name="metadata" type="svg:metadataType" minOccurs="0" maxOccurs="1"/>
					</sequence>
					<sequence>
						<element name="metadata" type="svg:metadataType"/>
						<element name="desc" type="svg:descType" minOccurs="0" maxOccurs="1"/>
					</sequence>
				</choice>
			</sequence>
			<sequence>
				<element name="metadata" type="svg:metadataType"/>
				<choice minOccurs="0" maxOccurs="1">
					<sequence>
						<element name="desc" type="svg:descType"/>
						<element name="title" type="svg:titleType" minOccurs="0" maxOccurs="1"/>
					</sequence>
					<sequence>
						<element name="title" type="svg:titleType"/>
						<element name="desc" type="svg:descType" minOccurs="0" maxOccurs="1"/>
					</sequence>
				</choice>
			</sequence>
		</choice>
	</group>
 -->
  <element name="svg" type="svg:svgType" />
  <element name="g" type="svg:gType" />
  <element name="defs" type="svg:defsType" />
  <element name="desc" type="svg:descType" />
  <element name="title" type="svg:titleType" />
  <element name="symbol" type="svg:symbolType" />
  <element name="use" type="svg:useType" />
  <element name="image" type="svg:imageType" />
  <element name="switch" type="svg:switchType" />
  <element name="style" type="svg:styleType" />
  <element name="path" type="svg:pathType" />
  <element name="rect" type="svg:rectType" />
  <element name="circle" type="svg:circleType" />
  <element name="ellipse" type="svg:ellipseType" />
  <element name="line" type="svg:lineType" />
  <element name="polyline" type="svg:polylineType" />
  <element name="polygon" type="svg:polygonType" />
  <element name="text" type="svg:textType" />
  <element name="tspan" type="svg:tspanType" />
  <element name="tref" type="svg:trefType" />
  <element name="textPath" type="svg:textPathType" />
  <element name="altGlyph" type="svg:altGlyphType" />
  <element name="altGlyphDef" type="svg:altGlyphDefType" />
  <element name="altGlyphItem" type="svg:altGlyphItemType" />
  <element name="glyphRef" type="svg:glyphRefType" />
  <element name="marker" type="svg:markerType" />
  <element name="color-profile" type="svg:color-profileType" />
  <element name="linearGradient" type="svg:linearGradientType" />
  <element name="radialGradient" type="svg:radialGradientType" />
  <element name="stop" type="svg:stopType" />
  <element name="pattern" type="svg:patternType" />
  <element name="clipPath" type="svg:clipPathType" />
  <element name="mask" type="svg:maskType" />
  <element name="filter" type="svg:filterType" />
  <element name="feDistantLight" type="svg:feDistantLightType" />
  <element name="fePointLight" type="svg:fePointLightType" />
  <element name="feSpotLight" type="svg:feSpotLightType" />
  <element name="feBlend" type="svg:feBlendType" />
  <element name="feColorMatrix" type="svg:feColorMatrixType" />
  <element name="feComponentTransfer" type="svg:feComponentTransferType" />
  <element name="feFuncR" type="svg:feFuncRType" />
  <element name="feFuncG" type="svg:feFuncGType" />
  <element name="feFuncB" type="svg:feFuncBType" />
  <element name="feFuncA" type="svg:feFuncAType" />
  <element name="feComposite" type="svg:feCompositeType" />
  <element name="feConvolveMatrix" type="svg:feConvolveMatrixType" />
  <element name="feDiffuseLighting" type="svg:feDiffuseLightingType" />
  <element name="feDisplacementMap" type="svg:feDisplacementMapType" />
  <element name="feFlood" type="svg:feFloodType" />
  <element name="feGaussianBlur" type="svg:feGaussianBlurType" />
  <element name="feImage" type="svg:feImageType" />
  <element name="feMerge" type="svg:feMergeType" />
  <element name="feMergeNode" type="svg:feMergeNodeType" />
  <element name="feMorphology" type="svg:feMorphologyType" />
  <element name="feOffset" type="svg:feOffsetType" />
  <element name="feSpecularLighting" type="svg:feSpecularLightingType" />
  <element name="feTile" type="svg:feTileType" />
  <element name="feTurbulence" type="svg:feTurbulenceType" />
  <element name="cursor" type="svg:cursorType" />
  <element name="a" type="svg:aType" />
  <element name="view" type="svg:viewType" />
  <element name="script" type="svg:scriptType" />
  <element name="animate" type="svg:animateType" />
  <element name="set" type="svg:setType" />
  <element name="animateMotion" type="svg:animateMotionType" />
  <element name="mpath" type="svg:mpathType" />
  <element name="animateColor" type="svg:animateColorType" />
  <element name="animateTransform" type="svg:animateTransformType" />
  <element name="font" type="svg:fontType" />
  <element name="glyph" type="svg:glyphType" />
  <element name="missing-glyph" type="svg:missing-glyphType" />
  <element name="hkern" type="svg:hkernType" />
  <element name="vkern" type="svg:vkernType" />
  <element name="font-face" type="svg:font-faceType" />
  <element name="font-face-src" type="svg:font-face-srcType" />
  <element name="font-face-uri" type="svg:font-face-uriType" />
  <element name="font-face-format" type="svg:font-face-formatType" />
  <element name="font-face-name" type="svg:font-face-nameType" />
  <element name="definition-src" type="svg:definition-srcType" />
  <element name="metadata" type="svg:metadataType" />
  <element name="foreignObject" type="svg:foreignObjectType" />
  <complexType name="svgType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
      <!--  should this be done with named child element collections? Especially for modularisation.  -->
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="viewBox" type="svg:ViewBoxSpecType" use="optional" />
    <attribute name="preserveAspectRatio" type="svg:PreserveAspectRatioSpecType"
      default="xMidYMid meet" />
    <attribute name="zoomAndPan" default="magnify">
      <simpleType>
        <restriction base="string">
          <enumeration value="disable" />
          <enumeration value="magnify" />
          <enumeration value="zoom" />
        </restriction>
      </simpleType>
    </attribute>
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attributeGroup ref="svg:documentEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="required" />
    <attribute name="height" type="svg:LengthType" use="required" />
    <attribute name="contentScriptType" type="svg:ContentTypeType" default="text/ecmascript" />
    <attribute name="contentStyleType" type="svg:ContentTypeType" default="text/css" />
  </complexType>
  <complexType name="gType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
  </complexType>
  <complexType name="defsType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
  </complexType>
  <complexType name="descType" mixed="true">
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attribute name="content" type="string" fixed="structured text" />
  </complexType>
  <complexType name="titleType" mixed="true">
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attribute name="content" type="string" fixed="structured text" />
  </complexType>
  <complexType name="symbolType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="viewBox" type="svg:ViewBoxSpecType" use="optional" />
    <attribute name="preserveAspectRatio" type="svg:PreserveAspectRatioSpecType"
      default="xMidYMid meet" />
    <attributeGroup ref="svg:graphicsElementEvents" />
  </complexType>
  <complexType name="useType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrsEmbed" />
    <attribute ref="xlink:href" use="required" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="optional" />
    <attribute name="height" type="svg:LengthType" use="optional" />
  </complexType>
  <complexType name="imageType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
        <!--  this should probably be a named element group  -->
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Viewports" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="required" />
    <attribute name="height" type="svg:LengthType" use="required" />
  </complexType>
  <complexType name="switchType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:path" />
        <element ref="svg:text" />
        <element ref="svg:rect" />
        <element ref="svg:circle" />
        <element ref="svg:ellipse" />
        <element ref="svg:line" />
        <element ref="svg:polyline" />
        <element ref="svg:polygon" />
        <element ref="svg:use" />
        <element ref="svg:image" />
        <element ref="svg:svg" />
        <element ref="svg:g" />
        <element ref="svg:switch" />
        <element ref="svg:a" />
        <element ref="svg:foreignObject" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
  </complexType>
  <complexType name="styleType" mixed="true">
    <attributeGroup ref="svg:stdAttrs" />
    <attribute ref="xml:space" fixed="preserve" />
    <attribute name="type" type="svg:ContentTypeType" use="required" />
    <attribute name="media" type="svg:MediaDescType" use="optional" />
    <attribute name="title" type="string" use="optional" />
  </complexType>
  <complexType name="pathType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Markers" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="d" type="svg:PathDataType" use="required" />
    <attribute name="pathLength" type="double" use="optional" />
  </complexType>
  <complexType name="rectType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="required" />
    <attribute name="height" type="svg:LengthType" use="required" />
    <attribute name="rx" type="svg:LengthType" use="optional" />
    <attribute name="ry" type="svg:LengthType" use="optional" />
  </complexType>
  <complexType name="circleType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="cx" type="svg:CoordinateType" use="optional" />
    <attribute name="cy" type="svg:CoordinateType" use="optional" />
    <attribute name="r" type="svg:LengthType" use="required" />
  </complexType>
  <complexType name="ellipseType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="cx" type="svg:CoordinateType" use="optional" />
    <attribute name="cy" type="svg:CoordinateType" use="optional" />
    <attribute name="rx" type="svg:LengthType" use="required" />
    <attribute name="ry" type="svg:LengthType" use="required" />
  </complexType>
  <complexType name="lineType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Markers" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x1" type="svg:CoordinateType" use="optional" />
    <attribute name="y1" type="svg:CoordinateType" use="optional" />
    <attribute name="x2" type="svg:CoordinateType" use="optional" />
    <attribute name="y2" type="svg:CoordinateType" use="optional" />
  </complexType>
  <complexType name="polylineType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Markers" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="points" type="svg:PointsType" use="required" />
  </complexType>
  <complexType name="polygonType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-Markers" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="points" type="svg:PointsType" use="required" />
  </complexType>
  <complexType name="textType" mixed="true">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:tspan" />
      <element ref="svg:tref" />
      <element ref="svg:textPath" />
      <element ref="svg:altGlyph" />
      <element ref="svg:a" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:PresentationAttributes-TextElements" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="textLength" type="svg:LengthType" use="optional" />
    <attribute name="lengthAdjust" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="spacing" />
          <enumeration value="spacingAndGlyphs" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="tspanType" mixed="true">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:tspan" />
      <element ref="svg:tref" />
      <element ref="svg:altGlyph" />
      <element ref="svg:a" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateColor" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinatesType" use="optional" />
    <attribute name="y" type="svg:CoordinatesType" use="optional" />
    <attribute name="dx" type="svg:LengthsType" use="optional" />
    <attribute name="dy" type="svg:LengthsType" use="optional" />
    <attribute name="rotate" type="string" use="optional" />
    <attribute name="textLength" type="svg:LengthType" use="optional" />
    <attribute name="lengthAdjust" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="spacing" />
          <enumeration value="spacingAndGlyphs" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="trefType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateColor" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinatesType" use="optional" />
    <attribute name="y" type="svg:CoordinatesType" use="optional" />
    <attribute name="dx" type="svg:LengthsType" use="optional" />
    <attribute name="dy" type="svg:LengthsType" use="optional" />
    <attribute name="rotate" type="string" use="optional" />
    <attribute name="textLength" type="svg:LengthType" use="optional" />
    <attribute name="lengthAdjust" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="spacing" />
          <enumeration value="spacingAndGlyphs" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="textPathType" mixed="true">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:tspan" />
      <element ref="svg:tref" />
      <element ref="svg:altGlyph" />
      <element ref="svg:a" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateColor" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="startOffset" type="string" use="optional" />
    <attribute name="textLength" type="svg:LengthType" use="optional" />
    <attribute name="lengthAdjust" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="spacing" />
          <enumeration value="spacingAndGlyphs" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="method" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="align" />
          <enumeration value="stretch" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="spacing" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="exact" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="altGlyphType" mixed="true">
    <sequence minOccurs="0" maxOccurs="unbounded" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="glyphRef" type="string" use="optional" />
    <attribute name="format" type="string" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Color" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinatesType" use="optional" />
    <attribute name="y" type="svg:CoordinatesType" use="optional" />
    <attribute name="dx" type="svg:LengthsType" use="optional" />
    <attribute name="dy" type="svg:LengthsType" use="optional" />
    <attribute name="rotate" type="string" use="optional" />
  </complexType>
  <complexType name="altGlyphDefType">
    <choice maxOccurs="unbounded">
      <element ref="svg:altGlyphItem" />
      <element ref="svg:glyphRef" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
  </complexType>
  <complexType name="altGlyphItemType">
    <sequence maxOccurs="unbounded">
      <element ref="svg:glyphRef" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
  </complexType>
  <complexType name="glyphRefType">
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attribute name="glyphRef" type="string" use="required" />
    <attribute name="format" type="string" use="required" />
    <attribute name="x" type="svg:CoordinatesType" use="optional" />
    <attribute name="y" type="svg:CoordinatesType" use="optional" />
    <attribute name="dx" type="svg:LengthsType" use="optional" />
    <attribute name="dy" type="svg:LengthsType" use="optional" />
  </complexType>
  <complexType name="markerType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="viewBox" type="svg:ViewBoxSpecType" use="optional" />
    <attribute name="preserveAspectRatio" type="svg:PreserveAspectRatioSpecType"
      default="xMidYMid meet" />
    <attribute name="refX" type="svg:CoordinateType" use="optional" />
    <attribute name="refY" type="svg:CoordinateType" use="optional" />
    <attribute name="markerUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="strokeWidth" />
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="markerWidth" type="svg:LengthType" use="optional" />
    <attribute name="markerHeight" type="svg:LengthType" use="optional" />
    <attribute name="orient" type="string" use="optional" />
  </complexType>
  <complexType name="color-profileType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" type="anyURI" use="optional" />
    <attribute name="local" type="string" use="optional" />
    <attribute name="name" type="string" use="required" />
    <attribute name="rendering-intent" default="auto">
      <simpleType>
        <restriction base="string">
          <enumeration value="auto" />
          <enumeration value="perceptual" />
          <enumeration value="relative-colorimetric" />
          <enumeration value="saturation" />
          <enumeration value="absolute-colorimetric" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="linearGradientType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:stop" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attribute name="gradientUnits" use="optional">
      <!--  @@ need to add more attributes here @@  -->
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="gradientTransform" type="svg:TransformListType" use="optional" />
    <attribute name="x1" type="svg:CoordinateType" use="optional" />
    <attribute name="y1" type="svg:CoordinateType" use="optional" />
    <attribute name="x2" type="svg:CoordinateType" use="optional" />
    <attribute name="y2" type="svg:CoordinateType" use="optional" />
    <attribute name="spreadMethod" default="pad">
      <simpleType>
        <restriction base="string">
          <enumeration value="pad" />
          <enumeration value="reflect" />
          <enumeration value="repeat" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="radialGradientType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:stop" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="gradientUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="gradientTransform" type="svg:TransformListType" use="optional" />
    <attribute name="cx" type="svg:CoordinateType" use="optional" />
    <attribute name="cy" type="svg:CoordinateType" use="optional" />
    <attribute name="r" type="svg:LengthType" use="optional" />
    <attribute name="fx" type="svg:CoordinateType" use="optional" />
    <attribute name="fy" type="svg:CoordinateType" use="optional" />
    <attribute name="spreadMethod" default="pad">
      <simpleType>
        <restriction base="string">
          <enumeration value="pad" />
          <enumeration value="reflect" />
          <enumeration value="repeat" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="stopType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateColor" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-Gradients" />
    <attribute name="offset" type="svg:LengthType" use="required" />
  </complexType>
  <complexType name="patternType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="viewBox" type="svg:ViewBoxSpecType" use="optional" />
    <attribute name="preserveAspectRatio" type="svg:PreserveAspectRatioSpecType"
      default="xMidYMid meet" />
    <attribute name="patternUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="patternTransform" type="svg:TransformListType" use="optional" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="required" />
    <attribute name="height" type="svg:LengthType" use="required" />
  </complexType>
  <complexType name="clipPathType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:path" />
        <element ref="svg:text" />
        <element ref="svg:rect" />
        <element ref="svg:circle" />
        <element ref="svg:ellipse" />
        <element ref="svg:line" />
        <element ref="svg:polyline" />
        <element ref="svg:polygon" />
        <element ref="svg:use" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-FillStroke" />
    <attributeGroup ref="svg:PresentationAttributes-FontSpecification" />
    <attributeGroup ref="svg:PresentationAttributes-Graphics" />
    <attributeGroup ref="svg:PresentationAttributes-TextContentElements" />
    <attributeGroup ref="svg:PresentationAttributes-TextElements" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attribute name="clipPathUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="maskType">
    <sequence>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:desc" />
        <element ref="svg:title" />
        <element ref="svg:metadata" />
        <element ref="svg:defs" />
        <element ref="svg:path" />
        <element ref="svg:text" />
        <element ref="svg:rect" />
        <element ref="svg:circle" />
        <element ref="svg:ellipse" />
        <element ref="svg:line" />
        <element ref="svg:polyline" />
        <element ref="svg:polygon" />
        <element ref="svg:use" />
        <element ref="svg:image" />
        <element ref="svg:svg" />
        <element ref="svg:g" />
        <element ref="svg:view" />
        <element ref="svg:switch" />
        <element ref="svg:a" />
        <element ref="svg:altGlyphDef" />
        <element ref="svg:script" />
        <element ref="svg:style" />
        <element ref="svg:symbol" />
        <element ref="svg:marker" />
        <element ref="svg:clipPath" />
        <element ref="svg:mask" />
        <element ref="svg:linearGradient" />
        <element ref="svg:radialGradient" />
        <element ref="svg:pattern" />
        <element ref="svg:filter" />
        <element ref="svg:cursor" />
        <element ref="svg:font" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateMotion" />
        <element ref="svg:animateColor" />
        <element ref="svg:animateTransform" />
        <element ref="svg:color-profile" />
        <element ref="svg:font-face" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attribute name="maskUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="optional" />
    <attribute name="height" type="svg:LengthType" use="optional" />
  </complexType>
  <complexType name="filterType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:feBlend" />
        <element ref="svg:feFlood" />
        <element ref="svg:feColorMatrix" />
        <element ref="svg:feComponentTransfer" />
        <element ref="svg:feComposite" />
        <element ref="svg:feConvolveMatrix" />
        <element ref="svg:feDiffuseLighting" />
        <element ref="svg:feDisplacementMap" />
        <element ref="svg:feGaussianBlur" />
        <element ref="svg:feImage" />
        <element ref="svg:feMerge" />
        <element ref="svg:feMorphology" />
        <element ref="svg:feOffset" />
        <element ref="svg:feSpecularLighting" />
        <element ref="svg:feTile" />
        <element ref="svg:feTurbulence" />
        <element ref="svg:animate" />
        <element ref="svg:set" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="filterUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="primitiveUnits" use="optional">
      <simpleType>
        <restriction base="string">
          <enumeration value="userSpaceOnUse" />
          <enumeration value="userSpace" />
          <enumeration value="objectBoundingBox" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="optional" />
    <attribute name="height" type="svg:LengthType" use="optional" />
    <attribute name="filterRes" type="string" use="optional" />
  </complexType>
  <complexType name="feDistantLightType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="azimuth" type="double" use="optional" />
    <attribute name="elevation" type="double" use="optional" />
  </complexType>
  <complexType name="fePointLightType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="x" type="double" use="optional" />
    <attribute name="y" type="double" use="optional" />
    <attribute name="z" type="double" use="optional" />
  </complexType>
  <complexType name="feSpotLightType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="x" type="double" use="optional" />
    <attribute name="y" type="double" use="optional" />
    <attribute name="z" type="double" use="optional" />
    <attribute name="pointsAtX" type="double" use="optional" />
    <attribute name="pointsAtY" type="double" use="optional" />
    <attribute name="pointsAtZ" type="double" use="optional" />
    <attribute name="specularExponent" type="double" use="optional" />
    <attribute name="limitingConeAngle" type="double" use="optional" />
  </complexType>
  <complexType name="feBlendType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="in2" type="string" use="required" />
    <attribute name="mode" default="normal">
      <simpleType>
        <restriction base="string">
          <enumeration value="normal" />
          <enumeration value="multiply" />
          <enumeration value="screen" />
          <enumeration value="darken" />
          <enumeration value="lighten" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="feColorMatrixType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="type" default="matrix">
      <simpleType>
        <restriction base="string">
          <enumeration value="matrix" />
          <enumeration value="saturate" />
          <enumeration value="hueRotate" />
          <enumeration value="luminanceToAlpha" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="values" type="string" use="optional" />
  </complexType>
  <complexType name="feComponentTransferType">
    <sequence>
      <element ref="svg:feFuncR" minOccurs="0" />
      <element ref="svg:feFuncG" minOccurs="0" />
      <element ref="svg:feFuncB" minOccurs="0" />
      <element ref="svg:feFuncA" minOccurs="0" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
  </complexType>
  <complexType name="feFuncRType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="identity" />
          <enumeration value="table" />
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="gamma" />
        </restriction>
      </simpleType>
    </attribute>
    <attributeGroup ref="svg:component_transfer_function_attributes" />
  </complexType>
  <complexType name="feFuncGType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="identity" />
          <enumeration value="table" />
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="gamma" />
        </restriction>
      </simpleType>
    </attribute>
    <attributeGroup ref="svg:component_transfer_function_attributes" />
  </complexType>
  <complexType name="feFuncBType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="identity" />
          <enumeration value="table" />
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="gamma" />
        </restriction>
      </simpleType>
    </attribute>
    <attributeGroup ref="svg:component_transfer_function_attributes" />
  </complexType>
  <complexType name="feFuncAType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
          <enumeration value="identity" />
          <enumeration value="table" />
          <enumeration value="discrete" />
          <enumeration value="linear" />
          <enumeration value="gamma" />
        </restriction>
      </simpleType>
      <!--  these all need to be stripped out and checked  -->
    </attribute>
    <attributeGroup ref="svg:component_transfer_function_attributes" />
  </complexType>
  <complexType name="feCompositeType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="in2" type="string" use="required" />
    <attribute name="operator" default="over">
      <simpleType>
        <restriction base="string">
          <enumeration value="over" />
          <enumeration value="in" />
          <enumeration value="out" />
          <enumeration value="atop" />
          <enumeration value="xor" />
          <enumeration value="arithmetic" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="k1" type="double" use="optional" />
    <attribute name="k2" type="double" use="optional" />
    <attribute name="k3" type="double" use="optional" />
    <attribute name="k4" type="double" use="optional" />
  </complexType>
  <complexType name="feConvolveMatrixType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="order" type="string" use="required" />
    <attribute name="kernelMatrix" type="string" use="required" />
    <attribute name="divisor" type="double" use="optional" />
    <attribute name="bias" type="double" use="optional" />
    <attribute name="targetX" type="integer" use="optional" />
    <attribute name="targetY" type="integer" use="optional" />
    <attribute name="edgeMode" default="duplicate">
      <simpleType>
        <restriction base="string">
          <enumeration value="duplicate" />
          <enumeration value="wrap" />
          <enumeration value="none" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="kernelUnitLength" type="string" use="optional" />
    <attribute name="preserveAlpha" type="boolean" use="optional" />
  </complexType>
  <complexType name="feDiffuseLightingType">
    <sequence>
      <choice>
        <element ref="svg:feDistantLight" />
        <element ref="svg:fePointLight" />
        <element ref="svg:feSpotLight" />
      </choice>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateColor" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-LightingEffects" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="surfaceScale" type="double" use="optional" />
    <attribute name="diffuseConstant" type="double" use="optional" />
  </complexType>
  <complexType name="feDisplacementMapType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="in2" type="string" use="required" />
    <attribute name="scale" type="double" use="optional" />
    <attribute name="xChannelSelector" default="A">
      <simpleType>
        <restriction base="string">
          <enumeration value="R" />
          <enumeration value="G" />
          <enumeration value="B" />
          <enumeration value="A" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="yChannelSelector" default="A">
      <simpleType>
        <restriction base="string">
          <enumeration value="R" />
          <enumeration value="G" />
          <enumeration value="B" />
          <enumeration value="A" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="feFloodType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateColor" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-feFlood" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
  </complexType>
  <complexType name="feGaussianBlurType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="stdDeviation" type="string" use="optional" />
  </complexType>
  <complexType name="feImageType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateTransform" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:filter_primitive_attributes" />
  </complexType>
  <complexType name="feMergeType">
    <sequence minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:feMergeNode" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes" />
  </complexType>
  <complexType name="feMergeNodeType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="in" type="string" use="optional" />
  </complexType>
  <complexType name="feMorphologyType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="operator" default="erode">
      <simpleType>
        <restriction base="string">
          <enumeration value="erode" />
          <enumeration value="dilate" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="radius" type="svg:LengthType" use="optional" />
  </complexType>
  <complexType name="feOffsetType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="dx" type="svg:LengthType" use="optional" />
    <attribute name="dy" type="svg:LengthType" use="optional" />
  </complexType>
  <complexType name="feSpecularLightingType">
    <sequence>
      <choice>
        <element ref="svg:feDistantLight" />
        <element ref="svg:fePointLight" />
        <element ref="svg:feSpotLight" />
      </choice>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:animate" />
        <element ref="svg:set" />
        <element ref="svg:animateColor" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-LightingEffects" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
    <attribute name="surfaceScale" type="double" use="optional" />
    <attribute name="specularConstant" type="double" use="optional" />
    <attribute name="specularExponent" type="double" use="optional" />
  </complexType>
  <complexType name="feTileType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes_with_in" />
  </complexType>
  <complexType name="feTurbulenceType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:animate" />
      <element ref="svg:set" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:filter_primitive_attributes" />
    <attribute name="baseFrequency" type="string" use="optional" />
    <attribute name="numOctaves" type="integer" use="optional" />
    <attribute name="seed" type="double" use="optional" />
    <attribute name="stitchTiles" default="noStitch">
      <simpleType>
        <restriction base="string">
          <enumeration value="stitch" />
          <enumeration value="noStitch" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="type" default="turbulence">
      <simpleType>
        <restriction base="string">
          <enumeration value="fractalNoise" />
          <enumeration value="turbulence" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="cursorType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
  </complexType>
  <complexType name="aType" mixed="true">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute ref="xlink:type" fixed="simple" />
    <attribute ref="xlink:role" />
    <attribute ref="xlink:arcrole" />
    <attribute ref="xlink:title" />
    <attribute ref="xlink:show" />
    <attribute ref="xlink:actuate" fixed="onRequest" />
    <attribute ref="xlink:href" use="optional" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="target" type="NMTOKEN" use="optional" />
    <!--  don't use attribute declarations to declare namespaces 
		attribute ref="xmlns:xlink" type="string" fixed="http://www.w3.org/1999/xlink"/>
		 -->
    <!--  change from string to URI  -->
  </complexType>
  <complexType name="viewType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="viewBox" type="svg:ViewBoxSpecType" use="optional" />
    <attribute name="preserveAspectRatio" type="svg:PreserveAspectRatioSpecType"
      default="xMidYMid meet" />
    <attribute name="zoomAndPan" default="magnify">
      <simpleType>
        <restriction base="string">
          <enumeration value="disable" />
          <enumeration value="magnify" />
          <enumeration value="zoom" />
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="viewTarget" type="string" use="optional" />
  </complexType>
  <complexType name="scriptType" mixed="true">
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="type" type="svg:ContentTypeType" use="required" />
  </complexType>
  <complexType name="animateType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attributeGroup ref="svg:animationEvents" />
    <attributeGroup ref="svg:animTargetAttrs" />
    <attributeGroup ref="svg:animTimingAttrs" />
    <attributeGroup ref="svg:animValueAttrs" />
    <attributeGroup ref="svg:animAdditionAttrs" />
  </complexType>
  <complexType name="setType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attributeGroup ref="svg:animationEvents" />
    <attributeGroup ref="svg:animTargetAttrs" />
    <attributeGroup ref="svg:animTimingAttrs" />
    <attribute name="to" type="string" use="optional" />
  </complexType>
  <complexType name="animateMotionType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <element ref="svg:mpath" minOccurs="0" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attributeGroup ref="svg:animationEvents" />
    <attributeGroup ref="svg:animElementAttrs" />
    <attributeGroup ref="svg:animTimingAttrs" />
    <attributeGroup ref="svg:animValueAttrs" />
    <attributeGroup ref="svg:animAdditionAttrs" />
    <attribute name="path" type="string" use="optional" />
    <attribute name="keyPoints" type="string" use="optional" />
    <attribute name="rotate" type="string" use="optional" />
    <attribute name="origin" type="string" use="optional" />
  </complexType>
  <complexType name="mpathType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
  </complexType>
  <complexType name="animateColorType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attributeGroup ref="svg:animationEvents" />
    <attributeGroup ref="svg:animTargetAttrs" />
    <attributeGroup ref="svg:animTimingAttrs" />
    <attributeGroup ref="svg:animValueAttrs" />
    <attributeGroup ref="svg:animAdditionAttrs" />
  </complexType>
  <complexType name="animateTransformType">
    <group ref="svg:descTitleMetadata" minOccurs="0" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attributeGroup ref="svg:animationEvents" />
    <attributeGroup ref="svg:animTargetAttrs" />
    <attributeGroup ref="svg:animTimingAttrs" />
    <attributeGroup ref="svg:animValueAttrs" />
    <attributeGroup ref="svg:animAdditionAttrs" />
    <attribute name="type" default="translate">
      <simpleType>
        <restriction base="string">
          <enumeration value="translate" />
          <enumeration value="scale" />
          <enumeration value="rotate" />
          <enumeration value="skewX" />
          <enumeration value="skewY" />
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <complexType name="fontType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <element ref="svg:font-face" />
      <element ref="svg:missing-glyph" />
      <choice minOccurs="0" maxOccurs="unbounded">
        <element ref="svg:glyph" />
        <element ref="svg:hkern" />
        <element ref="svg:vkern" />
      </choice>
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="horiz-origin-x" type="double" use="optional" />
    <attribute name="horiz-origin-y" type="double" use="optional" />
    <attribute name="horiz-adv-x" type="double" use="required" />
    <attribute name="vert-origin-x" type="double" use="optional" />
    <attribute name="vert-origin-y" type="double" use="optional" />
    <attribute name="vert-adv-y" type="double" use="optional" />
  </complexType>
  <complexType name="glyphType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="unicode" type="string" use="optional" />
    <attribute name="glyph-name" type="string" use="optional" />
    <attribute name="d" type="svg:PathDataType" use="optional" />
    <attribute name="vert-text-orient" type="string" use="optional" />
    <attribute name="arabic" type="string" use="optional" />
    <attribute name="han" type="string" use="optional" />
    <attribute name="horiz-adv-x" type="double" use="optional" />
    <attribute name="vert-adv-y" type="double" use="optional" />
  </complexType>
  <complexType name="missing-glyphType">
    <choice minOccurs="0" maxOccurs="unbounded">
      <element ref="svg:desc" />
      <element ref="svg:title" />
      <element ref="svg:metadata" />
      <element ref="svg:defs" />
      <element ref="svg:path" />
      <element ref="svg:text" />
      <element ref="svg:rect" />
      <element ref="svg:circle" />
      <element ref="svg:ellipse" />
      <element ref="svg:line" />
      <element ref="svg:polyline" />
      <element ref="svg:polygon" />
      <element ref="svg:use" />
      <element ref="svg:image" />
      <element ref="svg:svg" />
      <element ref="svg:g" />
      <element ref="svg:view" />
      <element ref="svg:switch" />
      <element ref="svg:a" />
      <element ref="svg:altGlyphDef" />
      <element ref="svg:script" />
      <element ref="svg:style" />
      <element ref="svg:symbol" />
      <element ref="svg:marker" />
      <element ref="svg:clipPath" />
      <element ref="svg:mask" />
      <element ref="svg:linearGradient" />
      <element ref="svg:radialGradient" />
      <element ref="svg:pattern" />
      <element ref="svg:filter" />
      <element ref="svg:cursor" />
      <element ref="svg:font" />
      <element ref="svg:animate" />
      <element ref="svg:set" />
      <element ref="svg:animateMotion" />
      <element ref="svg:animateColor" />
      <element ref="svg:animateTransform" />
      <element ref="svg:color-profile" />
      <element ref="svg:font-face" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="d" type="svg:PathDataType" use="optional" />
    <attribute name="horiz-adv-x" type="double" use="optional" />
    <attribute name="vert-adv-y" type="double" use="optional" />
  </complexType>
  <complexType name="hkernType">
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="u1" type="string" use="optional" />
    <attribute name="g1" type="string" use="optional" />
    <attribute name="u2" type="string" use="optional" />
    <attribute name="g2" type="string" use="optional" />
    <attribute name="k" type="double" use="required" />
  </complexType>
  <complexType name="vkernType">
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="u1" type="string" use="optional" />
    <attribute name="g1" type="string" use="optional" />
    <attribute name="u2" type="string" use="optional" />
    <attribute name="g2" type="string" use="optional" />
    <attribute name="k" type="double" use="required" />
  </complexType>
  <complexType name="font-faceType">
    <sequence>
      <group ref="svg:descTitleMetadata" minOccurs="0" />
      <element ref="svg:font-face-src" />
      <element ref="svg:definition-src" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="font-family" type="svg:FontFamilyValueType" use="optional" />
    <attribute name="font-style" type="string" use="optional" />
    <attribute name="font-variant" type="string" use="optional" />
    <attribute name="font-weight" type="string" use="optional" />
    <attribute name="font-stretch" type="string" use="optional" />
    <attribute name="font-size" type="svg:FontSizeValueType" use="optional" />
    <attribute name="unicode-range" type="string" use="optional" />
    <attribute name="units-per-em" type="double" use="optional" />
    <attribute name="panose-1" type="string" use="optional" />
    <attribute name="stemv" type="double" use="optional" />
    <attribute name="stemh" type="double" use="optional" />
    <attribute name="slope" type="double" use="optional" />
    <attribute name="cap-height" type="double" use="optional" />
    <attribute name="x-height" type="double" use="optional" />
    <attribute name="accent-height" type="double" use="optional" />
    <attribute name="ascent" type="double" use="optional" />
    <attribute name="descent" type="double" use="optional" />
    <attribute name="widths" type="string" use="optional" />
    <attribute name="bbox" type="string" use="optional" />
    <attribute name="ideographic" type="double" use="optional" />
    <attribute name="baseline" type="double" use="optional" />
    <attribute name="centerline" type="double" use="optional" />
    <attribute name="mathline" type="double" use="optional" />
    <attribute name="hanging" type="double" use="optional" />
    <attribute name="topline" type="double" use="optional" />
    <attribute name="underline-position" type="double" use="optional" />
    <attribute name="underline-thickness" type="double" use="optional" />
    <attribute name="strikethrough-position" type="double" use="optional" />
    <attribute name="strikethrough-thickness" type="double" use="optional" />
    <attribute name="overline-position" type="double" use="optional" />
    <attribute name="overline-thickness" type="double" use="optional" />
  </complexType>
  <complexType name="font-face-srcType">
    <choice maxOccurs="unbounded">
      <element ref="svg:font-face-uri" />
      <element ref="svg:font-face-name" />
    </choice>
    <attributeGroup ref="svg:stdAttrs" />
  </complexType>
  <complexType name="font-face-uriType">
    <sequence>
      <element ref="svg:font-face-format" />
    </sequence>
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
  </complexType>
  <complexType name="font-face-formatType">
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="string" type="string" use="optional" />
  </complexType>
  <complexType name="font-face-nameType">
    <attributeGroup ref="svg:stdAttrs" />
    <attribute name="name" type="string" use="optional" />
  </complexType>
  <complexType name="definition-srcType">
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:xlinkRefAttrs" />
    <attribute ref="xlink:href" use="optional" />
  </complexType>
  <complexType name="metadataType" mixed="true">
    <sequence minOccurs="0" maxOccurs="unbounded" />
    <attributeGroup ref="svg:stdAttrs" />
  </complexType>
  <complexType name="foreignObjectType" mixed="true">
    <sequence minOccurs="0" maxOccurs="unbounded" />
    <attributeGroup ref="svg:stdAttrs" />
    <attributeGroup ref="svg:testAttrs" />
    <attributeGroup ref="svg:langSpaceAttrs" />
    <attribute name="externalResourcesRequired" type="boolean" use="optional" />
    <attribute name="class" type="svg:ClassListType" use="optional" />
    <attribute name="style" type="svg:StyleSheetType" use="optional" />
    <attributeGroup ref="svg:PresentationAttributes-All" />
    <attribute name="transform" type="svg:TransformListType" use="optional" />
    <attributeGroup ref="svg:graphicsElementEvents" />
    <attribute name="x" type="svg:CoordinateType" use="optional" />
    <attribute name="y" type="svg:CoordinateType" use="optional" />
    <attribute name="width" type="svg:LengthType" use="required" />
    <attribute name="height" type="svg:LengthType" use="required" />
    <attribute name="content" type="string" fixed="structured text" />
  </complexType>
</schema>