Contents
This section is normative.
This document defines a variety of XHTML modules and the semantics of those modules. This section describes the conventions used in those module definitions.
Each module in this document is structured in the following way:
Note that attributes are fully defined only the first time they are used in each module. After that, only a brief description of the attribute is provided, along with a link back to the primary definition.
An abstract module is a definition of an XHTML module using prose text and some informal markup conventions. While such a definition is not generally useful in the machine processing of document types, it is critical in helping people understand what is contained in a module. This section defines the way in which XHTML abstract modules are defined. An XHTML-conforming module is not required to provide an abstract module definition. However, anyone developing an XHTML module is encouraged to provide an abstraction to ease in the use of that module.
The abstract modules are not defined in a formal grammar. However, the definitions do adhere to the following syntactic conventions. These conventions are similar to those of XML DTDs, and should be familiar to XML DTD authors. Each discrete syntactic element can be combined with others to make more complex expressions that conform to the algebra defined here.
expr ?
expr +
expr *
a , b
a
is required, followed by expression b
.a | b
a - b
&
).*
).|
), inside of
parentheses following the attribute name. If the attribute has a default value, that value is followed by an asterisk (*
). If the attribute has a fixed value, the attribute name is
followed by an equals sign (=
) and the fixed value enclosed in quotation marks.Abstract module definitions define minimal, atomic content models for each module. These minimal content models reference the elements in the module itself. They may also reference elements in other modules upon which the abstract module depends. Finally, the content model in many cases requires that text be permitted as content to one or more elements. In these cases, the symbol used for text is PCDATA. This is a term, defined in the XML 1.0 Recommendation, that refers to processed character data. A content type can also be defined as EMPTY, meaning the element has no content in its minimal content model.
In some instances, it is necessary to define the types of attribute values or the explicit set of permitted values for attributes. The following attribute types (defined in the XML 1.0 Recommendation) are used in the definitions of the abstract modules:
Attribute Type | Definition |
---|---|
CDATA | Character data |
ID | A document-unique identifier |
IDREF | A reference to a document-unique identifier |
IDREFS | A space-separated list of references to document-unique identifiers |
NAME | A name with the same character constraints as ID above |
NMTOKEN | A name composed of only name tokens as defined in XML 1.0 [XML]. |
NMTOKENS | One or more white space separated NMTOKEN values |
PCDATA | Processed character data |
In addition to these pre-defined data types, XHTML Modularization defines the following data types and their semantics (as appropriate):
Data type | Description |
---|---|
Character | A single character, as per section 2.2 of [XML]. |
Charset | A character encoding, as per [RFC2045]. |
Charsets | A space-separated list of character encodings, as per [RFC2045]. |
ContentType | A list of media ranges with optional accept parameters, as defined in section 14.1 of [RFC2616] as the field value of the accept request header. |
Coordinates | Comma separated list of Lengths used in defining areas. |
Datetime | Date and time information, as defined by the type dateTime in [XMLSCHEMA]. |
HrefTarget | Name used as destination for results of certain actions, with legal values as defined by NMTOKEN. |
LanguageCode | A language code, as per [RFC3066]. |
Length | The value may be either in pixels or a percentage of the available horizontal or vertical space. Thus, the value "50%" means half of the available space. |
LinkTypes | Authors may use the following recognized link types, listed here with their conventional interpretations. A LinkTypes value refers to a space-separated list of link types. White space characters
are not permitted within link types.
These link types are case-insensitive, i.e., "Alternate" has the same meaning as "alternate". User agents, search engines, etc. may interpret these link types in a variety of ways. For example, user agents may provide access to linked documents through a navigation bar.
Linktype 'required' Linktype 'required'Linktype 'prefetch' Linktype 'prefetch'Linktype 'redirect' Linktype 'redirect' to handle the one missing piece of functionality that http-equiv used to supply. |
MediaDesc |
A comma-separated list of media descriptors as described by [CSS2]. The default is |
Number | One or more digits |
Shape | The shape of a region. |
Text | Arbitrary textual data, likely meant to be human-readable. |
URI | A Uniform Resource Identifier Reference, as defined by the type anyURI in [XMLSCHEMA]. |
URIs | A space-separated list of URIs as defined above. |
URIList | A comma-separated list of URIs as defined above. |