<?xml version="1.0" encoding="UTF-8"?>
<!-- ....................................................................... -->
<!-- SVG 1.1 DTD ........................................................... -->
<!-- file: svg11.dtd -->
<!--
  SVG 1.1 DTD
  
  This is SVG, a language for describing two-dimensional graphics in XML.
  
  The Scalable Vector Graphics (SVG)
  Copyright 2001, 2002 World Wide Web Consortium
     (Massachusetts Institute of Technology, Institut National de
      Recherche en Informatique et en Automatique, Keio University).
      All Rights Reserved.
  
  Permission to use, copy, modify and distribute the SVG DTD and its
  accompanying documentation for any purpose and without fee is hereby
  granted in perpetuity, provided that the above copyright notice and
  this paragraph appear in all copies.  The copyright holders make no
  representation about the suitability of the DTD for any purpose.
  
  It is provided "as is" without expressed or implied warranty.
  
     Author:   Jun Fujisawa <fujisawa.jun@canon.co.jp>
     Revision: $Id: svg11.dtd,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
  
-->
<!--
  This is the driver file for version 1.1 of the SVG DTD.
  
  This DTD is identified by the PUBLIC and SYSTEM identifiers:
  
     PUBLIC "-//W3C//DTD SVG 1.1//EN"
     SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"
-->
<!--
  Use this URI to identify the default namespace:
  
     "http://www.w3.org/2000/svg"
  
  See the Qualified Names module for information
  on the use of namespace prefixes in the DTD.
-->
<!-- reserved for future use with document profiles -->
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!-- Pre-Framework Redeclaration Placeholder ..................... -->
<!-- Document Model Module ....................................... -->
<!-- Attribute Collection Module ................................. -->
<!-- Modular Framework Module .................................... -->
<!-- ....................................................................... -->
<!-- SVG 1.1 Modular Framework Module ...................................... -->
<!--
  file: svg-framework.mod
  
  This is SVG, a language for describing two-dimensional graphics in XML.
  Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
  Revision: $Id: svg-framework.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
  
  This DTD module is identified by the PUBLIC and SYSTEM identifiers:
  
     PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN"
     SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-framework.mod"
  
  .......................................................................
-->
<!--
  Modular Framework
  
  This module instantiates the modules needed o support the SVG
  modularization model, including:
  
     + Datatypes
     + Qualified Name
     + Document Model
     + Attribute Collection
-->
<!-- ....................................................................... -->
<!-- SVG 1.1 Datatypes Module .............................................. -->
<!--
  file: svg-datatypes.mod
  
  This is SVG, a language for describing two-dimensional graphics in XML.
  Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
  Revision: $Id: svg-datatypes.mod,v 1.2 2002/04/20 18:07:42 fujisawa Exp $
  
  This DTD module is identified by the PUBLIC and SYSTEM identifiers:
  
     PUBLIC "-//W3C//ENTITIES SVG 1.1 Datatypes//EN"
     SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-datatypes.mod"
  
  .......................................................................
-->
<!--
  Datatypes
  
  This module declares common data types for properties and attributes.
-->
<!-- feature specification -->
<xs:schema 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  elementFormDefault="qualified" 
  targetNamespace="http://www.w3.org/2000/svg">
  
  <xs:annotation>
    <xs:documentation>
      Scalable Vector Graphics (SVG) v1.1 in XML Schema.
      Converted from the SVG v1.1 DTD and tweaked by hand.
    </xs:documentation>
  </xs:annotation>
  
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <xs:simpleType name="Boolean.datatype">
    <xs:restriction base="xs:token">
      <xs:enumeration value="false"/>
      <xs:enumeration value="true"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- 'clip-rule' or 'fill-rule' property/attribute value -->
  <xs:simpleType name="ClipFillRule.datatype">
    <xs:restriction base="xs:token">
      <xs:enumeration value="nonzero"/>
      <xs:enumeration value="evenodd"/>
      <xs:enumeration value="inherit"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- media type, as per [RFC2045] -->
  <xs:simpleType name="ContentType.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <coordinate> -->
  <xs:simpleType name="Coordinate.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <coordinate>s -->
  <xs:simpleType name="Coordinates.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <color> value -->
  <xs:simpleType name="Color.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <integer> -->
  <xs:simpleType name="Integer.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a language code, as per [RFC3066] -->
  <xs:simpleType name="LanguageCode.datatype">
    <xs:restriction base="xs:NMTOKEN"/>
  </xs:simpleType>
  <!-- comma-separated list of language codes, as per [RFC3066] -->
  <xs:simpleType name="LanguageCodes.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <length> -->
  <xs:simpleType name="Length.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <length>s -->
  <xs:simpleType name="Lengths.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a <number> -->
  <xs:simpleType name="Number.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a list of <number>s -->
  <xs:simpleType name="Numbers.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- opacity value (e.g., <number>) -->
  <xs:simpleType name="OpacityValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a path data specification -->
  <xs:simpleType name="PathData.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'preserveAspectRatio' attribute specification -->
  <xs:simpleType name="PreserveAspectRatioSpec.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- script expression -->
  <xs:simpleType name="Script.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- An SVG color value (RGB plus optional ICC) -->
  <xs:simpleType name="SVGColor.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- arbitrary text string -->
  <xs:simpleType name="Text.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- list of transforms -->
  <xs:simpleType name="TransformList.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- a Uniform Resource Identifier, see [URI] -->
  <xs:simpleType name="URI.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'viewBox' attribute specification -->
  <xs:simpleType name="ViewBoxSpec.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- end of svg-datatypes.mod -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Qualified Name Module ......................................... -->
  <!--
    file: svg-qname.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-qname.mod,v 1.3 2002/11/03 15:54:14 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Qualified Name//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-qname.mod"
    
    .......................................................................
  -->
  <!--
    Qualified Name
    
    This module is contained in two parts, labeled Section 'A' and 'B':
    
       Section A declares parameter entities to support namespace-
       qualified names, namespace declarations, and name prefixing
       for SVG and extensions.
    
       Section B declares parameter entities used to provide
       namespace-qualified names for all SVG element types:
  -->
  <!-- Section A: SVG XML Namespace Framework :::::::::::::::::::::: -->
  <!--
    1. Declare a %SVG.prefixed; conditional section keyword, used
    to activate namespace prefixing. The default value should
    inherit '%NS.prefixed;' from the DTD driver, so that unless
    overridden, the default behaviour follows the overall DTD
    prefixing scheme.
  -->
  <!--
    2. Declare a parameter entity (eg., %SVG.xmlns;) containing
    the URI reference used to identify the SVG namespace:
  -->
  <!--
    3. Declare parameter entities (eg., %SVG.prefix;) containing
    the default namespace prefix string(s) to use when prefixing
    is enabled. This may be overridden in the DTD driver or the
    internal subset of an document instance. If no default prefix
    is desired, this may be declared as an empty string.
  -->
  <!--
    4. Declare parameter entities (eg., %SVG.pfx;) containing the
    colonized prefix(es) (eg., '%SVG.prefix;:') used when
    prefixing is active, an empty string when it is not.
  -->
  <!--
    5. The parameter entity %SVG.xmlns.extra.attrib; may be
    redeclared to contain any non-SVG namespace declaration
    attributes for namespaces embedded in SVG. The default
    is an empty string.
  -->
  <!--
    Declare a parameter entity XLINK.xmlns.attrib containing
    the XML Namespace declarations for XLink.
  -->
  <!--
    Declare a parameter entity %NS.decl.attrib; containing
    all XML Namespace declarations used in the DTD, plus the
    xmlns declaration for SVG, its form dependent on whether
    prefixing is active.
  -->
  <!--
    Declare a parameter entity %SVG.xmlns.attrib; containing
    all XML namespace declaration attributes used by SVG,
    including a default xmlns attribute when prefixing is
    inactive.
  -->
  <!-- Section B: SVG Qualified Names :::::::::::::::::::::::::::::: -->
  <!--
    6. This section declares parameter entities used to provide
    namespace-qualified names for all SVG element types.
  -->
  <!-- module: svg-structure.mod ......................... -->
  <!-- module: svg-conditional.mod ....................... -->
  <!-- module: svg-image.mod ............................. -->
  <!-- module: svg-style.mod ............................. -->
  <!-- module: svg-shape.mod ............................. -->
  <!-- module: svg-text.mod .............................. -->
  <!-- module: svg-marker.mod ............................ -->
  <!-- module: svg-profile.mod ........................... -->
  <!-- module: svg-gradient.mod .......................... -->
  <!-- module: svg-pattern.mod ........................... -->
  <!-- module: svg-clip.mod .............................. -->
  <!-- module: svg-mask.mod .............................. -->
  <!-- module: svg-filter.mod ............................ -->
  <!-- module: svg-cursor.mod ............................ -->
  <!-- module: svg-hyperlink.mod ......................... -->
  <!-- module: svg-view.mod .............................. -->
  <!-- module: svg-script.mod ............................ -->
  <!-- module: svg-animation.mod ......................... -->
  <!-- module: svg-font.mod .............................. -->
  <!-- module: svg-extensibility.mod ..................... -->
  <!-- end of svg-qname.mod -->
  <!-- instantiate the Document Model declared in the DTD driver -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Document Model Module ......................................... -->
  <!--
    file: svg11-model.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg11-model.mod,v 1.3 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Model//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-model.mod"
    
    .......................................................................
  -->
  <!--
    SVG 1.1 Document Model
    
    This module describes the groupings of elements that make up
    common content models for SVG elements.
  -->
  <!-- module: svg-structure.mod ......................... -->
  <xs:element name="SVG.Description.class" abstract="true"/>
  <xs:element name="SVG.Use.class" abstract="true" substitutionGroup="svg:SVG.Structure.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.use.content">
          <xs:attributeGroup ref="svg:attlist.use"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="SVG.Structure.class" abstract="true"/>
  <!-- module: svg-conditional.mod ....................... -->
  <xs:element name="SVG.Conditional.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.switch.content">
          <xs:attributeGroup ref="svg:attlist.switch"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-image.mod ............................. -->
  <xs:element name="SVG.Image.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.image.content">
          <xs:attributeGroup ref="svg:attlist.image"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-style.mod ............................. -->
  <xs:element name="SVG.Style.class" abstract="true">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.style"/>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-shape.mod ............................. -->
  <xs:element name="SVG.Shape.class" abstract="true"/>
  <!-- module: svg-text.mod .............................. -->
  <xs:element name="SVG.Text.class" abstract="true"/>
  <xs:element name="SVG.TextContent.class" abstract="true"/>
  <!-- module: svg-marker.mod ............................ -->
  <xs:element name="SVG.Marker.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.marker.content">
          <xs:attributeGroup ref="svg:attlist.marker"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-profile.mod ........................... -->
  <xs:element name="SVG.ColorProfile.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.color-profile.content">
          <xs:attributeGroup ref="svg:attlist.color-profile"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-gradient.mod .......................... -->
  <xs:element name="SVG.Gradient.class" abstract="true"/>
  <!-- module: svg-pattern.mod ........................... -->
  <xs:element name="SVG.Pattern.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.pattern.content">
          <xs:attributeGroup ref="svg:attlist.pattern"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-clip.mod .............................. -->
  <xs:element name="SVG.Clip.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.clipPath.content">
          <xs:attributeGroup ref="svg:attlist.clipPath"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-mask.mod .............................. -->
  <xs:element name="SVG.Mask.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.mask.content">
          <xs:attributeGroup ref="svg:attlist.mask"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-filter.mod ............................ -->
  <xs:element name="SVG.Filter.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.filter.content">
          <xs:attributeGroup ref="svg:attlist.filter"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="SVG.FilterPrimitive.class" abstract="true"/>
  <!-- module: svg-cursor.mod ............................ -->
  <xs:element name="SVG.Cursor.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.cursor.content">
          <xs:attributeGroup ref="svg:attlist.cursor"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-hyperlink.mod ......................... -->
  <xs:element name="SVG.Hyperlink.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.a.content">
          <xs:attributeGroup ref="svg:attlist.a"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-view.mod .............................. -->
  <xs:element name="SVG.View.class" abstract="true">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.view.content">
          <xs:attributeGroup ref="svg:attlist.view"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-script.mod ............................ -->
  <xs:element name="SVG.Script.class" abstract="true">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.script"/>
    </xs:complexType>
  </xs:element>
  <!-- module: svg-animation.mod ......................... -->
  <xs:element name="SVG.Animation.class" abstract="true"/>
  <!-- module: svg-font.mod .............................. -->
  <xs:element name="SVG.Font.class" abstract="true"/>
  <!-- module: svg-extensibility.mod ..................... -->
  <xs:element name="SVG.Extensibility.class" abstract="true">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.foreignObject"/>
    </xs:complexType>
  </xs:element>
  <!-- end of svg11-model.mod -->
  <!-- instantiate the Attribute Collection declared in the DTD driver -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Attribute Collection Module ................................... -->
  <!--
    file: svg11-attribs.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg11-attribs.mod,v 1.4 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Attribute Collection//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-attribs.mod"
    
    .......................................................................
  -->
  <!--
    SVG 1.1 Attribute Collection
    
    This module defines the set of common attributes that can be present
    on many SVG elements.
  -->
  <!-- module: svg-conditional.mod ....................... -->
  <xs:simpleType name="ExtensionList.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="FeatureList.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Conditional.attrib">
    <xs:attribute name="requiredFeatures" type="svg:FeatureList.datatype"/>
    <xs:attribute name="requiredExtensions" type="svg:ExtensionList.datatype"/>
    <xs:attribute name="systemLanguage" type="svg:LanguageCodes.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-style.mod ............................. -->
  <xs:simpleType name="ClassList.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="StyleSheet.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Style.attrib">
    <xs:attribute name="style" type="svg:StyleSheet.datatype"/>
    <xs:attribute name="class" type="svg:ClassList.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-text.mod .............................. -->
  <xs:simpleType name="BaselineShiftValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="FontFamilyValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="FontSizeValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="FontSizeAdjustValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="GlyphOrientationHorizontalValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="GlyphOrientationVerticalValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="KerningValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="SpacingValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="TextDecorationValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Text.attrib">
    <xs:attribute name="writing-mode">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="lr-tb"/>
          <xs:enumeration value="rl-tb"/>
          <xs:enumeration value="tb-rl"/>
          <xs:enumeration value="lr"/>
          <xs:enumeration value="rl"/>
          <xs:enumeration value="tb"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.TextContent.attrib">
    <xs:attribute name="alignment-baseline">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="baseline"/>
          <xs:enumeration value="before-edge"/>
          <xs:enumeration value="text-before-edge"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="central"/>
          <xs:enumeration value="after-edge"/>
          <xs:enumeration value="text-after-edge"/>
          <xs:enumeration value="ideographic"/>
          <xs:enumeration value="alphabetic"/>
          <xs:enumeration value="hanging"/>
          <xs:enumeration value="mathematical"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseline-shift" type="svg:BaselineShiftValue.datatype"/>
    <xs:attribute name="direction">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="ltr"/>
          <xs:enumeration value="rtl"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="dominant-baseline">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="use-script"/>
          <xs:enumeration value="no-change"/>
          <xs:enumeration value="reset-size"/>
          <xs:enumeration value="ideographic"/>
          <xs:enumeration value="alphabetic"/>
          <xs:enumeration value="hanging"/>
          <xs:enumeration value="mathematical"/>
          <xs:enumeration value="central"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="text-after-edge"/>
          <xs:enumeration value="text-before-edge"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="glyph-orientation-horizontal" type="svg:GlyphOrientationHorizontalValue.datatype"/>
    <xs:attribute name="glyph-orientation-vertical" type="svg:GlyphOrientationVerticalValue.datatype"/>
    <xs:attribute name="kerning" type="svg:KerningValue.datatype"/>
    <xs:attribute name="letter-spacing" type="svg:SpacingValue.datatype"/>
    <xs:attribute name="text-anchor">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="start"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="end"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="text-decoration" type="svg:TextDecorationValue.datatype"/>
    <xs:attribute name="unicode-bidi">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="embed"/>
          <xs:enumeration value="bidi-override"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="word-spacing" type="svg:SpacingValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Font.attrib">
    <xs:attribute name="font-family" type="svg:FontFamilyValue.datatype"/>
    <xs:attribute name="font-size" type="svg:FontSizeValue.datatype"/>
    <xs:attribute name="font-size-adjust" type="svg:FontSizeAdjustValue.datatype"/>
    <xs:attribute name="font-stretch">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="wider"/>
          <xs:enumeration value="narrower"/>
          <xs:enumeration value="ultra-condensed"/>
          <xs:enumeration value="extra-condensed"/>
          <xs:enumeration value="condensed"/>
          <xs:enumeration value="semi-condensed"/>
          <xs:enumeration value="semi-expanded"/>
          <xs:enumeration value="expanded"/>
          <xs:enumeration value="extra-expanded"/>
          <xs:enumeration value="ultra-expanded"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-style">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="italic"/>
          <xs:enumeration value="oblique"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-variant">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="small-caps"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="font-weight">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="bold"/>
          <xs:enumeration value="bolder"/>
          <xs:enumeration value="lighter"/>
          <xs:enumeration value="100"/>
          <xs:enumeration value="200"/>
          <xs:enumeration value="300"/>
          <xs:enumeration value="400"/>
          <xs:enumeration value="500"/>
          <xs:enumeration value="600"/>
          <xs:enumeration value="700"/>
          <xs:enumeration value="800"/>
          <xs:enumeration value="900"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- module: svg-marker.mod ............................ -->
  <xs:simpleType name="MarkerValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Marker.attrib">
    <xs:attribute name="marker-start" type="svg:MarkerValue.datatype"/>
    <xs:attribute name="marker-mid" type="svg:MarkerValue.datatype"/>
    <xs:attribute name="marker-end" type="svg:MarkerValue.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-profile.mod ........................... -->
  <xs:attributeGroup name="SVG.ColorProfile.attrib">
    <xs:attribute name="color-profile"/>
  </xs:attributeGroup>
  <!-- module: svg-gradient.mod .......................... -->
  <xs:simpleType name="NumberOrPercentage.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Gradient.attrib">
    <xs:attribute name="stop-color" type="svg:SVGColor.datatype"/>
    <xs:attribute name="stop-opacity" type="svg:OpacityValue.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-clip.mod .............................. -->
  <xs:simpleType name="ClipPathValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Clip.attrib">
    <xs:attribute name="clip-path" type="svg:ClipPathValue.datatype"/>
    <xs:attribute name="clip-rule" type="svg:ClipFillRule.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-mask.mod .............................. -->
  <xs:simpleType name="MaskValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Mask.attrib">
    <xs:attribute name="mask" type="svg:MaskValue.datatype"/>
  </xs:attributeGroup>
  <!-- module: svg-filter.mod ............................ -->
  <xs:simpleType name="FilterValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="NumberOptionalNumber.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Filter.attrib">
    <xs:attribute name="filter" type="svg:FilterValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.FilterColor.attrib">
    <xs:attribute name="color-interpolation-filters">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="sRGB"/>
          <xs:enumeration value="linearRGB"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- module: svg-cursor.mod ............................ -->
  <xs:simpleType name="CursorValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.Cursor.attrib">
    <xs:attribute name="cursor" type="svg:CursorValue.datatype"/>
  </xs:attributeGroup>
  <!-- end of svg11-attribs.mod -->
  <!-- end of svg-framework.mod -->
  <!-- Post-Framework Redeclaration Placeholder .................... -->
  <!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
  <!-- Core Attribute Module ....................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Core Attribute Module ......................................... -->
  <!--
    file: svg-core-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-core-attrib.mod,v 1.3 2002/04/28 13:50:23 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-core-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Core Attribute
    
       id, xml:base, xml:lang, xml:space
    
    This module defines the core set of attributes that can be present on
    any element.
  -->
  <xs:attributeGroup name="SVG.id.attrib">
    <xs:attribute name="id" type="xs:ID"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.base.attrib">
    <xs:attribute ref="xml:base"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.lang.attrib">
    <xs:attribute ref="xml:lang"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.space.attrib">
    <xs:attribute ref="xml:space"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Core.attrib">
    <xs:attributeGroup ref="svg:SVG.id.attrib"/>
    <xs:attributeGroup ref="svg:SVG.base.attrib"/>
    <xs:attributeGroup ref="svg:SVG.lang.attrib"/>
    <xs:attributeGroup ref="svg:SVG.space.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-core-attrib.mod -->
  <!-- Container Attribute Module .................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Container Attribute Module .................................... -->
  <!--
    file: svg-container-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-container-attrib.mod,v 1.2 2002/04/20 18:07:42 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Container Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-container-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Container Attribute
    
       enable-background
    
    This module defines the Container attribute set.
  -->
  <!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
  <xs:simpleType name="EnableBackgroundValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.enable-background.attrib">
    <xs:attribute name="enable-background" type="svg:EnableBackgroundValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Container.attrib">
    <xs:attributeGroup ref="svg:SVG.enable-background.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-container-attrib.mod -->
  <!-- Viewport Attribute Module ................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Viewport Attribute Module ..................................... -->
  <!--
    file: svg-viewport-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-viewport-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-viewport-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Viewport Attribute
    
       clip, overflow
    
    This module defines the Viewport attribute set.
  -->
  <!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
  <xs:simpleType name="ClipValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.clip.attrib">
    <xs:attribute name="clip" type="svg:ClipValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.overflow.attrib">
    <xs:attribute name="overflow">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visible"/>
          <xs:enumeration value="hidden"/>
          <xs:enumeration value="scroll"/>
          <xs:enumeration value="auto"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Viewport.attrib">
    <xs:attributeGroup ref="svg:SVG.clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.overflow.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-viewport-attrib.mod -->
  <!-- Paint Attribute Module ...................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Paint Attribute Module ........................................ -->
  <!--
    file: svg-paint-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-paint-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-paint-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Paint Attribute
    
       fill, fill-rule, stroke, stroke-dasharray, stroke-dashoffset,
       stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-width, color,
       color-interpolation, color-rendering
    
    This module defines the Paint and Color attribute sets.
  -->
  <!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
  <xs:simpleType name="Paint.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
  <xs:simpleType name="StrokeDashArrayValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
  <xs:simpleType name="StrokeDashOffsetValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
  <xs:simpleType name="StrokeMiterLimitValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- 'stroke-width' property/attribute value (e.g., <length>) -->
  <xs:simpleType name="StrokeWidthValue.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:attributeGroup name="SVG.fill.attrib">
    <xs:attribute name="fill" type="svg:Paint.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.fill-rule.attrib">
    <xs:attribute name="fill-rule" type="svg:ClipFillRule.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke.attrib">
    <xs:attribute name="stroke" type="svg:Paint.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-dasharray.attrib">
    <xs:attribute name="stroke-dasharray" type="svg:StrokeDashArrayValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-dashoffset.attrib">
    <xs:attribute name="stroke-dashoffset" type="svg:StrokeDashOffsetValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-linecap.attrib">
    <xs:attribute name="stroke-linecap">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="butt"/>
          <xs:enumeration value="round"/>
          <xs:enumeration value="square"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-linejoin.attrib">
    <xs:attribute name="stroke-linejoin">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="miter"/>
          <xs:enumeration value="round"/>
          <xs:enumeration value="bevel"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-miterlimit.attrib">
    <xs:attribute name="stroke-miterlimit" type="svg:StrokeMiterLimitValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-width.attrib">
    <xs:attribute name="stroke-width" type="svg:StrokeWidthValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Paint.attrib">
    <xs:attributeGroup ref="svg:SVG.fill.attrib"/>
    <xs:attributeGroup ref="svg:SVG.fill-rule.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-dasharray.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-dashoffset.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-linecap.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-linejoin.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-miterlimit.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-width.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.color.attrib">
    <xs:attribute name="color" type="svg:Color.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.color-interpolation.attrib">
    <xs:attribute name="color-interpolation">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="sRGB"/>
          <xs:enumeration value="linearRGB"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.color-rendering.attrib">
    <xs:attribute name="color-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeQuality"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Color.attrib">
    <xs:attributeGroup ref="svg:SVG.color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.color-interpolation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.color-rendering.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-paint-attrib.mod -->
  <!-- Paint Opacity Attribute Module .............................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Paint Opacity Attribute Module ................................ -->
  <!--
    file: svg-opacity-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-opacity-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-opacity-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Paint Opacity Attribute
    
       opacity, fill-opacity, stroke-opacity
    
    This module defines the Opacity attribute set.
  -->
  <xs:attributeGroup name="SVG.opacity.attrib">
    <xs:attribute name="opacity" type="svg:OpacityValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.fill-opacity.attrib">
    <xs:attribute name="fill-opacity" type="svg:OpacityValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.stroke-opacity.attrib">
    <xs:attribute name="stroke-opacity" type="svg:OpacityValue.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Opacity.attrib">
    <xs:attributeGroup ref="svg:SVG.opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.fill-opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.stroke-opacity.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-opacity-attrib.mod -->
  <!-- Graphics Attribute Module ................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Graphics Attribute Module ..................................... -->
  <!--
    file: svg-graphics-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-graphics-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphics-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Graphics Attribute
    
       display, image-rendering, pointer-events, shape-rendering,
       text-rendering, visibility
    
    This module defines the Graphics attribute set.
  -->
  <xs:attributeGroup name="SVG.display.attrib">
    <xs:attribute name="display">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="inline"/>
          <xs:enumeration value="block"/>
          <xs:enumeration value="list-item"/>
          <xs:enumeration value="run-in"/>
          <xs:enumeration value="compact"/>
          <xs:enumeration value="marker"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="inline-table"/>
          <xs:enumeration value="table-row-group"/>
          <xs:enumeration value="table-header-group"/>
          <xs:enumeration value="table-footer-group"/>
          <xs:enumeration value="table-row"/>
          <xs:enumeration value="table-column-group"/>
          <xs:enumeration value="table-column"/>
          <xs:enumeration value="table-cell"/>
          <xs:enumeration value="table-caption"/>
          <xs:enumeration value="none"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.image-rendering.attrib">
    <xs:attribute name="image-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeQuality"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.pointer-events.attrib">
    <xs:attribute name="pointer-events">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visiblePainted"/>
          <xs:enumeration value="visibleFill"/>
          <xs:enumeration value="visibleStroke"/>
          <xs:enumeration value="visible"/>
          <xs:enumeration value="painted"/>
          <xs:enumeration value="fill"/>
          <xs:enumeration value="stroke"/>
          <xs:enumeration value="all"/>
          <xs:enumeration value="none"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.shape-rendering.attrib">
    <xs:attribute name="shape-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="crispEdges"/>
          <xs:enumeration value="geometricPrecision"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.text-rendering.attrib">
    <xs:attribute name="text-rendering">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="optimizeSpeed"/>
          <xs:enumeration value="optimizeLegibility"/>
          <xs:enumeration value="geometricPrecision"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.visibility.attrib">
    <xs:attribute name="visibility">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="visible"/>
          <xs:enumeration value="hidden"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.Graphics.attrib">
    <xs:attributeGroup ref="svg:SVG.display.attrib"/>
    <xs:attributeGroup ref="svg:SVG.image-rendering.attrib"/>
    <xs:attributeGroup ref="svg:SVG.pointer-events.attrib"/>
    <xs:attributeGroup ref="svg:SVG.shape-rendering.attrib"/>
    <xs:attributeGroup ref="svg:SVG.text-rendering.attrib"/>
    <xs:attributeGroup ref="svg:SVG.visibility.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-graphics-attrib.mod -->
  <!-- Document Events Attribute Module ............................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Document Events Attribute Module .............................. -->
  <!--
    file: svg-docevents-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-docevents-attrib.mod,v 1.2 2002/04/20 18:07:42 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-docevents-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Document Events Attribute
    
       onunload, onabort, onerror, onresize, onscroll, onzoom
    
    This module defines the DocumentEvents attribute set.
  -->
  <xs:attributeGroup name="SVG.onunload.attrib">
    <xs:attribute name="onunload" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onabort.attrib">
    <xs:attribute name="onabort" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onerror.attrib">
    <xs:attribute name="onerror" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onresize.attrib">
    <xs:attribute name="onresize" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onscroll.attrib">
    <xs:attribute name="onscroll" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onzoom.attrib">
    <xs:attribute name="onzoom" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.DocumentEvents.attrib">
    <xs:attributeGroup ref="svg:SVG.onunload.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onabort.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onerror.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onresize.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onscroll.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onzoom.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-docevents-attrib.mod -->
  <!-- Graphical Element Events Attribute Module ................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Graphical Element Events Attribute Module ..................... -->
  <!--
    file: svg-graphevents-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-graphevents-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-graphevents-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Graphical Element Events Attribute
    
       onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup,
       onmouseover, onmousemove, onmouseout, onload
    
    This module defines the GraphicalEvents attribute set.
  -->
  <xs:attributeGroup name="SVG.onfocusin.attrib">
    <xs:attribute name="onfocusin" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onfocusout.attrib">
    <xs:attribute name="onfocusout" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onactivate.attrib">
    <xs:attribute name="onactivate" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onclick.attrib">
    <xs:attribute name="onclick" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onmousedown.attrib">
    <xs:attribute name="onmousedown" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onmouseup.attrib">
    <xs:attribute name="onmouseup" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onmouseover.attrib">
    <xs:attribute name="onmouseover" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onmousemove.attrib">
    <xs:attribute name="onmousemove" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onmouseout.attrib">
    <xs:attribute name="onmouseout" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onload.attrib">
    <xs:attribute name="onload" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.GraphicalEvents.attrib">
    <xs:attributeGroup ref="svg:SVG.onfocusin.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onfocusout.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onactivate.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onclick.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onmousedown.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onmouseup.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onmouseover.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onmousemove.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onmouseout.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onload.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-graphevents-attrib.mod -->
  <!-- Animation Events Attribute Module ........................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Animation Events Attribute Module ............................. -->
  <!--
    file: svg-animevents-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-animevents-attrib.mod,v 1.3 2002/04/28 13:50:23 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animevents-attrib.mod"
    
    .......................................................................
  -->
  <!--
    Animation Events Attribute
    
       onbegin, onend, onrepeat, onload
    
    This module defines the AnimationEvents attribute set.
  -->
  <xs:attributeGroup name="SVG.onbegin.attrib">
    <xs:attribute name="onbegin" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onend.attrib">
    <xs:attribute name="onend" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.onrepeat.attrib">
    <xs:attribute name="onrepeat" type="svg:Script.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.AnimationEvents.attrib">
    <xs:attributeGroup ref="svg:SVG.onbegin.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onend.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onrepeat.attrib"/>
    <xs:attributeGroup ref="svg:SVG.onload.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-animevents-attrib.mod -->
  <!-- XLink Attribute Module ...................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 XLink Attribute Module ........................................ -->
  <!--
    file: svg-xlink-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-xlink-attrib.mod,v 1.2 2002/04/20 18:07:43 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-xlink-attrib.mod"
    
    .......................................................................
  -->
  <!--
    XLink Attribute
    
      type, href, role, arcrole, title, show, actuate
    
    This module defines the XLink, XLinkRequired, XLinkEmbed, and
    XLinkReplace attribute set.
  -->
  <xs:attributeGroup name="SVG.XLink.attrib">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:href"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.XLinkRequired.attrib">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:href" use="required"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.XLinkEmbed.attrib">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:href" use="required"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.XLinkReplace.attrib">
    <xs:attribute ref="xlink:type" default="simple"/>
    <xs:attribute ref="xlink:href" use="required"/>
    <xs:attribute ref="xlink:role"/>
    <xs:attribute ref="xlink:arcrole"/>
    <xs:attribute ref="xlink:title"/>
    <xs:attribute ref="xlink:show"/>
    <xs:attribute ref="xlink:actuate"/>
  </xs:attributeGroup>
  <!-- end of svg-xlink-attrib.mod -->
  <!-- External Resources Attribute Module ......................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 External Resources Attribute Module ........................... -->
  <!--
    file: svg-extresources-attrib.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-extresources-attrib.mod,v 1.2 2002/04/20 18:07:42 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extresources-attrib.mod"
    
    .......................................................................
  -->
  <!--
    External Resources Attribute
    
       externalResourcesRequired
    
    This module defines the External attribute set.
  -->
  <xs:attributeGroup name="SVG.externalResourcesRequired.attrib">
    <xs:attribute name="externalResourcesRequired" type="svg:Boolean.datatype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="SVG.External.attrib">
    <xs:attributeGroup ref="svg:SVG.externalResourcesRequired.attrib"/>
  </xs:attributeGroup>
  <!-- end of svg-extresources-attrib.mod -->
  <!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
  <!-- Structure Module ............................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Structure Module .............................................. -->
  <!--
    file: svg-structure.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-structure.mod,v 1.5 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-structure.mod"
    
    .......................................................................
  -->
  <!--
    Structure
    
       svg, g, defs, desc, title, metadata, symbol, use
    
    This module declares the major structural elements and their attributes.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Description.class ............................. -->
  <!-- SVG.Use.class ..................................... -->
  <!-- SVG.Structure.class ............................... -->
  <!-- SVG.Presentation.attrib ........................... -->
  <xs:attributeGroup name="SVG.Presentation.attrib">
    <xs:attributeGroup ref="svg:SVG.Container.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Viewport.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Text.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Marker.attrib"/>
    <xs:attributeGroup ref="svg:SVG.ColorProfile.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Gradient.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attribute name="flood-color" type="svg:SVGColor.datatype"/>
    <xs:attribute name="flood-opacity" type="svg:OpacityValue.datatype"/>
    <xs:attribute name="lighting-color" type="svg:SVGColor.datatype"/>
  </xs:attributeGroup>
  <!-- svg: SVG Document Element ......................... -->
  <xs:complexType name="SVG.svg.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="svg" substitutionGroup="svg:SVG.Structure.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.svg.content">
          <xs:attributeGroup ref="svg:attlist.svg"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.svg.element -->
  <xs:attributeGroup name="attlist.svg">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.DocumentEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="viewBox" type="svg:ViewBoxSpec.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
    <xs:attribute name="zoomAndPan" default="magnify">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="disable"/>
          <xs:enumeration value="magnify"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="version" default="1.1">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="1.1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="baseProfile" type="svg:Text.datatype"/>
    <xs:attribute name="contentScriptType" default="text/ecmascript" type="svg:ContentType.datatype"/>
    <xs:attribute name="contentStyleType" default="text/css" type="svg:ContentType.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.svg.attlist -->
  <!-- g: Group Element .................................. -->
  <xs:complexType name="SVG.g.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="g" substitutionGroup="svg:SVG.Structure.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.g.content">
          <xs:attributeGroup ref="svg:attlist.g"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.g.element -->
  <xs:attributeGroup name="attlist.g">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.g.attlist -->
  <!-- defs: Definisions Element ......................... -->
  <xs:complexType name="SVG.defs.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="defs" substitutionGroup="svg:SVG.Structure.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.defs.content">
          <xs:attributeGroup ref="svg:attlist.defs"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.defs.element -->
  <xs:attributeGroup name="attlist.defs">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.defs.attlist -->
  <!-- desc: Description Element ......................... -->
  <xs:element name="desc" substitutionGroup="svg:SVG.Description.class">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.desc"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.desc.element -->
  <xs:attributeGroup name="attlist.desc">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.desc.attlist -->
  <!-- title: Title Element .............................. -->
  <xs:element name="title" substitutionGroup="svg:SVG.Description.class">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.title"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.title.element -->
  <xs:attributeGroup name="attlist.title">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.title.attlist -->
  <!-- metadata: Metadata Element ........................ -->
  <xs:element name="metadata" substitutionGroup="svg:SVG.Description.class">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.metadata"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.metadata.element -->
  <xs:attributeGroup name="attlist.metadata">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.metadata.attlist -->
  <!-- symbol: Symbol Element ............................ -->
  <xs:complexType name="SVG.symbol.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="symbol" substitutionGroup="svg:SVG.Structure.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.symbol.content">
          <xs:attributeGroup ref="svg:attlist.symbol"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.symbol.element -->
  <xs:attributeGroup name="attlist.symbol">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="viewBox" type="svg:ViewBoxSpec.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.symbol.attlist -->
  <!-- use: Use Element .................................. -->
  <xs:complexType name="SVG.use.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="use" substitutionGroup="svg:SVG.Use.class"/>
  <!-- end of SVG.use.element -->
  <xs:attributeGroup name="attlist.use">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkEmbed.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.use.attlist -->
  <!-- end of svg-structure.mod -->
  <!-- Conditional Processing Module ............................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Conditional Processing Module ................................. -->
  <!--
    file: svg-conditional.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-conditional.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-conditional.mod"
    
    .......................................................................
  -->
  <!--
    Conditional Processing
    
       switch
    
    This module declares markup to provide support for conditional processing.
  -->
  <!-- extension list specification -->
  <!-- feature list specification -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Conditional.class ............................. -->
  <!-- SVG.Conditional.attrib ............................ -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- switch: Switch Element ............................ -->
  <xs:complexType name="SVG.switch.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:svg"/>
        <xs:element ref="svg:g"/>
        <xs:element ref="svg:use"/>
        <xs:element ref="svg:text"/>
        <xs:element ref="svg:SVG.Animation.class"/>
        <xs:element ref="svg:SVG.Conditional.class"/>
        <xs:element ref="svg:SVG.Image.class"/>
        <xs:element ref="svg:SVG.Shape.class"/>
        <xs:element ref="svg:SVG.Hyperlink.class"/>
        <xs:element ref="svg:SVG.Extensibility.class"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="switch" substitutionGroup="svg:SVG.Conditional.class"/>
  <!-- end of SVG.switch.element -->
  <xs:attributeGroup name="attlist.switch">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.switch.attlist -->
  <!-- end of svg-conditional.mod -->
  <!-- Image Module ................................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Image Module .................................................. -->
  <!--
    file: svg-image.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-image.mod,v 1.4 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-image.mod"
    
    .......................................................................
  -->
  <!--
    Image
    
       image
    
    This module declares markup to provide support for image.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Image.class ................................... -->
  <!-- image: Image Element .............................. -->
  <xs:complexType name="SVG.image.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="image" substitutionGroup="svg:SVG.Image.class"/>
  <!-- end of SVG.image.element -->
  <xs:attributeGroup name="attlist.image">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Viewport.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.ColorProfile.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkEmbed.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="height" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.image.attlist -->
  <!-- end of svg-image.mod -->
  <!-- Style Module ................................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Style Module .................................................. -->
  <!--
    file: svg-style.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-style.mod,v 1.3 2002/10/24 17:40:16 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-style.mod"
    
    .......................................................................
  -->
  <!--
    Style
    
       style
    
    This module declares markup to provide support for stylesheet.
  -->
  <!-- list of classes -->
  <!-- comma-separated list of media descriptors. -->
  <xs:simpleType name="MediaDesc.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- style sheet data -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Style.class ................................... -->
  <!-- SVG.Style.attrib .................................. -->
  <!-- style: Style Element .............................. -->
  <xs:element name="style" substitutionGroup="svg:SVG.Style.class"/>
  <!-- end of SVG.style.element -->
  <xs:attributeGroup name="attlist.style">
    <xs:attribute ref="xml:space"/>
    <xs:attributeGroup ref="svg:SVG.id.attrib"/>
    <xs:attributeGroup ref="svg:SVG.base.attrib"/>
    <xs:attributeGroup ref="svg:SVG.lang.attrib"/>
    <xs:attribute name="type" use="required" type="svg:ContentType.datatype"/>
    <xs:attribute name="media" type="svg:MediaDesc.datatype"/>
    <xs:attribute name="title" type="svg:Text.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.style.attlist -->
  <!-- end of svg-style.mod -->
  <!-- Shape Module ................................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Shape Module .................................................. -->
  <!--
    file: svg-shape.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-shape.mod,v 1.3 2002/10/24 17:40:16 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-shape.mod"
    
    .......................................................................
  -->
  <!--
    Shape
    
       path, rect, circle, line, ellipse, polyline, polygon
    
    This module declares markup to provide support for graphical shapes.
  -->
  <!-- a list of points -->
  <xs:simpleType name="Points.datatype">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Shape.class ................................... -->
  <!-- path: Path Element ................................ -->
  <xs:complexType name="SVG.path.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="path" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.path.content">
          <xs:attributeGroup ref="svg:attlist.path"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.path.element -->
  <xs:attributeGroup name="attlist.path">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Marker.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="d" use="required" type="svg:PathData.datatype"/>
    <xs:attribute name="pathLength" type="svg:Number.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.path.attlist -->
  <!-- rect: Rectangle Element ........................... -->
  <xs:complexType name="SVG.rect.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="rect" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.rect.content">
          <xs:attributeGroup ref="svg:attlist.rect"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.rect.element -->
  <xs:attributeGroup name="attlist.rect">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="height" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="rx" type="svg:Length.datatype"/>
    <xs:attribute name="ry" type="svg:Length.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.rect.attlist -->
  <!-- circle: Circle Element ............................ -->
  <xs:complexType name="SVG.circle.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="circle" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.circle.content">
          <xs:attributeGroup ref="svg:attlist.circle"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.circle.element -->
  <xs:attributeGroup name="attlist.circle">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="cx" type="svg:Coordinate.datatype"/>
    <xs:attribute name="cy" type="svg:Coordinate.datatype"/>
    <xs:attribute name="r" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.circle.attlist -->
  <!-- line: Line Element ................................ -->
  <xs:complexType name="SVG.line.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="line" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.line.content">
          <xs:attributeGroup ref="svg:attlist.line"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.line.element -->
  <xs:attributeGroup name="attlist.line">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Marker.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x1" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y1" type="svg:Coordinate.datatype"/>
    <xs:attribute name="x2" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y2" type="svg:Coordinate.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.line.attlist -->
  <!-- ellipse: Ellipse Element .......................... -->
  <xs:complexType name="SVG.ellipse.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ellipse" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.ellipse.content">
          <xs:attributeGroup ref="svg:attlist.ellipse"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.ellipse.element -->
  <xs:attributeGroup name="attlist.ellipse">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="cx" type="svg:Coordinate.datatype"/>
    <xs:attribute name="cy" type="svg:Coordinate.datatype"/>
    <xs:attribute name="rx" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="ry" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.ellipse.attlist -->
  <!-- polyline: Polyline Element ........................ -->
  <xs:complexType name="SVG.polyline.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="polyline" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.polyline.content">
          <xs:attributeGroup ref="svg:attlist.polyline"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.polyline.element -->
  <xs:attributeGroup name="attlist.polyline">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Marker.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="points" use="required" type="svg:Points.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.polyline.attlist -->
  <!-- polygon: Polygon Element .......................... -->
  <xs:complexType name="SVG.polygon.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Animation.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="polygon" substitutionGroup="svg:SVG.Shape.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.polygon.content">
          <xs:attributeGroup ref="svg:attlist.polygon"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.polygon.element -->
  <xs:attributeGroup name="attlist.polygon">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Marker.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="points" use="required" type="svg:Points.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.polygon.attlist -->
  <!-- end of svg-shape.mod -->
  <!-- Text Module ................................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Text Module ................................................... -->
  <!--
    file: svg-text.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-text.mod,v 1.4 2002/10/24 17:40:16 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-text.mod"
    
    .......................................................................
  -->
  <!--
    Text
    
       text, tspan, tref, textPath, altGlyph, altGlyphDef, altGlyphItem,
       glyphRef
    
    This module declares markup to provide support for alternate glyph.
  -->
  <!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
  <!-- 'font-family' property/attribute value (i.e., list of fonts) -->
  <!-- 'font-size' property/attribute value -->
  <!-- 'font-size-adjust' property/attribute value -->
  <!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
  <!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
  <!-- 'kerning' property/attribute value (e.g., 'auto', <length>) -->
  <!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., 'normal', <length>) -->
  <!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Text.class .................................... -->
  <!-- SVG.TextContent.class ............................. -->
  <!-- SVG.Text.attrib ................................... -->
  <!-- SVG.TextContent.attrib ............................ -->
  <!-- SVG.Font.attrib ................................... -->
  <!-- text: Text Element ................................ -->
  <xs:complexType name="SVG.text.content" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.TextContent.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="text" substitutionGroup="svg:SVG.Text.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.text.content">
          <xs:attributeGroup ref="svg:attlist.text"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.text.element -->
  <xs:attributeGroup name="attlist.text">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Text.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinates.datatype"/>
    <xs:attribute name="y" type="svg:Coordinates.datatype"/>
    <xs:attribute name="dx" type="svg:Lengths.datatype"/>
    <xs:attribute name="dy" type="svg:Lengths.datatype"/>
    <xs:attribute name="rotate" type="svg:Numbers.datatype"/>
    <xs:attribute name="textLength" type="svg:Length.datatype"/>
    <xs:attribute name="lengthAdjust">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="spacing"/>
          <xs:enumeration value="spacingAndGlyphs"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.text.attlist -->
  <!-- tspan: Text Span Element .......................... -->
  <xs:complexType name="SVG.tspan.content" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:tspan"/>
      <xs:element ref="svg:tref"/>
      <xs:element ref="svg:altGlyph"/>
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateColor"/>
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="tspan" substitutionGroup="svg:SVG.TextContent.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.tspan.content">
          <xs:attributeGroup ref="svg:attlist.tspan"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.tspan.element -->
  <xs:attributeGroup name="attlist.tspan">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinates.datatype"/>
    <xs:attribute name="y" type="svg:Coordinates.datatype"/>
    <xs:attribute name="dx" type="svg:Lengths.datatype"/>
    <xs:attribute name="dy" type="svg:Lengths.datatype"/>
    <xs:attribute name="rotate" type="svg:Numbers.datatype"/>
    <xs:attribute name="textLength" type="svg:Length.datatype"/>
    <xs:attribute name="lengthAdjust">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="spacing"/>
          <xs:enumeration value="spacingAndGlyphs"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.tspan.attlist -->
  <!-- tref: Text Reference Element ...................... -->
  <xs:complexType name="SVG.tref.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateColor"/>
      <xs:element ref="svg:SVG.Description.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="tref" substitutionGroup="svg:SVG.TextContent.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.tref.content">
          <xs:attributeGroup ref="svg:attlist.tref"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.tref.element -->
  <xs:attributeGroup name="attlist.tref">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinates.datatype"/>
    <xs:attribute name="y" type="svg:Coordinates.datatype"/>
    <xs:attribute name="dx" type="svg:Lengths.datatype"/>
    <xs:attribute name="dy" type="svg:Lengths.datatype"/>
    <xs:attribute name="rotate" type="svg:Numbers.datatype"/>
    <xs:attribute name="textLength" type="svg:Length.datatype"/>
    <xs:attribute name="lengthAdjust">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="spacing"/>
          <xs:enumeration value="spacingAndGlyphs"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.tref.attlist -->
  <!-- textPath: Text Path Element ....................... -->
  <xs:complexType name="SVG.textPath.content" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:tspan"/>
      <xs:element ref="svg:tref"/>
      <xs:element ref="svg:altGlyph"/>
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateColor"/>
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="textPath" substitutionGroup="svg:SVG.TextContent.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.textPath.content">
          <xs:attributeGroup ref="svg:attlist.textPath"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.textPath.element -->
  <xs:attributeGroup name="attlist.textPath">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="startOffset" type="svg:Length.datatype"/>
    <xs:attribute name="textLength" type="svg:Length.datatype"/>
    <xs:attribute name="lengthAdjust">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="spacing"/>
          <xs:enumeration value="spacingAndGlyphs"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="method">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="align"/>
          <xs:enumeration value="stretch"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="spacing">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="exact"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.textPath.attlist -->
  <!-- altGlyph: Alternate Glyph Element ................. -->
  <xs:element name="altGlyph" substitutionGroup="svg:SVG.TextContent.class">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="svg:attlist.altGlyph"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.altGlyph.element -->
  <xs:attributeGroup name="attlist.altGlyph">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinates.datatype"/>
    <xs:attribute name="y" type="svg:Coordinates.datatype"/>
    <xs:attribute name="dx" type="svg:Lengths.datatype"/>
    <xs:attribute name="dy" type="svg:Lengths.datatype"/>
    <xs:attribute name="glyphRef"/>
    <xs:attribute name="format"/>
    <xs:attribute name="rotate" type="svg:Numbers.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.altGlyph.attlist -->
  <!-- altGlyphDef: Alternate Glyph Definition Element ... -->
  <xs:complexType name="SVG.altGlyphDef.content">
    <xs:choice>
      <xs:element maxOccurs="unbounded" ref="svg:glyphRef"/>
      <xs:element maxOccurs="unbounded" ref="svg:altGlyphItem"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="altGlyphDef" substitutionGroup="svg:SVG.Text.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.altGlyphDef.content">
          <xs:attributeGroup ref="svg:attlist.altGlyphDef"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.altGlyphDef.element -->
  <xs:attributeGroup name="attlist.altGlyphDef">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.altGlyphDef.attlist -->
  <!-- altGlyphItem: Alternate Glyph Item Element ........ -->
  <xs:complexType name="SVG.altGlyphItem.content">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="svg:glyphRef"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="altGlyphItem">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.altGlyphItem.content">
          <xs:attributeGroup ref="svg:attlist.altGlyphItem"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.altGlyphItem.element -->
  <xs:attributeGroup name="attlist.altGlyphItem">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.altGlyphItem.attlist -->
  <!-- glyphRef: Glyph Reference Element ................. -->
  <xs:element name="glyphRef">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.glyphRef"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.glyphRef.element -->
  <xs:attributeGroup name="attlist.glyphRef">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attribute name="x" type="svg:Number.datatype"/>
    <xs:attribute name="y" type="svg:Number.datatype"/>
    <xs:attribute name="dx" type="svg:Number.datatype"/>
    <xs:attribute name="dy" type="svg:Number.datatype"/>
    <xs:attribute name="glyphRef"/>
    <xs:attribute name="format"/>
  </xs:attributeGroup>
  <!-- end of SVG.glyphRef.attlist -->
  <!-- end of svg-text.mod -->
  <!-- Marker Module ............................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Marker Module ................................................. -->
  <!--
    file: svg-marker.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-marker.mod,v 1.4 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Marker//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-marker.mod"
    
    .......................................................................
  -->
  <!--
    Marker
    
       marker
    
    This module declares markup to provide support for marker.
  -->
  <!-- 'marker' property/attribute value (e.g., 'none', <uri>) -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Marker.class .................................. -->
  <!-- SVG.Marker.attrib ................................. -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- marker: Marker Element ............................ -->
  <xs:complexType name="SVG.marker.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="marker" substitutionGroup="svg:SVG.Marker.class"/>
  <!-- end of SVG.marker.element -->
  <xs:attributeGroup name="attlist.marker">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="refX" type="svg:Coordinate.datatype"/>
    <xs:attribute name="refY" type="svg:Coordinate.datatype"/>
    <xs:attribute name="markerUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="strokeWidth"/>
          <xs:enumeration value="userSpaceOnUse"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="markerWidth" type="svg:Length.datatype"/>
    <xs:attribute name="markerHeight" type="svg:Length.datatype"/>
    <xs:attribute name="orient"/>
    <xs:attribute name="viewBox" type="svg:ViewBoxSpec.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.marker.attlist -->
  <!-- end of svg-marker.mod -->
  <!-- Color Profile Module ........................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Color Profile Module .......................................... -->
  <!--
    file: svg-profile.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-profile.mod,v 1.3 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-profile.mod"
    
    .......................................................................
  -->
  <!--
    Color Profile
    
       color-profile
    
    This module declares markup to provide support for color profile.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.ColorProfile.class ............................ -->
  <!-- SVG.ColorProfile.attrib ........................... -->
  <!-- color-profile: Color Profile Element .............. -->
  <xs:complexType name="SVG.color-profile.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="color-profile" substitutionGroup="svg:SVG.ColorProfile.class"/>
  <!-- end of SVG.color-profile.element -->
  <xs:attributeGroup name="attlist.color-profile">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attribute name="local"/>
    <xs:attribute name="name" use="required"/>
    <xs:attribute name="rendering-intent" default="auto">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="auto"/>
          <xs:enumeration value="perceptual"/>
          <xs:enumeration value="relative-colorimetric"/>
          <xs:enumeration value="saturation"/>
          <xs:enumeration value="absolute-colorimetric"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.color-profile.attlist -->
  <!-- end of svg-profile.mod -->
  <!-- Gradient Module ............................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Gradient Module ............................................... -->
  <!--
    file: svg-gradient.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-gradient.mod,v 1.3 2002/10/24 17:40:15 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-gradient.mod"
    
    .......................................................................
  -->
  <!--
    Gradient
    
       linearGradient, radialGradient, stop
    
    This module declares markup to provide support for gradient fill.
  -->
  <!-- a <number> or a <percentage> -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Gradient.class ................................ -->
  <!-- SVG.Gradient.attrib ............................... -->
  <!-- linearGradient: Linear Gradient Element ........... -->
  <xs:complexType name="SVG.linearGradient.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:stop"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateTransform"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="linearGradient" substitutionGroup="svg:SVG.Gradient.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.linearGradient.content">
          <xs:attributeGroup ref="svg:attlist.linearGradient"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.linearGradient.element -->
  <xs:attributeGroup name="attlist.linearGradient">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Gradient.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x1" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y1" type="svg:Coordinate.datatype"/>
    <xs:attribute name="x2" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y2" type="svg:Coordinate.datatype"/>
    <xs:attribute name="gradientUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="gradientTransform" type="svg:TransformList.datatype"/>
    <xs:attribute name="spreadMethod">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="pad"/>
          <xs:enumeration value="reflect"/>
          <xs:enumeration value="repeat"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.linearGradient.attlist -->
  <!-- radialGradient: Radial Gradient Element ........... -->
  <xs:complexType name="SVG.radialGradient.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:stop"/>
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateTransform"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="radialGradient" substitutionGroup="svg:SVG.Gradient.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.radialGradient.content">
          <xs:attributeGroup ref="svg:attlist.radialGradient"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.radialGradient.element -->
  <xs:attributeGroup name="attlist.radialGradient">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Gradient.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="cx" type="svg:Coordinate.datatype"/>
    <xs:attribute name="cy" type="svg:Coordinate.datatype"/>
    <xs:attribute name="r" type="svg:Length.datatype"/>
    <xs:attribute name="fx" type="svg:Coordinate.datatype"/>
    <xs:attribute name="fy" type="svg:Coordinate.datatype"/>
    <xs:attribute name="gradientUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="gradientTransform" type="svg:TransformList.datatype"/>
    <xs:attribute name="spreadMethod">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="pad"/>
          <xs:enumeration value="reflect"/>
          <xs:enumeration value="repeat"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.radialGradient.attlist -->
  <!-- stop: Stop Element ................................ -->
  <xs:complexType name="SVG.stop.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateColor"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="stop">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.stop.content">
          <xs:attributeGroup ref="svg:attlist.stop"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.stop.element -->
  <xs:attributeGroup name="attlist.stop">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Gradient.attrib"/>
    <xs:attribute name="offset" use="required" type="svg:NumberOrPercentage.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.stop.attlist -->
  <!-- end of svg-gradient.mod -->
  <!-- Pattern Module .............................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Pattern Module ................................................ -->
  <!--
    file: svg-pattern.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-pattern.mod,v 1.4 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-pattern.mod"
    
    .......................................................................
  -->
  <!--
    Pattern
    
       pattern
    
    This module declares markup to provide support for pattern fill.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Pattern.class ................................. -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- pattern: Pattern Element .......................... -->
  <xs:complexType name="SVG.pattern.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="pattern" substitutionGroup="svg:SVG.Pattern.class"/>
  <!-- end of SVG.pattern.element -->
  <xs:attributeGroup name="attlist.pattern">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="patternUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="patternContentUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="patternTransform" type="svg:TransformList.datatype"/>
    <xs:attribute name="viewBox" type="svg:ViewBoxSpec.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.pattern.attlist -->
  <!-- end of svg-pattern.mod -->
  <!-- Clip Module ................................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Clip Module ................................................... -->
  <!--
    file: svg-clip.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-clip.mod,v 1.3 2002/10/24 17:40:15 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Clip//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-clip.mod"
    
    .......................................................................
  -->
  <!--
    Clip
    
       clipPath
    
    This module declares markup to provide support for clipping.
  -->
  <!-- 'clip-path' property/attribute value (e.g., 'none', <uri>) -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Clip.class .................................... -->
  <!-- SVG.Clip.attrib ................................... -->
  <!-- clipPath: Clip Path Element ....................... -->
  <xs:complexType name="SVG.clipPath.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:SVG.Animation.class"/>
        <xs:element ref="svg:SVG.Use.class"/>
        <xs:element ref="svg:SVG.Shape.class"/>
        <xs:element ref="svg:SVG.Text.class"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="clipPath" substitutionGroup="svg:SVG.Clip.class"/>
  <!-- end of SVG.clipPath.element -->
  <xs:attributeGroup name="attlist.clipPath">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Text.attrib"/>
    <xs:attributeGroup ref="svg:SVG.TextContent.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Font.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Paint.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Opacity.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Graphics.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Clip.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Mask.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Filter.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Cursor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
    <xs:attribute name="clipPathUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.clipPath.attlist -->
  <!-- end of svg-clip.mod -->
  <!-- Mask Module ................................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Mask Module ................................................... -->
  <!--
    file: svg-mask.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-mask.mod,v 1.4 2002/11/14 15:11:03 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-mask.mod"
    
    .......................................................................
  -->
  <!--
    Mask
    
       mask
    
    This module declares markup to provide support for masking.
  -->
  <!-- 'mask' property/attribute value (e.g., 'none', <uri>) -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Mask.class .................................... -->
  <!-- SVG.Mask.attrib ................................... -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- mask: Mask Element ................................ -->
  <xs:complexType name="SVG.mask.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="mask" substitutionGroup="svg:SVG.Mask.class"/>
  <!-- end of SVG.mask.element -->
  <xs:attributeGroup name="attlist.mask">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="maskUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="maskContentUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.mask.attlist -->
  <!-- end of svg-mask.mod -->
  <!-- Filter Module ............................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Filter Module ................................................. -->
  <!--
    file: svg-filter.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-filter.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Filter//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-filter.mod"
    
    .......................................................................
  -->
  <!--
    Filter
    
       filter, feBlend, feColorMatrix, feComponentTransfer, feComposite,
       feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feFlood,
       feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset,
       feSpecularLighting, feTile, feTurbulence, feDistantLight, fePointLight,
       feSpotLight, feFuncR, feFuncG, feFuncB, feFuncA
    
    This module declares markup to provide support for filter effect.
  -->
  <!-- 'filter' property/attribute value (e.g., 'none', <uri>) -->
  <!-- list of <number>s, but at least one and at most two -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Filter.class .................................. -->
  <!-- SVG.FilterPrimitive.class ......................... -->
  <!-- SVG.Filter.attrib ................................. -->
  <!-- SVG.FilterColor.attrib ............................ -->
  <!-- SVG.FilterPrimitive.attrib ........................ -->
  <xs:attributeGroup name="SVG.FilterPrimitive.attrib">
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="result"/>
  </xs:attributeGroup>
  <!-- SVG.FilterPrimitiveWithIn.attrib .................. -->
  <xs:attributeGroup name="SVG.FilterPrimitiveWithIn.attrib">
    <xs:attributeGroup ref="svg:SVG.FilterPrimitive.attrib"/>
    <xs:attribute name="in"/>
  </xs:attributeGroup>
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- filter: Filter Element ............................ -->
  <xs:complexType name="SVG.filter.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:SVG.FilterPrimitive.class"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="filter" substitutionGroup="svg:SVG.Filter.class"/>
  <!-- end of SVG.filter.element -->
  <xs:attributeGroup name="attlist.filter">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" type="svg:Length.datatype"/>
    <xs:attribute name="height" type="svg:Length.datatype"/>
    <xs:attribute name="filterRes" type="svg:NumberOptionalNumber.datatype"/>
    <xs:attribute name="filterUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="primitiveUnits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="userSpaceOnUse"/>
          <xs:enumeration value="objectBoundingBox"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.filter.attlist -->
  <!-- feBlend: Filter Effect Blend Element .............. -->
  <xs:complexType name="SVG.feBlend.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feBlend" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feBlend.content">
          <xs:attributeGroup ref="svg:attlist.feBlend"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feBlend.element -->
  <xs:attributeGroup name="attlist.feBlend">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="in2" use="required"/>
    <xs:attribute name="mode" default="normal">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="multiply"/>
          <xs:enumeration value="screen"/>
          <xs:enumeration value="darken"/>
          <xs:enumeration value="lighten"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.feBlend.attlist -->
  <!-- feColorMatrix: Filter Effect Color Matrix Element . -->
  <xs:complexType name="SVG.feColorMatrix.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feColorMatrix" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feColorMatrix.content">
          <xs:attributeGroup ref="svg:attlist.feColorMatrix"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feColorMatrix.element -->
  <xs:attributeGroup name="attlist.feColorMatrix">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="type" default="matrix">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="matrix"/>
          <xs:enumeration value="saturate"/>
          <xs:enumeration value="hueRotate"/>
          <xs:enumeration value="luminanceToAlpha"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="values"/>
  </xs:attributeGroup>
  <!-- end of SVG.feColorMatrix.attlist -->
  <!-- feComponentTransfer: Filter Effect Component Transfer Element -->
  <xs:complexType name="SVG.feComponentTransfer.content">
    <xs:sequence>
      <xs:element minOccurs="0" ref="svg:feFuncR"/>
      <xs:element minOccurs="0" ref="svg:feFuncG"/>
      <xs:element minOccurs="0" ref="svg:feFuncB"/>
      <xs:element minOccurs="0" ref="svg:feFuncA"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="feComponentTransfer" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feComponentTransfer.content">
          <xs:attributeGroup ref="svg:attlist.feComponentTransfer"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feComponentTransfer.element -->
  <xs:attributeGroup name="attlist.feComponentTransfer">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.feComponentTransfer.attlist -->
  <!-- feComposite: Filter Effect Composite Element ...... -->
  <xs:complexType name="SVG.feComposite.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feComposite" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feComposite.content">
          <xs:attributeGroup ref="svg:attlist.feComposite"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feComposite.element -->
  <xs:attributeGroup name="attlist.feComposite">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="in2" use="required"/>
    <xs:attribute name="operator" default="over">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="over"/>
          <xs:enumeration value="in"/>
          <xs:enumeration value="out"/>
          <xs:enumeration value="atop"/>
          <xs:enumeration value="xor"/>
          <xs:enumeration value="arithmetic"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="k1" type="svg:Number.datatype"/>
    <xs:attribute name="k2" type="svg:Number.datatype"/>
    <xs:attribute name="k3" type="svg:Number.datatype"/>
    <xs:attribute name="k4" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feComposite.attlist -->
  <!-- feConvolveMatrix: Filter Effect Convolve Matrix Element -->
  <xs:complexType name="SVG.feConvolveMatrix.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feConvolveMatrix" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feConvolveMatrix.content">
          <xs:attributeGroup ref="svg:attlist.feConvolveMatrix"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feConvolveMatrix.element -->
  <xs:attributeGroup name="attlist.feConvolveMatrix">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="order" use="required" type="svg:NumberOptionalNumber.datatype"/>
    <xs:attribute name="kernelMatrix" use="required"/>
    <xs:attribute name="divisor" type="svg:Number.datatype"/>
    <xs:attribute name="bias" type="svg:Number.datatype"/>
    <xs:attribute name="targetX" type="svg:Integer.datatype"/>
    <xs:attribute name="targetY" type="svg:Integer.datatype"/>
    <xs:attribute name="edgeMode" default="duplicate">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="duplicate"/>
          <xs:enumeration value="wrap"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber.datatype"/>
    <xs:attribute name="preserveAlpha" type="svg:Boolean.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feConvolveMatrix.attlist -->
  <!-- feDiffuseLighting: Filter Effect Diffuse Lighting Element -->
  <xs:complexType name="SVG.feDiffuseLighting.content">
    <xs:sequence>
      <xs:choice>
        <xs:element ref="svg:feDistantLight"/>
        <xs:element ref="svg:fePointLight"/>
        <xs:element ref="svg:feSpotLight"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="feDiffuseLighting" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feDiffuseLighting.content">
          <xs:attributeGroup ref="svg:attlist.feDiffuseLighting"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feDiffuseLighting.element -->
  <xs:attributeGroup name="attlist.feDiffuseLighting">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="lighting-color" type="svg:SVGColor.datatype"/>
    <xs:attribute name="surfaceScale" type="svg:Number.datatype"/>
    <xs:attribute name="diffuseConstant" type="svg:Number.datatype"/>
    <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feDiffuseLighting.attlist -->
  <!-- feDisplacementMap: Filter Effect Displacement Map Element -->
  <xs:complexType name="SVG.feDisplacementMap.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feDisplacementMap" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feDisplacementMap.content">
          <xs:attributeGroup ref="svg:attlist.feDisplacementMap"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feDisplacementMap.element -->
  <xs:attributeGroup name="attlist.feDisplacementMap">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="in2" use="required"/>
    <xs:attribute name="scale" type="svg:Number.datatype"/>
    <xs:attribute name="xChannelSelector" default="A">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="R"/>
          <xs:enumeration value="G"/>
          <xs:enumeration value="B"/>
          <xs:enumeration value="A"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="yChannelSelector" default="A">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="R"/>
          <xs:enumeration value="G"/>
          <xs:enumeration value="B"/>
          <xs:enumeration value="A"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.feDisplacementMap.attlist -->
  <!-- feFlood: Filter Effect Flood Element .............. -->
  <xs:complexType name="SVG.feFlood.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateColor"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feFlood" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feFlood.content">
          <xs:attributeGroup ref="svg:attlist.feFlood"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feFlood.element -->
  <xs:attributeGroup name="attlist.feFlood">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="flood-color" type="svg:SVGColor.datatype"/>
    <xs:attribute name="flood-opacity" type="svg:OpacityValue.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feFlood.attlist -->
  <!-- feGaussianBlur: Filter Effect Gaussian Blur Element -->
  <xs:complexType name="SVG.feGaussianBlur.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feGaussianBlur" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feGaussianBlur.content">
          <xs:attributeGroup ref="svg:attlist.feGaussianBlur"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feGaussianBlur.element -->
  <xs:attributeGroup name="attlist.feGaussianBlur">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="stdDeviation" type="svg:NumberOptionalNumber.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feGaussianBlur.attlist -->
  <!-- feImage: Filter Effect Image Element .............. -->
  <xs:complexType name="SVG.feImage.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
      <xs:element ref="svg:animateTransform"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feImage" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feImage.content">
          <xs:attributeGroup ref="svg:attlist.feImage"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feImage.element -->
  <xs:attributeGroup name="attlist.feImage">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitive.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkEmbed.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feImage.attlist -->
  <!-- feMerge: Filter Effect Merge Element .............. -->
  <xs:complexType name="SVG.feMerge.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:feMergeNode"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="feMerge" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feMerge.content">
          <xs:attributeGroup ref="svg:attlist.feMerge"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feMerge.element -->
  <xs:attributeGroup name="attlist.feMerge">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitive.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.feMerge.attlist -->
  <!-- feMergeNode: Filter Effect Merge Node Element ..... -->
  <xs:complexType name="SVG.feMergeNode.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feMergeNode">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feMergeNode.content">
          <xs:attributeGroup ref="svg:attlist.feMergeNode"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feMergeNode.element -->
  <xs:attributeGroup name="attlist.feMergeNode">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="in"/>
  </xs:attributeGroup>
  <!-- end of SVG.feMergeNode.attlist -->
  <!-- feMorphology: Filter Effect Morphology Element .... -->
  <xs:complexType name="SVG.feMorphology.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feMorphology" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feMorphology.content">
          <xs:attributeGroup ref="svg:attlist.feMorphology"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feMorphology.element -->
  <xs:attributeGroup name="attlist.feMorphology">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="operator" default="erode">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="erode"/>
          <xs:enumeration value="dilate"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="radius" type="svg:NumberOptionalNumber.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feMorphology.attlist -->
  <!-- feOffset: Filter Effect Offset Element ............ -->
  <xs:complexType name="SVG.feOffset.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feOffset" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feOffset.content">
          <xs:attributeGroup ref="svg:attlist.feOffset"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feOffset.element -->
  <xs:attributeGroup name="attlist.feOffset">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="dx" type="svg:Number.datatype"/>
    <xs:attribute name="dy" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feOffset.attlist -->
  <!-- feSpecularLighting: Filter Effect Specular Lighting Element -->
  <xs:complexType name="SVG.feSpecularLighting.content">
    <xs:sequence>
      <xs:choice>
        <xs:element ref="svg:feDistantLight"/>
        <xs:element ref="svg:fePointLight"/>
        <xs:element ref="svg:feSpotLight"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:animate"/>
        <xs:element ref="svg:set"/>
        <xs:element ref="svg:animateColor"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="feSpecularLighting" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feSpecularLighting.content">
          <xs:attributeGroup ref="svg:attlist.feSpecularLighting"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feSpecularLighting.element -->
  <xs:attributeGroup name="attlist.feSpecularLighting">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Color.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
    <xs:attribute name="lighting-color" type="svg:SVGColor.datatype"/>
    <xs:attribute name="surfaceScale" type="svg:Number.datatype"/>
    <xs:attribute name="specularConstant" type="svg:Number.datatype"/>
    <xs:attribute name="specularExponent" type="svg:Number.datatype"/>
    <xs:attribute name="kernelUnitLength" type="svg:NumberOptionalNumber.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feSpecularLighting.attlist -->
  <!-- feTile: Filter Effect Tile Element ................ -->
  <xs:complexType name="SVG.feTile.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feTile" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feTile.content">
          <xs:attributeGroup ref="svg:attlist.feTile"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feTile.element -->
  <xs:attributeGroup name="attlist.feTile">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitiveWithIn.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.feTile.attlist -->
  <!-- feTurbulence: Filter Effect Turbulence Element .... -->
  <xs:complexType name="SVG.feTurbulence.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feTurbulence" substitutionGroup="svg:SVG.FilterPrimitive.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feTurbulence.content">
          <xs:attributeGroup ref="svg:attlist.feTurbulence"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feTurbulence.element -->
  <xs:attributeGroup name="attlist.feTurbulence">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterColor.attrib"/>
    <xs:attributeGroup ref="svg:SVG.FilterPrimitive.attrib"/>
    <xs:attribute name="baseFrequency" type="svg:NumberOptionalNumber.datatype"/>
    <xs:attribute name="numOctaves" type="svg:Integer.datatype"/>
    <xs:attribute name="seed" type="svg:Number.datatype"/>
    <xs:attribute name="stitchTiles" default="noStitch">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="stitch"/>
          <xs:enumeration value="noStitch"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="type" default="turbulence">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="fractalNoise"/>
          <xs:enumeration value="turbulence"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.feTurbulence.attlist -->
  <!-- feDistantLight: Filter Effect Distant Light Element -->
  <xs:complexType name="SVG.feDistantLight.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feDistantLight">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feDistantLight.content">
          <xs:attributeGroup ref="svg:attlist.feDistantLight"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feDistantLight.element -->
  <xs:attributeGroup name="attlist.feDistantLight">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="azimuth" type="svg:Number.datatype"/>
    <xs:attribute name="elevation" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feDistantLight.attlist -->
  <!-- fePointLight: Filter Effect Point Light Element ... -->
  <xs:complexType name="SVG.fePointLight.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="fePointLight">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.fePointLight.content">
          <xs:attributeGroup ref="svg:attlist.fePointLight"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.fePointLight.element -->
  <xs:attributeGroup name="attlist.fePointLight">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="x" type="svg:Number.datatype"/>
    <xs:attribute name="y" type="svg:Number.datatype"/>
    <xs:attribute name="z" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.fePointLight.attlist -->
  <!-- feSpotLight: Filter Effect Spot Light Element ..... -->
  <xs:complexType name="SVG.feSpotLight.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feSpotLight">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feSpotLight.content">
          <xs:attributeGroup ref="svg:attlist.feSpotLight"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feSpotLight.element -->
  <xs:attributeGroup name="attlist.feSpotLight">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="x" type="svg:Number.datatype"/>
    <xs:attribute name="y" type="svg:Number.datatype"/>
    <xs:attribute name="z" type="svg:Number.datatype"/>
    <xs:attribute name="pointsAtX" type="svg:Number.datatype"/>
    <xs:attribute name="pointsAtY" type="svg:Number.datatype"/>
    <xs:attribute name="pointsAtZ" type="svg:Number.datatype"/>
    <xs:attribute name="specularExponent" type="svg:Number.datatype"/>
    <xs:attribute name="limitingConeAngle" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feSpotLight.attlist -->
  <!-- feFuncR: Filter Effect Function Red Element ....... -->
  <xs:complexType name="SVG.feFuncR.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feFuncR">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feFuncR.content">
          <xs:attributeGroup ref="svg:attlist.feFuncR"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feFuncR.element -->
  <xs:attributeGroup name="attlist.feFuncR">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="identity"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="gamma"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tableValues"/>
    <xs:attribute name="slope" type="svg:Number.datatype"/>
    <xs:attribute name="intercept" type="svg:Number.datatype"/>
    <xs:attribute name="amplitude" type="svg:Number.datatype"/>
    <xs:attribute name="exponent" type="svg:Number.datatype"/>
    <xs:attribute name="offset" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feFuncR.attlist -->
  <!-- feFuncG: Filter Effect Function Green Element ..... -->
  <xs:complexType name="SVG.feFuncG.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feFuncG">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feFuncG.content">
          <xs:attributeGroup ref="svg:attlist.feFuncG"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feFuncG.element -->
  <xs:attributeGroup name="attlist.feFuncG">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="identity"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="gamma"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tableValues"/>
    <xs:attribute name="slope" type="svg:Number.datatype"/>
    <xs:attribute name="intercept" type="svg:Number.datatype"/>
    <xs:attribute name="amplitude" type="svg:Number.datatype"/>
    <xs:attribute name="exponent" type="svg:Number.datatype"/>
    <xs:attribute name="offset" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feFuncG.attlist -->
  <!-- feFuncB: Filter Effect Function Blue Element ...... -->
  <xs:complexType name="SVG.feFuncB.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feFuncB">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feFuncB.content">
          <xs:attributeGroup ref="svg:attlist.feFuncB"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feFuncB.element -->
  <xs:attributeGroup name="attlist.feFuncB">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="identity"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="gamma"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tableValues"/>
    <xs:attribute name="slope" type="svg:Number.datatype"/>
    <xs:attribute name="intercept" type="svg:Number.datatype"/>
    <xs:attribute name="amplitude" type="svg:Number.datatype"/>
    <xs:attribute name="exponent" type="svg:Number.datatype"/>
    <xs:attribute name="offset" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feFuncB.attlist -->
  <!-- feFuncA: Filter Effect Function Alpha Element ..... -->
  <xs:complexType name="SVG.feFuncA.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:animate"/>
      <xs:element ref="svg:set"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="feFuncA">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.feFuncA.content">
          <xs:attributeGroup ref="svg:attlist.feFuncA"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.feFuncA.element -->
  <xs:attributeGroup name="attlist.feFuncA">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="identity"/>
          <xs:enumeration value="table"/>
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="gamma"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="tableValues"/>
    <xs:attribute name="slope" type="svg:Number.datatype"/>
    <xs:attribute name="intercept" type="svg:Number.datatype"/>
    <xs:attribute name="amplitude" type="svg:Number.datatype"/>
    <xs:attribute name="exponent" type="svg:Number.datatype"/>
    <xs:attribute name="offset" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.feFuncA.attlist -->
  <!-- end of svg-filter.mod -->
  <!-- Cursor Module ............................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Cursor Module ................................................. -->
  <!--
    file: svg-cursor.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-cursor.mod,v 1.3 2002/10/24 17:40:15 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Cursor//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-cursor.mod"
    
    .......................................................................
  -->
  <!--
    Cursor
    
       cursor
    
    This module declares markup to provide support for cursor.
  -->
  <!-- 'cursor' property/attribute value (e.g., 'crosshair', <uri>) -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Cursor.class .................................. -->
  <!-- SVG.Cursor.attrib ................................. -->
  <!-- cursor: Cursor Element ............................ -->
  <xs:complexType name="SVG.cursor.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="cursor" substitutionGroup="svg:SVG.Cursor.class"/>
  <!-- end of SVG.cursor.element -->
  <xs:attributeGroup name="attlist.cursor">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.cursor.attlist -->
  <!-- end of svg-cursor.mod -->
  <!-- Hyperlinking Module ......................................... -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Hyperlinking Module ........................................... -->
  <!--
    file: svg-hyperlink.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-hyperlink.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-hyperlink.mod"
    
    .......................................................................
  -->
  <!--
    Hyperlinking
    
       a
    
    This module declares markup to provide support for hyper linking.
  -->
  <!-- link to this target -->
  <xs:simpleType name="LinkTarget.datatype">
    <xs:restriction base="xs:NMTOKEN"/>
  </xs:simpleType>
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Hyperlink.class ............................... -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- a: Anchor Element ................................. -->
  <xs:complexType name="SVG.a.content" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="a" substitutionGroup="svg:SVG.Hyperlink.class"/>
  <!-- end of SVG.a.element -->
  <xs:attributeGroup name="attlist.a">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkReplace.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
    <xs:attribute name="target" type="svg:LinkTarget.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.a.attlist -->
  <!-- end of svg-hyperlink.mod -->
  <!-- View Module ................................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 View Module ................................................... -->
  <!--
    file: svg-view.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-view.mod,v 1.3 2002/10/24 17:40:16 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-view.mod"
    
    .......................................................................
  -->
  <!--
    View
    
       view
    
    This module declares markup to provide support for view.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.View.class .................................... -->
  <!-- view: View Element ................................ -->
  <xs:complexType name="SVG.view.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="view" substitutionGroup="svg:SVG.View.class"/>
  <!-- end of SVG.view.element -->
  <xs:attributeGroup name="attlist.view">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="viewBox" type="svg:ViewBoxSpec.datatype"/>
    <xs:attribute name="preserveAspectRatio" default="xMidYMid meet" type="svg:PreserveAspectRatioSpec.datatype"/>
    <xs:attribute name="zoomAndPan" default="magnify">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="disable"/>
          <xs:enumeration value="magnify"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="viewTarget"/>
  </xs:attributeGroup>
  <!-- end of SVG.view.attlist -->
  <!-- end of svg-view.mod -->
  <!-- Scripting Module ............................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Scripting Module .............................................. -->
  <!--
    file: svg-script.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-script.mod,v 1.3 2002/10/24 17:40:16 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-script.mod"
    
    .......................................................................
  -->
  <!--
    Scripting
    
       script
    
    This module declares markup to provide support for scripting.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Script.class .................................. -->
  <!-- script: Script Element ............................ -->
  <xs:element name="script" substitutionGroup="svg:SVG.Script.class"/>
  <!-- end of SVG.script.element -->
  <xs:attributeGroup name="attlist.script">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="type" use="required" type="svg:ContentType.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.script.attlist -->
  <!-- end of svg-script.mod -->
  <!-- Animation Module ............................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Animation Module .............................................. -->
  <!--
    file: svg-animation.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-animation.mod,v 1.3 2002/10/24 17:40:14 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-animation.mod"
    
    .......................................................................
  -->
  <!--
    Animation
    
       animate, set, animateMotion, animateColor, animateTransform, mpath
    
    This module declares markup to provide support for animation.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Animation.class ............................... -->
  <!-- SVG.Animation.attrib .............................. -->
  <xs:attributeGroup name="SVG.Animation.attrib">
    <xs:attributeGroup ref="svg:SVG.XLink.attrib"/>
  </xs:attributeGroup>
  <!-- SVG.AnimationAttribute.attrib ..................... -->
  <xs:attributeGroup name="SVG.AnimationAttribute.attrib">
    <xs:attribute name="attributeName" use="required"/>
    <xs:attribute name="attributeType"/>
  </xs:attributeGroup>
  <!-- SVG.AnimationTiming.attrib ........................ -->
  <xs:attributeGroup name="SVG.AnimationTiming.attrib">
    <xs:attribute name="begin"/>
    <xs:attribute name="dur"/>
    <xs:attribute name="end"/>
    <xs:attribute name="min"/>
    <xs:attribute name="max"/>
    <xs:attribute name="restart" default="always">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="always"/>
          <xs:enumeration value="never"/>
          <xs:enumeration value="whenNotActive"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="repeatCount"/>
    <xs:attribute name="repeatDur"/>
    <xs:attribute name="fill" default="remove">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="remove"/>
          <xs:enumeration value="freeze"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- SVG.AnimationValue.attrib ......................... -->
  <xs:attributeGroup name="SVG.AnimationValue.attrib">
    <xs:attribute name="calcMode" default="linear">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="paced"/>
          <xs:enumeration value="spline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="values"/>
    <xs:attribute name="keyTimes"/>
    <xs:attribute name="keySplines"/>
    <xs:attribute name="from"/>
    <xs:attribute name="to"/>
    <xs:attribute name="by"/>
  </xs:attributeGroup>
  <!-- SVG.AnimationAddtion.attrib ....................... -->
  <xs:attributeGroup name="SVG.AnimationAddtion.attrib">
    <xs:attribute name="additive" default="replace">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="replace"/>
          <xs:enumeration value="sum"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="accumulate" default="none">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="none"/>
          <xs:enumeration value="sum"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- animate: Animate Element .......................... -->
  <xs:complexType name="SVG.animate.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="animate" substitutionGroup="svg:SVG.Animation.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.animate.content">
          <xs:attributeGroup ref="svg:attlist.animate"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.animate.element -->
  <xs:attributeGroup name="attlist.animate">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Animation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAttribute.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationTiming.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationValue.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAddtion.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.animate.attlist -->
  <!-- set: Set Element .................................. -->
  <xs:complexType name="SVG.set.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="set" substitutionGroup="svg:SVG.Animation.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.set.content">
          <xs:attributeGroup ref="svg:attlist.set"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.set.element -->
  <xs:attributeGroup name="attlist.set">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Animation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAttribute.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationTiming.attrib"/>
    <xs:attribute name="to"/>
  </xs:attributeGroup>
  <!-- end of SVG.set.attlist -->
  <!-- animateMotion: Animate Motion Element ............. -->
  <xs:complexType name="SVG.animateMotion.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" ref="svg:mpath"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="animateMotion" substitutionGroup="svg:SVG.Animation.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.animateMotion.content">
          <xs:attributeGroup ref="svg:attlist.animateMotion"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.animateMotion.element -->
  <xs:attributeGroup name="attlist.animateMotion">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Animation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationTiming.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAddtion.attrib"/>
    <xs:attribute name="calcMode" default="paced">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="discrete"/>
          <xs:enumeration value="linear"/>
          <xs:enumeration value="paced"/>
          <xs:enumeration value="spline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="values"/>
    <xs:attribute name="keyTimes"/>
    <xs:attribute name="keySplines"/>
    <xs:attribute name="from"/>
    <xs:attribute name="to"/>
    <xs:attribute name="by"/>
    <xs:attribute name="path"/>
    <xs:attribute name="keyPoints"/>
    <xs:attribute name="rotate"/>
    <xs:attribute name="origin"/>
  </xs:attributeGroup>
  <!-- end of SVG.animateMotion.attlist -->
  <!-- animateColor: Animate Color Element ............... -->
  <xs:complexType name="SVG.animateColor.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="animateColor" substitutionGroup="svg:SVG.Animation.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.animateColor.content">
          <xs:attributeGroup ref="svg:attlist.animateColor"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.animateColor.element -->
  <xs:attributeGroup name="attlist.animateColor">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Animation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAttribute.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationTiming.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationValue.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAddtion.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.animateColor.attlist -->
  <!-- animateTransform: Animate Transform Element ....... -->
  <xs:complexType name="SVG.animateTransform.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="animateTransform" substitutionGroup="svg:SVG.Animation.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.animateTransform.content">
          <xs:attributeGroup ref="svg:attlist.animateTransform"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.animateTransform.element -->
  <xs:attributeGroup name="attlist.animateTransform">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Animation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAttribute.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationTiming.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationValue.attrib"/>
    <xs:attributeGroup ref="svg:SVG.AnimationAddtion.attrib"/>
    <xs:attribute name="type" default="translate">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="translate"/>
          <xs:enumeration value="scale"/>
          <xs:enumeration value="rotate"/>
          <xs:enumeration value="skewX"/>
          <xs:enumeration value="skewY"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- end of SVG.animateTransform.attlist -->
  <!-- mpath: Motion Path Element ........................ -->
  <xs:complexType name="SVG.mpath.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="mpath">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.mpath.content">
          <xs:attributeGroup ref="svg:attlist.mpath"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.mpath.element -->
  <xs:attributeGroup name="attlist.mpath">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.mpath.attlist -->
  <!-- end of svg-animation.mod -->
  <!-- Font Module ................................................. -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Font Module ................................................... -->
  <!--
    file: svg-font.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-font.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-font.mod"
    
    .......................................................................
  -->
  <!--
    Font
    
       font, font-face, glyph, missing-glyph, hkern, vkern, font-face-src,
       font-face-uri, font-face-format, font-face-name, definition-src
    
    This module declares markup to provide support for template.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Font.class .................................... -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- font: Font Element ................................ -->
  <xs:complexType name="SVG.font.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:font-face"/>
      <xs:element ref="svg:missing-glyph"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="svg:glyph"/>
        <xs:element ref="svg:hkern"/>
        <xs:element ref="svg:vkern"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="font" substitutionGroup="svg:SVG.Font.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.font.content">
          <xs:attributeGroup ref="svg:attlist.font"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font.element -->
  <xs:attributeGroup name="attlist.font">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="horiz-origin-x" type="svg:Number.datatype"/>
    <xs:attribute name="horiz-origin-y" type="svg:Number.datatype"/>
    <xs:attribute name="horiz-adv-x" use="required" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-x" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-y" type="svg:Number.datatype"/>
    <xs:attribute name="vert-adv-y" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.font.attlist -->
  <!-- font-face: Font Face Element ...................... -->
  <xs:complexType name="SVG.font-face.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:SVG.Description.class"/>
      <xs:element minOccurs="0" ref="svg:font-face-src"/>
      <xs:element minOccurs="0" ref="svg:definition-src"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="font-face" substitutionGroup="svg:SVG.Font.class">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.font-face.content">
          <xs:attributeGroup ref="svg:attlist.font-face"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font-face.element -->
  <xs:attributeGroup name="attlist.font-face">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="font-family"/>
    <xs:attribute name="font-style"/>
    <xs:attribute name="font-variant"/>
    <xs:attribute name="font-weight"/>
    <xs:attribute name="font-stretch"/>
    <xs:attribute name="font-size"/>
    <xs:attribute name="unicode-range"/>
    <xs:attribute name="units-per-em" type="svg:Number.datatype"/>
    <xs:attribute name="panose-1"/>
    <xs:attribute name="stemv" type="svg:Number.datatype"/>
    <xs:attribute name="stemh" type="svg:Number.datatype"/>
    <xs:attribute name="slope" type="svg:Number.datatype"/>
    <xs:attribute name="cap-height" type="svg:Number.datatype"/>
    <xs:attribute name="x-height" type="svg:Number.datatype"/>
    <xs:attribute name="accent-height" type="svg:Number.datatype"/>
    <xs:attribute name="ascent" type="svg:Number.datatype"/>
    <xs:attribute name="descent" type="svg:Number.datatype"/>
    <xs:attribute name="widths"/>
    <xs:attribute name="bbox"/>
    <xs:attribute name="ideographic" type="svg:Number.datatype"/>
    <xs:attribute name="alphabetic" type="svg:Number.datatype"/>
    <xs:attribute name="mathematical" type="svg:Number.datatype"/>
    <xs:attribute name="hanging" type="svg:Number.datatype"/>
    <xs:attribute name="v-ideographic" type="svg:Number.datatype"/>
    <xs:attribute name="v-alphabetic" type="svg:Number.datatype"/>
    <xs:attribute name="v-mathematical" type="svg:Number.datatype"/>
    <xs:attribute name="v-hanging" type="svg:Number.datatype"/>
    <xs:attribute name="underline-position" type="svg:Number.datatype"/>
    <xs:attribute name="underline-thickness" type="svg:Number.datatype"/>
    <xs:attribute name="strikethrough-position" type="svg:Number.datatype"/>
    <xs:attribute name="strikethrough-thickness" type="svg:Number.datatype"/>
    <xs:attribute name="overline-position" type="svg:Number.datatype"/>
    <xs:attribute name="overline-thickness" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.font-face.attlist -->
  <!-- glyph: Glyph Element .............................. -->
  <xs:complexType name="SVG.glyph.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="glyph">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.glyph.content">
          <xs:attributeGroup ref="svg:attlist.glyph"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.glyph.element -->
  <xs:attributeGroup name="attlist.glyph">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attribute name="unicode"/>
    <xs:attribute name="glyph-name"/>
    <xs:attribute name="d" type="svg:PathData.datatype"/>
    <xs:attribute name="orientation"/>
    <xs:attribute name="arabic-form"/>
    <xs:attribute name="lang" type="svg:LanguageCodes.datatype"/>
    <xs:attribute name="horiz-adv-x" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-x" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-y" type="svg:Number.datatype"/>
    <xs:attribute name="vert-adv-y" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.glyph.attlist -->
  <!-- missing-glyph: Missing Glyph Element .............. -->
  <xs:complexType name="SVG.missing-glyph.content">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="svg:SVG.Description.class"/>
      <xs:element ref="svg:SVG.Animation.class"/>
      <xs:element ref="svg:SVG.Structure.class"/>
      <xs:element ref="svg:SVG.Conditional.class"/>
      <xs:element ref="svg:SVG.Image.class"/>
      <xs:element ref="svg:SVG.Style.class"/>
      <xs:element ref="svg:SVG.Shape.class"/>
      <xs:element ref="svg:SVG.Text.class"/>
      <xs:element ref="svg:SVG.Marker.class"/>
      <xs:element ref="svg:SVG.ColorProfile.class"/>
      <xs:element ref="svg:SVG.Gradient.class"/>
      <xs:element ref="svg:SVG.Pattern.class"/>
      <xs:element ref="svg:SVG.Clip.class"/>
      <xs:element ref="svg:SVG.Mask.class"/>
      <xs:element ref="svg:SVG.Filter.class"/>
      <xs:element ref="svg:SVG.Cursor.class"/>
      <xs:element ref="svg:SVG.Hyperlink.class"/>
      <xs:element ref="svg:SVG.View.class"/>
      <xs:element ref="svg:SVG.Script.class"/>
      <xs:element ref="svg:SVG.Font.class"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="missing-glyph">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.missing-glyph.content">
          <xs:attributeGroup ref="svg:attlist.missing-glyph"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.missing-glyph.element -->
  <xs:attributeGroup name="attlist.missing-glyph">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attribute name="d" type="svg:PathData.datatype"/>
    <xs:attribute name="horiz-adv-x" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-x" type="svg:Number.datatype"/>
    <xs:attribute name="vert-origin-y" type="svg:Number.datatype"/>
    <xs:attribute name="vert-adv-y" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.missing-glyph.attlist -->
  <!-- hkern: Horizontal Kerning Element ................. -->
  <xs:element name="hkern">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.hkern"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.hkern.element -->
  <xs:attributeGroup name="attlist.hkern">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="u1"/>
    <xs:attribute name="g1"/>
    <xs:attribute name="u2"/>
    <xs:attribute name="g2"/>
    <xs:attribute name="k" use="required" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.hkern.attlist -->
  <!-- vkern: Vertical Kerning Element ................... -->
  <xs:element name="vkern">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.vkern"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.vkern.element -->
  <xs:attributeGroup name="attlist.vkern">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="u1"/>
    <xs:attribute name="g1"/>
    <xs:attribute name="u2"/>
    <xs:attribute name="g2"/>
    <xs:attribute name="k" use="required" type="svg:Number.datatype"/>
  </xs:attributeGroup>
  <!-- end of SVG.vkern.attlist -->
  <!-- font-face-src: Font Face Source Element ........... -->
  <xs:complexType name="SVG.font-face-src.content">
    <xs:choice maxOccurs="unbounded">
      <xs:element ref="svg:font-face-uri"/>
      <xs:element ref="svg:font-face-name"/>
    </xs:choice>
  </xs:complexType>
  <xs:element name="font-face-src">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.font-face-src.content">
          <xs:attributeGroup ref="svg:attlist.font-face-src"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font-face-src.element -->
  <xs:attributeGroup name="attlist.font-face-src">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.font-face-src.attlist -->
  <!-- font-face-uri: Font Face URI Element .............. -->
  <xs:complexType name="SVG.font-face-uri.content">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="svg:font-face-format"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="font-face-uri">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="svg:SVG.font-face-uri.content">
          <xs:attributeGroup ref="svg:attlist.font-face-uri"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font-face-uri.element -->
  <xs:attributeGroup name="attlist.font-face-uri">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.font-face-uri.attlist -->
  <!-- font-face-format: Font Face Format Element ........ -->
  <xs:element name="font-face-format">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.font-face-format"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font-face-format.element -->
  <xs:attributeGroup name="attlist.font-face-format">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="string"/>
  </xs:attributeGroup>
  <!-- end of SVG.font-face-format.attlist -->
  <!-- font-face-name: Font Face Name Element ............ -->
  <xs:element name="font-face-name">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.font-face-name"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.font-face-name.element -->
  <xs:attributeGroup name="attlist.font-face-name">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attribute name="name"/>
  </xs:attributeGroup>
  <!-- end of SVG.font-face-name.attlist -->
  <!-- definition-src: Definition Source Element ......... -->
  <xs:element name="definition-src">
    <xs:complexType>
      <xs:attributeGroup ref="svg:attlist.definition-src"/>
    </xs:complexType>
  </xs:element>
  <!-- end of SVG.definition-src.element -->
  <xs:attributeGroup name="attlist.definition-src">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.XLinkRequired.attrib"/>
  </xs:attributeGroup>
  <!-- end of SVG.definition-src.attlist -->
  <!-- end of svg-font.mod -->
  <!-- Extensibility Module ........................................ -->
  <!-- ....................................................................... -->
  <!-- SVG 1.1 Extensibility Module .......................................... -->
  <!--
    file: svg-extensibility.mod
    
    This is SVG, a language for describing two-dimensional graphics in XML.
    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: svg-extensibility.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
       PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN"
       SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-extensibility.mod"
    
    .......................................................................
  -->
  <!--
    Extensibility
    
       foreignObject
    
    This module declares markup to provide support for extensibility.
  -->
  <!-- Qualified Names (Default) ......................... -->
  <!-- Attribute Collections (Default) ................... -->
  <!-- SVG.Extensibility.class ........................... -->
  <!-- SVG.Presentation.attrib ........................... -->
  <!-- foreignObject: Foreign Object Element ............. -->
  <xs:element name="foreignObject" substitutionGroup="svg:SVG.Extensibility.class"/>
  <!-- end of SVG.foreignObject.element -->
  <xs:attributeGroup name="attlist.foreignObject">
    <xs:attributeGroup ref="svg:SVG.Core.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Conditional.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Style.attrib"/>
    <xs:attributeGroup ref="svg:SVG.Presentation.attrib"/>
    <xs:attributeGroup ref="svg:SVG.GraphicalEvents.attrib"/>
    <xs:attributeGroup ref="svg:SVG.External.attrib"/>
    <xs:attribute name="x" type="svg:Coordinate.datatype"/>
    <xs:attribute name="y" type="svg:Coordinate.datatype"/>
    <xs:attribute name="width" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="height" use="required" type="svg:Length.datatype"/>
    <xs:attribute name="transform" type="svg:TransformList.datatype"/>
  </xs:attributeGroup>
</xs:schema>
<!-- end of SVG.foreignObject.attlist -->
<!-- end of svg-extensibility.mod -->
<!-- end of SVG 1.1 DTD .................................................... -->
<!-- ....................................................................... -->
