| 1 |
lars |
1 |
<!-- ...................................................................... -->
|
|
|
2 |
<!-- XHTML Forms Module .................................................. -->
|
|
|
3 |
<!-- file: xhtml-form-1.mod
|
|
|
4 |
|
|
|
5 |
This is XHTML, a reformulation of HTML as a modular XML application.
|
|
|
6 |
Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
|
|
|
7 |
Revision: $Id: xhtml-form-1.mod,v 1.4 2008/10/08 21:02:30 jules Exp $ SMI
|
|
|
8 |
|
|
|
9 |
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
|
|
|
10 |
|
|
|
11 |
PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
|
|
|
12 |
SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod"
|
|
|
13 |
|
|
|
14 |
Revisions:
|
|
|
15 |
(none)
|
|
|
16 |
....................................................................... -->
|
|
|
17 |
|
|
|
18 |
<!-- Forms
|
|
|
19 |
|
|
|
20 |
form, label, input, select, optgroup, option,
|
|
|
21 |
textarea, fieldset, legend, button
|
|
|
22 |
|
|
|
23 |
This module declares markup to provide support for online
|
|
|
24 |
forms, based on the features found in HTML 4 forms.
|
|
|
25 |
-->
|
|
|
26 |
|
|
|
27 |
<!-- declare qualified element type names:
|
|
|
28 |
-->
|
|
|
29 |
<!ENTITY % form.qname "form" >
|
|
|
30 |
<!ENTITY % label.qname "label" >
|
|
|
31 |
<!ENTITY % input.qname "input" >
|
|
|
32 |
<!ENTITY % select.qname "select" >
|
|
|
33 |
<!ENTITY % optgroup.qname "optgroup" >
|
|
|
34 |
<!ENTITY % option.qname "option" >
|
|
|
35 |
<!ENTITY % textarea.qname "textarea" >
|
|
|
36 |
<!ENTITY % fieldset.qname "fieldset" >
|
|
|
37 |
<!ENTITY % legend.qname "legend" >
|
|
|
38 |
<!ENTITY % button.qname "button" >
|
|
|
39 |
|
|
|
40 |
<!-- %BlkNoForm.mix; includes all non-form block elements,
|
|
|
41 |
plus %Misc.class;
|
|
|
42 |
-->
|
|
|
43 |
<!ENTITY % BlkNoForm.mix
|
|
|
44 |
"%Heading.class;
|
|
|
45 |
| %List.class;
|
|
|
46 |
| %BlkStruct.class;
|
|
|
47 |
%BlkPhras.class;
|
|
|
48 |
%BlkPres.class;
|
|
|
49 |
%Table.class;
|
|
|
50 |
%Block.extra;
|
|
|
51 |
%Misc.class;"
|
|
|
52 |
>
|
|
|
53 |
|
|
|
54 |
<!-- form: Form Element ................................ -->
|
|
|
55 |
|
|
|
56 |
<!ENTITY % form.element "INCLUDE" >
|
|
|
57 |
<![%form.element;[
|
|
|
58 |
<!ENTITY % form.content
|
|
|
59 |
"( %BlkNoForm.mix;
|
|
|
60 |
| %fieldset.qname; )+"
|
|
|
61 |
>
|
|
|
62 |
<!ELEMENT %form.qname; %form.content; >
|
|
|
63 |
<!-- end of form.element -->]]>
|
|
|
64 |
|
|
|
65 |
<!ENTITY % form.attlist "INCLUDE" >
|
|
|
66 |
<![%form.attlist;[
|
|
|
67 |
<!ATTLIST %form.qname;
|
|
|
68 |
%Common.attrib;
|
|
|
69 |
action %URI.datatype; #REQUIRED
|
|
|
70 |
method ( get | post ) 'get'
|
|
|
71 |
enctype %ContentType.datatype; 'application/x-www-form-urlencoded'
|
|
|
72 |
accept-charset %Charsets.datatype; #IMPLIED
|
|
|
73 |
accept %ContentTypes.datatype; #IMPLIED
|
|
|
74 |
>
|
|
|
75 |
<!-- end of form.attlist -->]]>
|
|
|
76 |
|
|
|
77 |
<!-- label: Form Field Label Text ...................... -->
|
|
|
78 |
|
|
|
79 |
<!-- Each label must not contain more than ONE field
|
|
|
80 |
-->
|
|
|
81 |
|
|
|
82 |
<!ENTITY % label.element "INCLUDE" >
|
|
|
83 |
<![%label.element;[
|
|
|
84 |
<!ENTITY % label.content
|
|
|
85 |
"( #PCDATA
|
|
|
86 |
| %input.qname; | %select.qname; | %textarea.qname; | %button.qname;
|
|
|
87 |
| %InlStruct.class;
|
|
|
88 |
%InlPhras.class;
|
|
|
89 |
%I18n.class;
|
|
|
90 |
%InlPres.class;
|
|
|
91 |
%Anchor.class;
|
|
|
92 |
%InlSpecial.class;
|
|
|
93 |
%Inline.extra;
|
|
|
94 |
%Misc.class; )*"
|
|
|
95 |
>
|
|
|
96 |
<!ELEMENT %label.qname; %label.content; >
|
|
|
97 |
<!-- end of label.element -->]]>
|
|
|
98 |
|
|
|
99 |
<!ENTITY % label.attlist "INCLUDE" >
|
|
|
100 |
<![%label.attlist;[
|
|
|
101 |
<!ATTLIST %label.qname;
|
|
|
102 |
%Common.attrib;
|
|
|
103 |
for IDREF #IMPLIED
|
|
|
104 |
accesskey %Character.datatype; #IMPLIED
|
|
|
105 |
>
|
|
|
106 |
<!-- end of label.attlist -->]]>
|
|
|
107 |
|
|
|
108 |
<!-- input: Form Control ............................... -->
|
|
|
109 |
|
|
|
110 |
<!ENTITY % input.element "INCLUDE" >
|
|
|
111 |
<![%input.element;[
|
|
|
112 |
<!ENTITY % input.content "EMPTY" >
|
|
|
113 |
<!ELEMENT %input.qname; %input.content; >
|
|
|
114 |
<!-- end of input.element -->]]>
|
|
|
115 |
|
|
|
116 |
<!ENTITY % input.attlist "INCLUDE" >
|
|
|
117 |
<![%input.attlist;[
|
|
|
118 |
<!ENTITY % InputType.class
|
|
|
119 |
"( text | password | checkbox | radio | submit
|
|
|
120 |
| reset | file | hidden | image | button )"
|
|
|
121 |
>
|
|
|
122 |
<!-- attribute 'name' required for all but submit & reset
|
|
|
123 |
-->
|
|
|
124 |
<!ATTLIST %input.qname;
|
|
|
125 |
%Common.attrib;
|
|
|
126 |
type %InputType.class; 'text'
|
|
|
127 |
name CDATA #IMPLIED
|
|
|
128 |
value CDATA #IMPLIED
|
|
|
129 |
checked ( checked ) #IMPLIED
|
|
|
130 |
disabled ( disabled ) #IMPLIED
|
|
|
131 |
readonly ( readonly ) #IMPLIED
|
|
|
132 |
size %Number.datatype; #IMPLIED
|
|
|
133 |
maxlength %Number.datatype; #IMPLIED
|
|
|
134 |
src %URI.datatype; #IMPLIED
|
|
|
135 |
alt %Text.datatype; #IMPLIED
|
|
|
136 |
tabindex %Number.datatype; #IMPLIED
|
|
|
137 |
accesskey %Character.datatype; #IMPLIED
|
|
|
138 |
accept %ContentTypes.datatype; #IMPLIED
|
|
|
139 |
>
|
|
|
140 |
<!-- end of input.attlist -->]]>
|
|
|
141 |
|
|
|
142 |
<!-- select: Option Selector ........................... -->
|
|
|
143 |
|
|
|
144 |
<!ENTITY % select.element "INCLUDE" >
|
|
|
145 |
<![%select.element;[
|
|
|
146 |
<!ENTITY % select.content
|
|
|
147 |
"( %optgroup.qname; | %option.qname; )+"
|
|
|
148 |
>
|
|
|
149 |
<!ELEMENT %select.qname; %select.content; >
|
|
|
150 |
<!-- end of select.element -->]]>
|
|
|
151 |
|
|
|
152 |
<!ENTITY % select.attlist "INCLUDE" >
|
|
|
153 |
<![%select.attlist;[
|
|
|
154 |
<!ATTLIST %select.qname;
|
|
|
155 |
%Common.attrib;
|
|
|
156 |
name CDATA #IMPLIED
|
|
|
157 |
size %Number.datatype; #IMPLIED
|
|
|
158 |
multiple ( multiple ) #IMPLIED
|
|
|
159 |
disabled ( disabled ) #IMPLIED
|
|
|
160 |
tabindex %Number.datatype; #IMPLIED
|
|
|
161 |
>
|
|
|
162 |
<!-- end of select.attlist -->]]>
|
|
|
163 |
|
|
|
164 |
<!-- optgroup: Option Group ............................ -->
|
|
|
165 |
|
|
|
166 |
<!ENTITY % optgroup.element "INCLUDE" >
|
|
|
167 |
<![%optgroup.element;[
|
|
|
168 |
<!ENTITY % optgroup.content "( %option.qname; )+" >
|
|
|
169 |
<!ELEMENT %optgroup.qname; %optgroup.content; >
|
|
|
170 |
<!-- end of optgroup.element -->]]>
|
|
|
171 |
|
|
|
172 |
<!ENTITY % optgroup.attlist "INCLUDE" >
|
|
|
173 |
<![%optgroup.attlist;[
|
|
|
174 |
<!ATTLIST %optgroup.qname;
|
|
|
175 |
%Common.attrib;
|
|
|
176 |
disabled ( disabled ) #IMPLIED
|
|
|
177 |
label %Text.datatype; #REQUIRED
|
|
|
178 |
>
|
|
|
179 |
<!-- end of optgroup.attlist -->]]>
|
|
|
180 |
|
|
|
181 |
<!-- option: Selectable Choice ......................... -->
|
|
|
182 |
|
|
|
183 |
<!ENTITY % option.element "INCLUDE" >
|
|
|
184 |
<![%option.element;[
|
|
|
185 |
<!ENTITY % option.content "( #PCDATA )" >
|
|
|
186 |
<!ELEMENT %option.qname; %option.content; >
|
|
|
187 |
<!-- end of option.element -->]]>
|
|
|
188 |
|
|
|
189 |
<!ENTITY % option.attlist "INCLUDE" >
|
|
|
190 |
<![%option.attlist;[
|
|
|
191 |
<!ATTLIST %option.qname;
|
|
|
192 |
%Common.attrib;
|
|
|
193 |
selected ( selected ) #IMPLIED
|
|
|
194 |
disabled ( disabled ) #IMPLIED
|
|
|
195 |
label %Text.datatype; #IMPLIED
|
|
|
196 |
value CDATA #IMPLIED
|
|
|
197 |
>
|
|
|
198 |
<!-- end of option.attlist -->]]>
|
|
|
199 |
|
|
|
200 |
<!-- textarea: Multi-Line Text Field ................... -->
|
|
|
201 |
|
|
|
202 |
<!ENTITY % textarea.element "INCLUDE" >
|
|
|
203 |
<![%textarea.element;[
|
|
|
204 |
<!ENTITY % textarea.content "( #PCDATA )" >
|
|
|
205 |
<!ELEMENT %textarea.qname; %textarea.content; >
|
|
|
206 |
<!-- end of textarea.element -->]]>
|
|
|
207 |
|
|
|
208 |
<!ENTITY % textarea.attlist "INCLUDE" >
|
|
|
209 |
<![%textarea.attlist;[
|
|
|
210 |
<!ATTLIST %textarea.qname;
|
|
|
211 |
%Common.attrib;
|
|
|
212 |
name CDATA #IMPLIED
|
|
|
213 |
rows %Number.datatype; #REQUIRED
|
|
|
214 |
cols %Number.datatype; #REQUIRED
|
|
|
215 |
disabled ( disabled ) #IMPLIED
|
|
|
216 |
readonly ( readonly ) #IMPLIED
|
|
|
217 |
tabindex %Number.datatype; #IMPLIED
|
|
|
218 |
accesskey %Character.datatype; #IMPLIED
|
|
|
219 |
>
|
|
|
220 |
<!-- end of textarea.attlist -->]]>
|
|
|
221 |
|
|
|
222 |
<!-- fieldset: Form Control Group ...................... -->
|
|
|
223 |
|
|
|
224 |
<!-- #PCDATA is to solve the mixed content problem,
|
|
|
225 |
per specification only whitespace is allowed
|
|
|
226 |
-->
|
|
|
227 |
|
|
|
228 |
<!ENTITY % fieldset.element "INCLUDE" >
|
|
|
229 |
<![%fieldset.element;[
|
|
|
230 |
<!ENTITY % fieldset.content
|
|
|
231 |
"( #PCDATA | %legend.qname; | %Flow.mix; )*"
|
|
|
232 |
>
|
|
|
233 |
<!ELEMENT %fieldset.qname; %fieldset.content; >
|
|
|
234 |
<!-- end of fieldset.element -->]]>
|
|
|
235 |
|
|
|
236 |
<!ENTITY % fieldset.attlist "INCLUDE" >
|
|
|
237 |
<![%fieldset.attlist;[
|
|
|
238 |
<!ATTLIST %fieldset.qname;
|
|
|
239 |
%Common.attrib;
|
|
|
240 |
>
|
|
|
241 |
<!-- end of fieldset.attlist -->]]>
|
|
|
242 |
|
|
|
243 |
<!-- legend: Fieldset Legend ........................... -->
|
|
|
244 |
|
|
|
245 |
<!ENTITY % legend.element "INCLUDE" >
|
|
|
246 |
<![%legend.element;[
|
|
|
247 |
<!ENTITY % legend.content
|
|
|
248 |
"( #PCDATA | %Inline.mix; )*"
|
|
|
249 |
>
|
|
|
250 |
<!ELEMENT %legend.qname; %legend.content; >
|
|
|
251 |
<!-- end of legend.element -->]]>
|
|
|
252 |
|
|
|
253 |
<!ENTITY % legend.attlist "INCLUDE" >
|
|
|
254 |
<![%legend.attlist;[
|
|
|
255 |
<!ATTLIST %legend.qname;
|
|
|
256 |
%Common.attrib;
|
|
|
257 |
accesskey %Character.datatype; #IMPLIED
|
|
|
258 |
>
|
|
|
259 |
<!-- end of legend.attlist -->]]>
|
|
|
260 |
|
|
|
261 |
<!-- button: Push Button ............................... -->
|
|
|
262 |
|
|
|
263 |
<!ENTITY % button.element "INCLUDE" >
|
|
|
264 |
<![%button.element;[
|
|
|
265 |
<!ENTITY % button.content
|
|
|
266 |
"( #PCDATA
|
|
|
267 |
| %BlkNoForm.mix;
|
|
|
268 |
| %InlStruct.class;
|
|
|
269 |
%InlPhras.class;
|
|
|
270 |
%InlPres.class;
|
|
|
271 |
%I18n.class;
|
|
|
272 |
%InlSpecial.class;
|
|
|
273 |
%Inline.extra; )*"
|
|
|
274 |
>
|
|
|
275 |
<!ELEMENT %button.qname; %button.content; >
|
|
|
276 |
<!-- end of button.element -->]]>
|
|
|
277 |
|
|
|
278 |
<!ENTITY % button.attlist "INCLUDE" >
|
|
|
279 |
<![%button.attlist;[
|
|
|
280 |
<!ATTLIST %button.qname;
|
|
|
281 |
%Common.attrib;
|
|
|
282 |
name CDATA #IMPLIED
|
|
|
283 |
value CDATA #IMPLIED
|
|
|
284 |
type ( button | submit | reset ) 'submit'
|
|
|
285 |
disabled ( disabled ) #IMPLIED
|
|
|
286 |
tabindex %Number.datatype; #IMPLIED
|
|
|
287 |
accesskey %Character.datatype; #IMPLIED
|
|
|
288 |
>
|
|
|
289 |
<!-- end of button.attlist -->]]>
|
|
|
290 |
|
|
|
291 |
<!-- end of xhtml-form-1.mod -->
|