<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/1999/xhtml">


  <xs:annotation>
    <xs:documentation>
      Client-side Image Maps    
      This is the XML Schema Client-side Image Maps module for XHTML

        * area, map      

      This module declares elements and attributes to support client-side
      image maps. 
      
      $Id: xhtml-csismap-1.xsd,v 1.2 2006/05/04 09:40:07 radu_coravu Exp $
    </xs:documentation>
    <xs:documentation source="xhtml-copyright-1.xsd"/>
    <xs:documentation source="http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_imapmodule"/>
  </xs:annotation>
  
  <xs:simpleType name="Shape.Datatype">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="rect"/>
      <xs:enumeration value="circle"/>
      <xs:enumeration value="poly"/>
      <xs:enumeration value="default"/>            
    </xs:restriction>
  </xs:simpleType>     
  
  <xs:simpleType name="Coords.Datatype">
     <xs:restriction base="Text"/>
  </xs:simpleType>
  
  <!-- modify anchor attribute definition list -->
  <xs:attributeGroup name="a.csim.attlist">   
    <xs:attribute name="shape" type="Shape.Datatype" default="rect"/>
    <xs:attribute name="coords" type="Coords.Datatype"/>
  </xs:attributeGroup>

  <!-- modify img attribute definition list -->
  <xs:attributeGroup name="img.csim.attlist">
    <xs:attribute name="usemap" type="xs:IDREF"/>
  </xs:attributeGroup>

  <!-- modify form input attribute definition list -->
  <xs:attributeGroup name="input.csim.attlist">
    <xs:attribute name="usemap" type="xs:IDREF"/>
  </xs:attributeGroup>

  <!-- modify object attribute definition list -->
  <xs:attributeGroup name="object.csim.attlist">
    <xs:attribute name="usemap" type="xs:IDREF"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="area.attlist">
    <xs:attributeGroup ref="Common.attrib"/>
    <xs:attribute name="href" type="URI"/>
    <xs:attribute name="shape" type="Shape.Datatype" default="rect"/>
    <xs:attribute name="coords" type="Coords.Datatype"/>
    <xs:attribute name="nohref">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="nohref"/>
          </xs:restriction>
        </xs:simpleType>    
    </xs:attribute>
    <xs:attribute name="alt" type="Text" use="required"/>
    <xs:attribute name="tabindex" type="Number"/>
    <xs:attribute name="accesskey" type="Character"/>
  </xs:attributeGroup>

  <xs:group name="area.content">
     <xs:sequence/>
  </xs:group>    
  
  <xs:complexType name="area.type">
    <xs:group ref="area.content"/>   
    <xs:attributeGroup ref="area.attlist"/>
  </xs:complexType>

  <xs:element name="area" type="area.type"><xs:annotation><xs:documentation>Defines a region in an image map. This element is always nested inside a MAP element. This element has no content but specify the geometric region of the image map and the link associated with the region. Note that user agents do not generally render AREA elements. Therefore, authors must provide alternate text for each AREA with the alt attribute.</xs:documentation></xs:annotation></xs:element>

  <!-- map -->
  <xs:attributeGroup name="map.attlist">
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attributeGroup ref="class"/>
    <xs:attributeGroup ref="title"/>
    <xs:attributeGroup ref="Core.extra.attrib"/>
    <xs:attributeGroup ref="I18n.attrib"/>
  </xs:attributeGroup>

  <xs:group name="map.content">
    <xs:sequence>
       <xs:choice maxOccurs="unbounded">
          <xs:group ref="Block.mix"/>
          <xs:element ref="area"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="map.type">
    <xs:group ref="map.content"/>
    <xs:attributeGroup ref="map.attlist"/>
  </xs:complexType>
  
  <xs:element name="map" type="map.type"><xs:annotation><xs:documentation>The MAP element specifies a client-side image map (or other navigation mechanism) that may be associated with another elements (IMG, OBJECT, or INPUT). An image map is associated with an element via the element's usemap attribute. The MAP element may be used without an associated image for general navigation mechanisms.</xs:documentation></xs:annotation></xs:element>

</xs:schema>