<!-- ==============================================================
      SVG12-RNG | Graphics attributes
     ============================================================== -->

<grammar ns='http://www.w3.org/2000/svg'
         xml:lang='en'
         xmlns='http://relaxng.org/ns/structure/1.0'
         xmlns:a='http://relaxng.org/ns/compatibility/annotations/1.0'
         datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'
         >

  <define name='SVG.display.attrib'>
    <optional>
      <attribute name='display'>
        <choice>
          <value>inline</value>
          <value>block</value>
          <value>list-item</value>
          <value>run-in</value>
          <value>compact</value>
          <value>marker</value>
          <value>table</value>
          <value>inline-table</value>
          <value>table-row-group</value>
          <value>table-header-group</value>
          <value>table-footer-group</value>
          <value>table-row</value>
          <value>table-column-group</value>
          <value>table-column</value>
          <value>table-cell</value>
          <value>table-caption</value>
          <value>none</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.visibility.attrib'>
    <optional>
      <attribute name='visibility'>
        <choice>
          <value>visible</value>
          <value>hidden</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.image-rendering.attrib'>
    <optional>
      <attribute name='image-rendering'>
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>optimizeQuality</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.pointer-events.attrib'>
    <optional>
      <attribute name='pointer-events'>
        <choice>
          <value>visiblePainted</value>
          <value>visibleFill</value>
          <value>visibleStroke</value>
          <value>visible</value>
          <value>painted</value>
          <value>fill</value>
          <value>stroke</value>
          <value>all</value>
          <value>none</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.shape-rendering.attrib'>
    <optional>
      <attribute name='shape-rendering'>
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>crispEdges</value>
          <value>geometricPrecision</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.text-rendering.attrib'>
    <optional>
      <attribute name='text-rendering'>
        <choice>
          <value>auto</value>
          <value>optimizeSpeed</value>
          <value>optimizeLegibility</value>
          <value>geometricPrecision</value>
          <value>inherit</value>
        </choice>
      </attribute>
    </optional>
  </define>

  <define name='SVG.Graphics.attrib' combine='interleave'>
    <ref name='SVG.display.attrib'/>
    <ref name='SVG.visibility.attrib'/>
    <ref name='SVG.image-rendering.attrib'/>
    <ref name='SVG.pointer-events.attrib'/>
    <ref name='SVG.shape-rendering.attrib'/>
    <ref name='SVG.text-rendering.attrib'/>
  </define>

</grammar>
