This section provides guidance on marking up the major structures of books which are usually the items which are listed in a traditional table of contents. A table of contents may not show as many levels as are contained in the main body of the book, but it is a good place to start when identifying the major structures. Think of the book as being made up of front matter, body matter, and rear matter together with nested levels.
In this section, the major structures are addressed in the order in which they would normally be encountered when reading a book. Only the most commonly-occurring major structures (e.g., dedication, table of contents, part, chapter, section, appendix, etc.) are discussed here. However, the procedures described apply universally to major structures regardless of their name.
Menu
- Levels
- Syntax
- Divisions
- Class Attributes
- Alternative Level Markup
- Front Matter
- Body Matter
- End Matter
Levels
Imagine a very simple book that contains chapters, an appendix, and an index. Each of these would be identified as level 1, the highest level within the hierarchy. Sections within the chapters would be identified as the level 2, the second highest level and sub-sections would be identified as level 3, i.e. the third level in the hierarchy. The index might be divided into the alphabetic divisions A, B, C, etc. These alphabetic divisions would fall at level 2 and, together with the other levels, are part of a strict hierarchy. which can extend to a maximum of six levels. This hierarchy provides direct and easy navigation by the end user to the book’s major structures and provides a detailed hierarchical road map of the book.
In Part 1 it was explained that a second method uses a single <level> tag to mark all levels, with differences between the levels defined by nesting hierarchy or alternatively, the depth attribute. In these guidelines, the tags <level1> + <h1>, <level2> + <h2>, etc., are used throughout, but <level> + <hd> may be used, for instance, if more than six levels of nesting are desired. See Alternative Level Markup for details.
Throughout these Structure Guidelines, the Syntax section for each elements provides a list of common attributes and child elements for the element being defined:
Syntax
<level1>
<pagenum>...</pagenum>
<h1>...</h1>
<level2>...</level2>
<doctitle>...</doctitle>
<docauthor>...</docauthor>
<covertitle>...</covertitle>
<bridgehead>...</bridgehead>
<p>...</p>
<list>...</list>
<dl>...</dl>
<div>...</div>
<blockquote>...</blockquote>
<img>...</img>
<imggroup>...</imggroup>
<poem>...</poem>
<linegroup>...</linegroup>
<byline>...</byline>
<dateline>...</dateline>
<epigraph>...</epigraph>
<table>...</table>
<address>...</address>
<line>...</line>
<author>...</author>
<prodnote>...</prodnote>
<sidebar>...</sidebar>
<note>...</note>
<a>...</a>
<cite>...</cite>
<samp>...</samp>
<kbd>...</kbd>
</level1>
Note: each level tag may have a maximum of one heading (h1, hd, etc.) tag.
Divisions
There are often structures that a producer will not want to tag as major navigation points. Generally, these are structures such as dedications or epigraphs that are not identified by a heading. These objects can still be identified as major structures by calling them divisions (<div>), but they will not be included in the NCX and, thus, are not directly accessible by the end user.
Note: A <div> must be contained within a <level> or <level1> … <level6> element.
At least some of the major structures described in this section are needed for all six types of digital talking book (audio with title element only to full text with no audio). In DTBs that do not include the full text, only a few block and inline elements (prodnote, note, noteref, and sidebar) will be used. DTBs created with full text will use a wider range of tags which are described in the remainder of Part 2.
Below is the minimum tag set required for a DAISY DTB. Preceding this the xml declaration and doctype definition must appear.
<dtbook>
<head>
</head>
<book>
<bodymatter>
<level1>
<p>(paragraph tags or any block level element)</p>
</level1>
</bodymatter>
</book>
</dtbook>
Class Attributes
Class attributes are optional. They are often used to identify the type of material being marked up:
<lic class="pagenum">23</lic>
Without the class attribute, this example would be:
<lic>23</lic>
Class attributes, when used, must be lower case
Alternative Level Markup
Alternative markup can be used to identify the major structures of a book and the h1-h6 tags to mark the headings of those structures. One alternative would be to use the <level> tag along with an optional (but strongly recommended) attribute called “depth”, which indicates the absolute level of the structure being tagged. An <hd> tag identifies the heading inside each of these levels. Whereas the level1-level6 tags can only mark a total of six levels, the level tag can be used recursively; that is, it can be used to mark any number of levels.
This option is provided for future use when software becomes available that allows the effective use of the recursive structuring technique to mark up documents.
Markup
<level>
should be used recursively to identify all structural elements in the book.
Syntax
<level depth="n"> <hd>...</hd> ...</level>
Example
<level depth="1" class="part"> <hd>Part 1...</hd> <level depth="2" class="chapter"> <hd>Chapter 1...</hd> <level depth="3" class="section"> <hd>Section 1...</hd> ... </level> </level></level>