1<?xml version="1.0" encoding="iso-8859-1"?>
2<!-- Client-side Image Map Module -->
3<grammar xmlns="http://relaxng.org/ns/structure/1.0">
4
5<define name="area">
6  <element name="area">
7    <ref name="area.attlist"/>
8  </element>
9</define>
10
11<define name="area.attlist">
12  <ref name="Common.attrib"/>
13  <optional>
14    <attribute name="href">
15      <ref name="URI.datatype"/>
16    </attribute>
17  </optional>
18  <ref name="shape.attrib"/>
19  <ref name="coords.attrib"/>
20  <optional>
21    <attribute name="nohref">
22      <value>nohref</value>
23    </attribute>
24  </optional>
25  <attribute name="alt">
26    <ref name="Text.datatype"/>
27  </attribute>
28  <optional>
29    <attribute name="tabindex">
30      <ref name="Number.datatype"/>
31    </attribute>
32  </optional>
33  <optional>
34    <attribute name="accesskey">
35      <ref name="Character.datatype"/>
36    </attribute>
37  </optional>
38</define>
39
40<define name="map">
41  <element name="map">
42    <ref name="map.attlist"/>
43    <oneOrMore>
44      <choice>
45        <!-- This does not use Block.mix
46             because loose.dtd doesn't use %Flow; -->
47        <ref name="Block.class"/>
48        <ref name="area"/>
49      </choice>
50    </oneOrMore>
51  </element>
52</define>
53
54<define name="map.attlist">
55  <ref name="CommonIdRequired.attrib"/>
56</define>
57
58<define name="a.attlist" combine="interleave">
59  <ref name="shape.attrib"/>
60  <ref name="coords.attrib"/>
61</define>
62
63<define name="img.attlist" combine="interleave">
64  <ref name="usemap.attlist"/>
65</define>
66
67<define name="object.attlist" combine="interleave">
68  <ref name="usemap.attlist"/>
69</define>
70
71<define name="usemap.attlist">
72  <optional>
73    <attribute name="usemap">
74      <ref name="IDREF.datatype"/>
75    </attribute>
76  </optional>
77</define>
78
79<define name="shape.attrib">
80  <optional>
81    <attribute name="shape">
82      <choice>
83        <value>rect</value>
84        <value>circle</value>
85        <value>poly</value>
86        <value>default</value>
87      </choice>
88    </attribute>
89  </optional>
90</define>
91
92<define name="coords.attrib">
93  <optional>
94    <attribute name="coords"/>
95  </optional>
96</define>
97
98<define name="Inline.class" combine="choice">
99  <ref name="map"/>
100</define>
101
102</grammar>