A project can include any number of generated lists (items listed in document order) or indexes (items listed in sorted order and collated). The reference tag <doclists> is used in maps for this purpose:
<doclist src="stdlists.mxl" idref="doclistdef"> <title>List of Something</title> </doclist>
The <title> element is for use in the TOC. The <doclist> element references a definition in a library for the kind of list wanted, like this one for a simple LOF:
<listdef id="loflist" sort="doc" class="lofitem"> <item level="1" elpath="title/fig/*" itemclass="figtitle" /> </listdef>
Several specialized <doclist> elements are predefined in stdelems.mxl, and reference <listdefs> provided in stdlists.mxl. They include: <contents>, <figures>, <tables>, <index>, and <glossary>. All have default @idrefs that point to the appropriate <listdefs>, so they can be used in <map>s as simply as: <contents />.
In the <listdef> above, the @sort specifies how the items are to be sorted: doc (the default), alpha, or numeric. The overall list specifies @class="lofitem"; the classes for each level are derived from it.
In the <item> elements, the @level specifies the subclass to use for the items; and the level 1 items are @class="lofitem1". The required @elpath specifies what elements to include, here any <title> element inside any <fig> element, in any context. The optional @itemclass further restricts selection to those elements with @class="figtitle". To select multiple elements or classes, use multiple <item> elements (which may have the same level).
<listdef id="subjectidx" sort="alpha" class="idxitem"> <item elpath="idx/*" itemclass="subject" /> </listdef>
<listdef id="htmlidx" sort="alpha" class="idxitem"> <item elpath="idx/*" itemclass="htmlkey" /> </listdef>
<idx class="subject htmlkey">*\[HtmlOptions\]* section</idx>
would appear in both indexes; if it had only one @class, it would appear in only one of them.