  <define name='filter'>
    <element name='filter'>
      <ref name='filter.AT'/>
      <ref name='svg.filter.content'/>
    </element>
  </define>

  <define name='filter.AT' combine='interleave'>
    <ref name='svg.Core.attr'/>
    <ref name='svg.Style.attr'/>
    <ref name='svg.Presentation.attrib'/>
    <ref name='svg.XLink.attrib'/>
    <ref name='svg.External.attrib'/>
    <optional>
      <attribute name='x'>
        <ref name='Coordinate.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='y'>
        <ref name='Coordinate.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='width'>
        <ref name='Length.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='height'>
        <ref name='Length.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='mx'>
        <ref name='Coordinate.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='my'>
        <ref name='Coordinate.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='mw'>
        <ref name='Length.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='mh'>
        <ref name='Length.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='filterRes'>
        <ref name='NumberOptionalNumber.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='filterUnits'>
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name='primitiveUnits'>
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name='filterMarginsUnits'>
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>	
    <optional>
      <attribute name='primitiveMarginsUnits'>
        <choice>
          <value>userSpaceOnUse</value>
          <value>objectBoundingBox</value>
        </choice>
      </attribute>
    </optional>	
  </define>
