<?xml version="1.0" encoding="iso-8859-1"?>

<!-- file: xhtml-csismap-1.rng

     This is XHTML, a reformulation of HTML as a modular XML application.
     Copyright 1998-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
     Revision: $Id: xhtml-csismap-1.rng,v 1.1 2010/12/12 23:24:10 smccarro Exp $

     This RelaxNG module is identified by URI:
        
        http://www.w3.org/MarkUp/RELAXNG/xhtml-csismap-1.rng
     .................................................................... -->
<!-- Client-side Image Map Module -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">

<define name="xhtml.area">
  <element name="area">
    <ref name="xhtml.area.attlist"/>
  </element>
</define>

<define name="xhtml.area.attlist">
  <ref name="xhtml.Common.attrib"/>
  <optional>
    <attribute name="href">
      <ref name="xhtml.URI.datatype"/>
    </attribute>
  </optional>
  <ref name="xhtml.shape.attrib"/>
  <ref name="xhtml.coords.attrib"/>
  <optional>
    <attribute name="nohref">
      <value>nohref</value>
    </attribute>
  </optional>
  <attribute name="alt">
    <ref name="xhtml.Text.datatype"/>
  </attribute>
  <optional>
    <attribute name="tabindex">
      <ref name="xhtml.Number.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="accesskey">
      <ref name="xhtml.Character.datatype"/>
    </attribute>
  </optional>
</define>

<define name="xhtml.map">
  <element name="map">
    <ref name="xhtml.map.attlist"/>
    <oneOrMore>
      <choice>
        <!-- This does not use Block.mix
             because loose.dtd doesn't use %Flow; -->
        <ref name="xhtml.Block.class"/>
        <ref name="xhtml.area"/>
      </choice>
    </oneOrMore>
  </element>
</define>

<define name="xhtml.map.attlist">
  <ref name="xhtml.CommonIdRequired.attrib"/>
</define>

<define name="xhtml.a.attlist" combine="interleave">
  <ref name="xhtml.shape.attrib"/>
  <ref name="xhtml.coords.attrib"/>
</define>

<define name="xhtml.img.attlist" combine="interleave">
  <ref name="xhtml.usemap.attlist"/>
</define>

<define name="xhtml.object.attlist" combine="interleave">
  <ref name="xhtml.usemap.attlist"/>
</define>

<define name="xhtml.usemap.attlist">
  <optional>
    <attribute name="usemap">
      <ref name="xhtml.URIREF.datatype"/>
    </attribute>
  </optional>
</define>

<define name="xhtml.shape.attrib">
  <optional>
    <attribute name="shape">
      <choice>
        <value>rect</value>
        <value>circle</value>
        <value>poly</value>
        <value>default</value>
      </choice>
    </attribute>
  </optional>
</define>

<define name="xhtml.coords.attrib">
  <optional>
    <attribute name="coords"/>
  </optional>
</define>

<define name="xhtml.Inline.class" combine="choice">
  <ref name="xhtml.map"/>
</define>

</grammar>

