  <define name='svg.feComponentTransfer.content'>
    <optional><ref name='feFuncR'/></optional>
    <optional><ref name='feFuncG'/></optional>
    <optional><ref name='feFuncB'/></optional>
    <optional><ref name='feFuncA'/></optional>
  </define>

  <define name='feComponentTransfer'>
    <element name='feComponentTransfer'>
      <ref name='feComponentTransfer.attr'/>
      <ref name='svg.feComponentTransfer.content'/>
    </element>
  </define>

  <define name='feComponentTransfer.attr' combine='interleave'>
    <ref name='svg.Core.attr'/>
    <ref name='svg.FilterColor.attr'/>
    <ref name='svg.FilterPrimitiveWithIn.attr'/>
  </define>


  <define name='SVG.feFunc.content'>
    <zeroOrMore>
      <choice>
        <ref name='animate'/>
        <ref name='set'/>
      </choice>
    </zeroOrMore>
  </define>

  <define name='feFuncR'>
    <element name='feFuncR'>
      <ref name='feFunc.attr'/>
      <ref name='svg.feFunc.content'/>
    </element>
  </define>
  
  <define name='feFuncG'>
    <element name='feFuncG'>
      <ref name='feFunc.attr'/>
      <ref name='svg.feFunc.content'/>
    </element>
  </define>
  
  <define name='feFuncB'>
    <element name='feFuncB'>
      <ref name='feFunc.attr'/>
      <ref name='svg.feFunc.content'/>
    </element>
  </define>
  
  <define name='feFuncA'>
    <element name='feFuncA'>
      <ref name='feFunc.attr'/>
      <ref name='svg.feFunc.content'/>
    </element>
  </define>

  <define name='feFunc.attr' combine='interleave'>
    <ref name='svg.Core.attr'/>
    <attribute name='type'>
      <choice>
        <value>identity</value>
        <value>table</value>
        <value>discrete</value>
        <value>linear</value>
        <value>gamma</value>
      </choice>
    </attribute>
    <optional>
      <attribute name='tableValues'/>
    </optional>
    <optional>
      <attribute name='slope'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='intercept'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='amplitude'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='exponent'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
    <optional>
      <attribute name='offset'>
        <ref name='Number.datatype'/>
      </attribute>
    </optional>
  </define>