DITA Proposed Feature # 06

Remove enumerations from attributes, e.g. role attribute on audience element.

Longer description

There are various places we enumerate values for attributes in DITA. This may be good for the authoring experience but makes extensibility very awkward. If we can separate the enumerations into the customization/assembly layer per issue #34, then we can afford to make the base simply CDATA or NMTOKEN to allow a wider range of values.

Scope

Minor. Simply removes enumerations from the doctypes. Currently defined values will still be documented in the spec as reserved values that have a defined behavior, but attributes will allow more values than those enumerated in the spec.

Use Case

  1. Author defines a new kind of link, and assigns role="implementation"

Technical Requirements

Add fallback support to transforms so that when an unrecognized value is encountered it is treated by default as if the value was not there (ie given default treatment).

Deprecate "othertype" attribute, which in some places has been used as a way to let authors provide custom values.

Costs

1 week to identify all attributes that have enumerated values and remove their values from the modules.

.5 weeks to add enumerations back in via feature #34, for the sake of those who want to continue using the existing enumerations.

Additional cost for toolkit implementers

Benefits

Users and specializers are no longer limited by assumptions about allowed values in the base specification, but can add their own values for example for audience type and link role.

Time Required

2 meetings to identify candidates and approve work

1.5 weeks to update document types.

Additional cost for implementers to adjust transforms to provide default behavior for unrecognized values.