<enumerationdef>
When the <enumerationdef> element contains both
an <attributedef> and an <elementdef>
element, the enumeration applies to the specified attribute only on the
specified element. The enumeration does not apply to the attribute on other
elements. For example, when the <enumerationdef> element
contains both <attributedef name="value"/>
and
<elementdef name="lomDifficulty"/>
, only the
@value attribute on the <lomDifficulty>
element is limited to the specified enumeration. The possible values for the
@value attribute on other elements are not affected.
When the <enumerationdef> element contain an
<attributedef> element but no
<elementdef> element, the controlled set of values bound
to the attribute apply to all elements. For example, when
<enumerationdef> contains only <attributedef
name="value"/>
, the @value attribute is limited to the
specified enumeration for all elements.
When the <enumerationdef> element is empty, no value is valid for the attribute.
Whether an attribute takes a single value or multiple values from the enumeration is part of the structural definition of the element. An attribute that is defined as CDATA can take multiple values, while an attribute defined as NMTOKEN can take only one.
Content models
See appendix for information about this element in OASIS document type shells.
Inheritance
- map/topicref subjectScheme/enumerationdef
Example
In this example, enumerations are specified for the @platform and @otherprops attributes. Note that the enumeration identifies a category of values; the values within the category are valid, while the category itself is not a valid value. For example, in the code sample here, the @platform attribute is associated with the enumeration for the category "os"; all values within the "os" category are thus valid on the @platform attribute, while the value "os" itself is not.
<subjectScheme> <!-- Pull in a scheme that defines unix OS values --> <schemeref href="unixOS.ditamap"/> <!-- Define new OS values that are merged with those in the unixOS scheme --> <subjectdef keys="os"> <subjectdef keys="linux"/> <subjectdef keys="mswin"/> <subjectdef keys="zos"/> </subjectdef> <!-- Define application values --> <subjectdef keys="app" navtitle="Applications"> <subjectdef keys="apacheserv" href="subject/apache.dita"/> <subjectdef keys="mysql" href="subject/sql.dita"/> </subjectdef> <!-- Define an enumeration of the platform attribute, equal to each value in the OS subject. This makes the following values valid for the platform attribute: linux, mswin, zos --> <enumerationdef> <attributedef name="platform"/> <subjectdef keyref="os"/> </enumerationdef> <!-- Define an enumeration of the otherprops attribute, equal to each value in the application subjects. This makes the following values valid for the otherprops attribute: apacheserv, mysql --> <enumerationdef> <attributedef name="otherprops"/> <subjectdef keyref="app"/> </enumerationdef> </subjectScheme>
Attributes
The following attributes are available on this element: ID attribute group, @status and @base from Metadata attribute group, @outputclass, Debug attribute group, and @class (Not for use by authors).