Index ranges

Authors can use the @start and @end attributes on <indexterm> elements to index extended discussions. Processors generate index entries that range over several locators.

The start of an index range is indicated by an <indexterm> with a @start attribute. This is called a start element.

The end of a range is indicated by whichever of the following occurs first:

  • An <indexterm> element with an @end attribute with a value that matches the @start attribute on the <indexterm> element that begins the range. This is called an end element.
  • The applicable scope boundary.

The applicable scope boundary depends on the location of the start element:

Topic body
End of the topic body.
Topic prolog
End of the topic that contains the start element, including any child topics
DITA map

Whichever of the following occurs first:

  • End of the topic that the start element references,, including any child topics
  • End of the DITA map
Processors that support index ranges SHOULD do the following:
  • Match @start and @end attributes by a character-by-character comparison with all characters significant and no case folding. occurring
  • Ignore @start and @end attributes if they occur on an <indexterm> element that has child <indexterm> elements.
  • When index ranges with the same identifier overlap, the effective range is determined by matching the earliest start element from the set of overlapping ranges with the latest end element from the set of overlapping ranges.
  • Handle an end-of-range <indexterm> element that is nested within one or more <indexterm> elements. The end-of-range <indexterm> element should have no content of its own; if it contains content, that content is ignored.
  • Ignore unmatched end-of-range <indexterm> elements.

The @start and @end attributes are defined as CDATA. However, we recommend that authors do not include whitespace characters (spaces or tabs) or control characters in values for these attributes.