Specialization rules for element types
There are certain rules that apply to element type specializations.
- Characteristics
-
A specialized element type has the following characteristics:
- It has a properly-formed
@classattribute that specifies the specialization hierarchy of the element - It has a content model that is the same or less inclusive than that of the element from which it was specialized. When using expansion modules to add a new element to a content model, the generalized form of any new element is also allowed in the original content model.
- It has a set of attributes that are the same or a subset of those of the element
from which it was specialized, except for specializations of
@baseor@props - The values or value ranges for each attribute are the same or a subset of those attributes on the element from which it was specialized.
- It has a properly-formed
- Namespaces
-
DITA elements are never in a namespace. Only the
@DITAArchVersionattribute is in a DITA-defined namespace. All other attributes, except for those defined by the XML standard, are in no namespace.This limitation is imposed by the details of the
@classattribute syntax, which makes it impractical to have namespace-qualified names for either vocabulary modules or individual element types or attributes. Elements included as descendants of the DITA<foreign>element type can be in any namespace.
We should consider moving the above note elsewhere.