<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml">

<x:h1>Client-Side Image Map Module</x:h1>

<define name="area">
  <element name="area">
    <ref name="area.attlist"/>
  </element>
</define>

<define name="area.attlist">
  <ref name="Common.attrib"/>
  <optional>
    <attribute name="nohref">
      <value>nohref</value>
    </attribute>
  </optional>
  <attribute name="alt">
    <ref name="Text.datatype"/>
  </attribute>
</define>

<define name="map">
  <element name="map">
    <ref name="map.attlist"/>
    <oneOrMore>
      <choice>
        <ref name="Heading.class"/>
        <ref name="Block.class"/>
        <ref name="area"/>
      </choice>
    </oneOrMore>
  </element>
</define>

<define name="map.attlist">
  <ref name="CommonIdRequired.attrib"/>
</define>

<define name="Common.attrib" combine="interleave">
  <ref name="ImageMap.attrib"/>
</define>

<!--
<define name="usemap.attlist">
  <optional>
    <attribute name="usemap">
      <x:p>ISSUE: IDREF or anyURI?</x:p>
      <ref name="IDREF.datatype"/>
    </attribute>
  </optional>
</define>
-->

<define name="Inline.class" combine="choice">
  <ref name="map"/>
</define>

</grammar>