  <define name='svg.feTurbulence.content'>
    <zeroOrMore>
      <choice>
        <ref name='animate'/>
        <ref name='set'/>
      </choice>
    </zeroOrMore>
  </define>

  <define name='feTurbulence'>
    <element name='feTurbulence'>
      <ref name='attlist.feTurbulence'/>
      <ref name='svg.feTurbulence.content'/>
    </element>
  </define>

  <define name='attlist.feTurbulence' combine='interleave'>
    <ref name='svg.Core.attrib'/>
    <ref name='svg.FilterColor.attrib'/>
    <ref name='svg.FilterPrimitive.attrib'/>
    <optional>
      <attribute name='baseFrequency'>
        <ref name='NumberOptionalNumber.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='numOctaves'>
        <ref name='Integer.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='seed'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='stitchTiles' a:defaultValue='noStitch'>
        <choice>
          <value>stitch</value>
          <value>noStitch</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name='type' a:defaultValue='turbulence'>
        <choice>
          <value>fractalNoise</value>
          <value>turbulence</value>
        </choice>
      </attribute>
    </optional>
  </define>
