1# Forms Module
2
3# Unlike the DTD implementation, this builds on the basic-form module
4
5include "xhtml-bform.rnc" {
6  select = element select { select.attlist, (option | optgroup)+ }
7}
8form.attlist &=
9  attribute accept-charset { Charsets.datatype }?,
10  attribute accept { ContentTypes.datatype }?
11input.attlist &=
12  attribute disabled { "disabled" }?,
13  attribute readonly { "readonly" }?,
14  attribute alt { text }?,
15  attribute tabindex { Number.datatype }?,
16  attribute accept { ContentTypes.datatype }?
17InputType.class |= "image" | "button"
18select.attlist &=
19  attribute disabled { "disabled" }?,
20  attribute tabindex { Number.datatype }?
21option.attlist &=
22  attribute disabled { "disabled" }?,
23  attribute label { Text.datatype }?
24optgroup = element optgroup { optgroup.attlist, option+ }
25optgroup.attlist =
26  Common.attrib,
27  attribute disabled { "disabled" }?,
28  attribute label { Text.datatype }
29textarea.attlist &=
30  attribute disabled { "disabled" }?,
31  attribute readonly { "readonly" }?,
32  attribute tabindex { Number.datatype }?
33fieldset = element fieldset { fieldset.attlist, legend, Flow.model }
34fieldset.attlist = Common.attrib
35button = element button { button.attlist, Flow.model }
36button.attlist =
37  Common.attrib,
38  attribute name { text }?,
39  attribute value { text }?,
40  attribute type { "button" | "submit" | "reset" }?,
41  attribute disabled { "disabled" }?,
42  attribute tabindex { Number.datatype }?,
43  attribute accesskey { Character.datatype }?
44legend = element legend { legend.attlist, Inline.model }
45legend.attlist =
46  Common.attrib,
47  attribute accesskey { Character.datatype }?
48Form.class |= fieldset
49Formctrl.class |= button
50