module XHTML_sigs : sig..end
The elements, attributes, attribute types and data types are given names that match the names in the W3C recommendation as closely as allowed by a strict typing discipline and the lexical conventions of O'Caml:
- elements are implemented as O'Caml constructors with the same name as in the W3C recommendation. The domain and codomain are specified as 'a elt, where 'a is a concrete phantom type build out of polymorphic variants.
- attributes are implemented as O'Caml constructors with a_ prefixed to the
name. The name is the same as in the W3C recommendation, unless an additional
prefix is required to disambiguate:
- a_fs_rows and a_fs_cols instead of a_rows and a_cols for framesets, because of the different argument types.
- attribute types are implemented as O'Caml types that all have the same names as in the W3C recommendation, but are all lowercase.
- data types are also implemented as O'Caml types that all have the same names as in the W3C recommendation and are again all lowercase.
Finite sets of alternatives are mapped to polymorphic variants.
The phantom type is always the most general required by any (supported)
version of the standard. Type discipline is enforced by exporting or not-exporting
the corresponding constructor.
The type defining group of html elements are in XHTML_types