# ======================================================================

# Website DTD Forms Module V2.6
# Part of the Website distribution
# http://sourceforge.net/projects/docbook/
# 
# Please direct all questions and comments about this DTD to
# Norman Walsh, <ndw@nwalsh.com>.

# ======================================================================

namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace html = "http://www.w3.org/1999/xhtml"

html.form =
  element html:form {
    html.form.attlist,
    (component.mix
     | html.input
     | html.button
     | html.label
     | html.select
     | html.textarea)+
  }
html.form.attlist &=
  common.attrib,
  events,
  attribute action { text },
  [ a:defaultValue = "GET" ] attribute method { "GET" | "POST" }?,
  attribute onsubmit { text }?,
  attribute onreset { text }?
inputtype =
  "text"
  | "password"
  | "checkbox"
  | "radio"
  | "submit"
  | "reset"
  | "file"
  | "hidden"
  | "image"
  | "button"
html.input = element html:input { html.input.attlist, empty }
html.input.attlist &=
  common.attrib,
  events,
  [ a:defaultValue = "text" ] attribute type { inputtype }?,
  attribute name { text }?,
  attribute value { text }?,
  attribute checked { "checked" }?,
  attribute disabled { "disabled" }?,
  attribute readonly { "readonly" }?,
  attribute size { text }?,
  attribute maxlength { text }?,
  attribute src { text }?,
  attribute alt { text }?,
  attribute usemap { text }?,
  attribute tabindex { text }?,
  attribute accesskey { text }?,
  attribute onfocus { text }?,
  attribute onblur { text }?,
  attribute onselect { text }?,
  attribute onchange { text }?
html.button =
  element html:button { html.button.attlist, para.char.mix* }
html.button.attlist &=
  common.attrib,
  events,
  attribute name { text }?,
  attribute value { text }?,
  [ a:defaultValue = "submit" ]
  attribute type { "button" | "submit" | "reset" }?,
  attribute disabled { "disabled" }?,
  attribute tabindex { text }?,
  attribute accesskey { text }?,
  attribute onfocus { text }?,
  attribute onblur { text }?
html.label = element html:label { html.label.attlist, para.char.mix* }
html.label.attlist &=
  common.attrib,
  events,
  attribute for { xsd:IDREF }?,
  attribute accesskey { text }?,
  attribute onfocus { text }?,
  attribute onblur { text }?
html.select = element html:select { html.select.attlist, html.option+ }
html.select.attlist &=
  common.attrib,
  events,
  attribute name { text }?,
  attribute size { text }?,
  attribute multiple { "multiple" }?,
  attribute disabled { "disabled" }?,
  attribute tabindex { text }?,
  attribute onfocus { text }?,
  attribute onblur { text }?,
  attribute onchange { text }?
html.option = element html:option { html.option.attlist, text }
html.option.attlist &=
  common.attrib,
  events,
  attribute selected { "selected" }?,
  attribute disabled { "disabled" }?,
  attribute value { text }?
html.textarea = element html:textarea { html.textarea.attlist, text }
html.textarea.attlist &=
  common.attrib,
  events,
  attribute name { text }?,
  attribute rows { text },
  attribute cols { text },
  attribute disabled { "disabled" }?,
  attribute readonly { "readonly" }?,
  attribute tabindex { text }?,
  attribute accesskey { text }?,
  attribute onfocus { text }?,
  attribute onblur { text }?,
  attribute onselect { text }?,
  attribute onchange { text }?
# End of forms.mod V2.6 ..............................................

# ......................................................................
