# 4. The XHTML 2.0 Document Type

This section is normative.

The XHTML 2.0 document type is a fully functional document type with rich semantics. It is a collection of XHTML-conforming modules (many of which are defined in this specification). The Modules and the elements and/or attributes they define are listed here for information purposes, but the definitions in their base documents should be considered authoritative. In the on-line version of this document, the module names in the list below link into the definitions of the modules within the relevant version of the authoritative specification.

Document Module
  `body, head, html, title`
Structural Module
  `address, blockcode, blockquote, div, h, h1, h2, h3, h4, h5, h6, p, pre, section, separator`
Text Module
  `abbr, cite, code, dfn, em, kbd, l, q, samp, span, strong, sub, sup, var`
Hypertext Module
  `a`
List Module
  `dl, dt, dd, label, nl, ol, ul, li`
Core Attributes Module
  `class`, `id`, and `title` attributes
Hypertext Attributes Module
  `href`, `hreftype`, `cite`, `target`, `rel`, `rev`, `access`, `nextfocus`, `prevfocus`, and `xml:base` attributes
Internationalization Attribute Module
  `xml:lang` attribute
Bi-directional Text Module
  `dir` attribute
Edit Attributes Module
  `edit` and `datetime` attributes
Embedding Attributes Module
  `src` and `type` attributes
Image Map Attributes Module
  `usemap, ismap, shape`, and `coords` attributes
Media Attribute Module
  `media` attribute
Metainformation Module
  `meta`, `link`
Object Module
  `object, param, standby`
Style Attribute Module
  `style` attribute
Stylesheet Module
  `style` element
Tables Module
  `caption, col, colgroup, summary, table, tbody, td, tfoot, th, thead, tr`

XHTML 2.0 also uses the following externally defined modules:

Ruby Annotation Module [RUBY]
  `ruby, rbc, rtc, rb, rt, rp`
XForms 1.1 [XFORMS]
  `alert, bind, case, choices, copy, delete, extension, filename, group, help, hint, input, insert, instance, item, itemset, label, load, mediatype, message, model, output, range, rebuild, recalculate, refresh, repeat, reset, revalidate, secret, select, select1, send, setfocus, setindex, setvalue, submission, submit, switch, textarea, toggle, trigger, upload`, and `value` elements, and `repeat-model, repeat-bind, repeat-nodeset, repeat-startindex`, and `repeat-number` attributes
XHTML Metainformation Attributes Module [RDFASYNTAX]
  `about`, `content`, `datatype`, `typeof`, `property`, `rel`, `resource`, and `rev` attributes
XML Events Module [XMLEVENTS]
  `listener` element, and `defaultAction, event, handler, objserver, phase, propagate`, and `target` attributes
XML Handlers Module [XMLEVENTS]
  `action`, `dispatchEvent`, `addEventListener`, `removeEventListener`, `stopPropagation`, `preventDefault` attributes
XML Script Module [XMLEVENTS]
  `script` element
Internationalization Tag Set [ITS]
  `rules` element, `translate` attribute, etc. @@@@need to determine how to best integrate this into the content model@@@@

An implementation of this document type as a RELAX NG grammar is defined in Appendix B, as an XML Schema in Appendix D, and as a DTD in Appendix F.