Digital Talking Book 3-07 Expanded DTD

Authors: Harvey Bingham, George Kerscher, Michael Moodie,
and the DAISY/NISO DTD Development Group

Date: 2001-01-31

Copyright © 1999, 2001 National Information Standards Organization

Go to the Table of Contents

Introduction

This document expands upon the XML Document Type Definition implementing the NISO Digital Talking Book Version 3-07.

The Digital Talking Book 3.0 Document Type Definition (DTD) provides the means to markup the text of a published book to permit support for the combination of professional narration, and navigation into that narration. The markup tags in the book convey its content in structure, and some metadata about the book content and its structures.

The Document Type Definition (DTD) names and defines the allowable element types, their allowable content, and their attributes. Correct markup of the text of the book permits the textual material to be synchronized using SMIL files with the professionally narrated version of that book. The synchronization can permit concurrent display of the text being narrated. The textual content can be searched in context to locate material desired for narration.

This application of XML is the next generation after several DAISY versions of 2.X specifications. Those applications developed a Navigation Control Center (NCC) for synchronizing document structure with narration. The DAISY (Digital Audio-based Information SYstem) Consortium contributed substantially to the development of this DTD.

The NCC evolved into an XML application called NCX derived from the markup of documents tagged using the dtbook3 DTD. Richer structuring capability is one of the objectives of this DTD. The Synchronized Multimedia Integration Language (SMIL) 2.0 will be used.

Some HTML elements are omitted from dtbook3. HTML authoring tools may include many of the additional tags that are left out of dtbook3. Endtag markup, sometimes optional in HTML, are required for use with dtbook3, as any XML application requires endtags. The benefit of including endtags is that the tagged document has dependable structure.

The tools available for browsing HTML may be used with dtbook3 material, at the expense of discarding some specific tagging and attributes that are not part of HTML 4.0. A CSS-based stylesheet that identifies the presentation expectations for the non-HTML tags, or a filter to map those tags onto suitable HTML tags can provide appropriate visual presentation.

Go to the Table of Contents

2. Document Tagging Content

A Digital Talking Book 3 document is an XML application. Therefore it should begin with the XML processing instruction identifying the version of XML, and the character set encoding:

<?xml version="1.0" encoding="ISO-8859-1" ?>
Alternative encodings "UTF-8", "UTF-16", "ISO-10646-UCS-2", or "ISO-10646-UCS-4" should be used for the various encodings and transformations of Unicoce/ISO/IEC 106466. XML applications are expected to support Unicode. Other alternatives are also acceptable, including "ISO-8859-1", "ISO-8859-2", ..."ISO-8859-9" for parts of ISO 8859. Also the values "ISO-2022-JP", "Shift_JIS", and "EUC-JP" should be used for the various encoded forms of JIS X-0208-1997.

Note the default encoding above has a restricted set of characters, commonly known as "ISO-Latin 1". It may be inadequate for some books. See the discussion in Section 3 below for ways to augment this encoding with character entity sets.

This is followed by the document type declaration, the DOCTYPE:

<!DOCTYPE dtbook3 PUBLIC
"-//NISO//DTD dtbook3.dtd//EN"
"http://www.loc.gov/nls/niso/dtbook3.dtd"
The ExternalID begins with PUBLIC and is followed by the formal public identifier, indicating

-// unregistered
NISO// owning organization
DTD kind of external entity
dtbook3.dtd current vesion
//EN the public text language is English.
Then comes the PUBLIC URI for the DTD: where it may be found on the internet.

"http://www.loc.gov/nls/niso/dtbook3.dtd"
The third string identifies the SYSTEM (local) version of the DTD.

"dtbook3.dtd"
In this form it is expected to be found rooted in the same directory as this dtbook3 document. If it isn't there, find it from the PUBLIC URI.

This declaration identifies dtbook3 as the name of the root element., That name is the first to occur in any book that is tagged to this DTD.

Note that the reference above is to the latest version of the DTD. When a document is tagged to a particular version of the DTD, the following is the alternative, here referring to version 3-07.

<!DOCTYPE dtbook3 PUBLIC
"-//NISO//DTD dtbook3.dtd Version 3-07 2001-01-31//EN"
"http://www.loc.gov/nls/niso/dtbk3-07.dtd"
"dtbk3-07.dtd">

Go to the Table of Contents

3. Modular Extension to the DTD

The dtbook3 DTD has two parameter entities defined that provide hooks to allow an individual book to modularly extend the content models for its block and inline parameter entities.

<!ENTITY % externalblock "">
<!ENTITY % externalinline "">
These hooks appear in corresponding block and inline content models. With this "" content they have no effect on books tagged to the dtbook3 DTD. In a book that needs a modular extension, values are given by redefinition in the internal subset of that book. This extends the dtbook3 DTD without having to change it.

A book can augment the dtbook3 DTD by including other declarations in the internal subset of declarations (in square brackets before the concluding ">") of the initial DOCTYPE declaration that identifies the dtbook3 DTD. Those additional declarations in the internal subset take preference over any in the dtbook3 DTD. The effective DTD is thereby augmented by the parameter entity values and any other declarations of the book's internal subset. For example:

<!DOCTYPE dtbook3 PUBLIC
"-//NISO//DTD dtbook3.dtd//EN"
"http://www.loc.gov/nls/niso/dtbook3.dtd"
"dtbook3.dtd"
[
<!ENTITY % dramaModule "http://www.loc.gov/nls/niso/drama.dtd" >
%dramaModule;
<!ENTITY % externalblock "| drama">
<!ENTITY % externalinline "| stagedir">
]>
The "%dramaModule;" invocation causes all declarations made within dramaModule to become the initial part of the dtbook3 DTD. Within the book, the empty entity declarations for both % externalblock and for % externalinline are replaced by these new definitions. Thus the block element drama can appear wherever block elements may occur in dtbook3. Similarly any actual content needed for %externalinline; can appear in that extension to wherever %inline; appears in the DTD.

More than one module may be needed and included in a book, for example both poem and drama can appear in the internal subset of the book. For example:

[
<!ENTITY % poemModule "http://www.loc.gov/nls/niso/poem.dtd" >
%poemModule;
<!ENTITY % dramaModule "http://www.loc.gov/nls/niso/drama.dtd" >
%dramaModule;
<!ENTITY % externalblock "| poem | drama" >
<!ENTITY % externalinline "| stagedir">
]>
Note that arbitrary external modules from other sources may not have all the needed attributes. XML allows augmentation of ATTLISTs in the internal subset. For each module, some accommodation to its use in dtbook3 may be required.

Also note that element name collisions may be possible, with names in those modules and associated content models overriding those in dtbook3. For modules under control of dtbook3 design, such collisions can be avoided. A more general solution uses namespace prefixes to element and attribute names to clearly indicate the module source.

The fully marked-up drama follows. Since declarations in the internal subset take precedence over like-named ones from the external entity containing the base DTD (that is, dtbook3), the module containing the drama tags is included along with the tags in the base DTD that are not duplicated in the drama module. So if a <p> tag is defined in the drama module, its definition overrides that of the <p> tag in dtbook3.

Note that tools and players processing any extended markup that affects navigation structure will need to know of modular extensions.

The list of URLs for DTDs of compatible modules may be found at:

"http://www.loc.gov/nls/niso/dtbook3modules.htm"
Note that the default encoding in the initial processing instruction,

encoding="ISO8859-1"
may be inadequate for some books or some modules, such as math. One of the ISO 10646-based encodings should be used, such as UTF-8 or UTF-16, which all XML processors must be able to read. An older alternative is to identify and activate needed character entity sets. The character entity names suggest their appearance, and may be usefully spelled out, in place of their visual rendering.



Element Usage Summary

ElementDescription
a contains an anchor, which is used in two ways: A name anchor identifies an exact position in a given document. A link anchor, when activated, "links to" (repositions the focus to) another location within that document or another document. [HTML 4.0]
abbr designates an abbreviation, a shortened form of a word. For example: Mr., approx ., lbs., rec'd.
acronym marks a word formed from key letters (usually initials) of a group of words. For example: UNESCO, NATO, XML.
address contains a location at which a person or agency may be contacted. [HTML 4.0]
author identifies the writer of a given work.
base contains the base URI from which local references start. It acts as an absolute URI that serves as the base URI for resolving relative URIs found within the document. It is an empty element that may appear only in <head>. [HTML 4.0]
bdo is used in special cases where the automatic actions of the bidirectional algorithm would result in incorrect display. [HTML 4.0]
blockquote indicates a block of quoted content that is set off from the surrounding text by paragraph breaks. Compare with <q> which marks short, inline quotations. [HTML 4.0]
bodymatter consists of the text proper of a book, as opposed to preliminary material <frontmatter> or supplementary information <rearmatter>.
book surrounds the actual content of the document, which is divided into <frontmatter>, <bodymatter>, and <rearmatter>. <head>, which contains metadata, precedes <book>.
br marks a forced line break. [HTML 4.0]
caption describes a table. If used, it must follow immediately after the table start tag. [HTML 4.0]
citation marks a reference to another document.
code designates a fragment of computer code. [HTML 4.0]
col is a means to apply attribute values to table columns. [HTML 4.0]
colgroup is a group of columns that may share attribute values within a table. [HTML 4.0]
dd marks a definition of a term within a definition list. [HTML 4.0]
dfn marks the first occurrence of a word or term that is defined or explained elsewhere in a book. [HTML 4.0]
div is a generic container for subdivisions of a book. The <level1> ... <level6> hierarchy, or the <level> tag used recursively, should mark the major hierarchical structures of a book, while <div> is used in less formal circumstances or when for production purposes it is desired that a structure should be treated differently. The class attribute identifies the actual name (e.g., part, chapter,i letter) of the structure it marks. Compare with <span> which is used in inline settings. [HTML 4.0]
dl contains a definition list, usually consisting of pairs of terms <dt> and definitions <dd>. Any definition can contain another definition list. [HTML 4.0]
doctitle marks the title of the book, as the first tag within <frontmatter>. It is used to quickly identify the book.
dt marks a term in a definition list. [HTML 4.0]
dtbook3 is the root element in the Digital Talking Book 3.0 DTD. Contains metadata in <head> and the document itself in <book>.
em indicates emphasis. Compare with <strong>. [HTML 4.0]
frontmatter contains preliminary material such as the copyright notice, foreword, acknowledgments, table of contents, etc. which serves as a guide to the contents and nature of a book.
h1 contains the text of the heading for a <level1> structure. [HTML 4.0 but nested]
h2 contains the text of the heading for a <level2> structure. [HTML 4.0 but nested]
h3 contains the text of the heading for a <level3> structure. [HTML 4.0 but nested]
h4 contains the text of the heading for a <level4> structure. [HTML 4.0 but nested]
h5 contains the text of the heading for a <level5> structure. [HTML 4.0 but nested]
h6 contains the text of the heading for a <level6> structure. [HTML 4.0 but nested]
hd marks the text of a heading in a <list> or <sidebar>.
head contains metainformation about the book but no actual content of the book itself, which is placed in <book>. This information is consonant with the head information in xhtml. See: http://www.w3.org/ [HTML 4.0]
hr is an empty element indicating a horizontal rule. May be used to indicate a break in the text where only blank lines, a row of asterisks, a horizontal line, etc. are used in the print book. [HTML 4.0]
img marks a visual image. The "src" attribute specifies the location of the image file. The "alt" and "longdesc" attributes may be used to supply short and long descriptions, respectively. may be used to supply short and long descriptions, respectively, although prodnote will generally contain the latter. Longdesc may contain a pointer to the prodnote. The referencing is typically of the form <imgcaption imgref="#yyy">The Caption</imgcaption> containing the printed caption for the <img id="yyy">. [HTML 4.0]
imgcaption contains the caption for one or more <img>. If the caption applies to more than one <img>, each idref in the list of IDs in the imgref is separated by whitespace.
imggroup provides a container for <img> and its associated <imgcaption> and <prodnote>. <prodnote> will contain a description of the image. Content model allows multiple <img> if they share a caption, multiple <imgcaption> if several captions refer to a single <img>, and multiple <prodnote> if different versions are needed for different media (e.g., large print, braille, etc.)
kbd designates information that the reader is to input directly into a computer using the keyboard. [HTML 4.0]
level is an alternative tag for marking the major structures in a book. It may be used recursively, i.e., repeated indefinitely with each successive occurrence nesting within the previous. It may also be included in a subsequent higher level. The class attribute identifies the actual name (e.g., part, chapter, section, subsection) of the structure it marks. the depth attribute indicates the nesting depth, starting at 1. Subordinate levels have greater depth.
level1 is the highest level container of major divisions of a book. Used in <frontmatter>, <bodymatter>, and <rearmatter> to mark the largest divisions of the book (usually parts or chapters), inside which level2 subdivisions (often sections) may nest. The class attribute identifies the actual name (e.g., part, chapter) of the structure it marks.
level2 contains subdivisions that nest within <level1> divisions. The class attribute identifies the actual name (e.g., subpart, chapter, subsection) of the structure it marks.
level3 contains subdivisions that nest within <level2> subdivisions (e.g., subsections within subsections). The class attribute identifies the actual name (e.g., section, subpart, subsubsection) of the subordinate structure it marks.
level4 contains subdivisions that nest within <level3> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
level5 contains subdivisions that nest within <level4> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
level6 contains subdivisions that nest within <level5> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
levelhd contains the text of a heading within <level>. Corresponds to <h1> through <h6> used in <level1> through <level6>.
li marks each list item in a <list>. <li> content may be either inline or block and may include other nested lists. Alternatively it may contain a sequence of list item components, <lic>, that identify regularly occurring content, such as the heading and page number of each entry in a table of contents. [HTML 4.0]
lic ("list item component") allows ordered substructure within a list item <li>. Used when a list item is made up of two or more components, as in a table of contents entry.
line marks a single logical line of text. Often used in conjunction with <linenum> in documents with numbered lines.
linenum contains a line number in, for example, legal text.
link is an empty element appearing in the <head> section of a document that establishes a connection between the current document and another document(s). The <link> element conveys relationship information (for example, "next" and "previous") that may be rendered by user agents in a variety of ways. [HTML 4.0]
list contains a list. The "type" attribute can indicate whether a list is ordered or unordered.
meta indicates metadata about the book. It is an empty element that may appear only in <head>. [HTML 4.0]
noscript identifies an alternate method for carrying out a function when a playback device cannot execute a <script>. See <script>. [HTML 4.0]
note marks a footnote, endnote, annotation, etc. The reference to the note within the text is marked with a <noteref>.
noteref marks one or more characters that reference a footnote, endnote, or annotation <note>.
notice contains a warning, caution, or other type of admonition normally found in the margin of a book. Differs from a sidebar in that a notice must be presented at a specific location within the text and its presentation is not optional.
object marks an embedded object, which may consist of scripts, applets, images, etc. [HTML 4.0]
p contains a paragraph. [HTML 4.0]
pagenum contains a page number from the print document, recorded as the first text object on a page. The"page" attribute allows three types of page numbering schemes to be identified: "normal" arabic numbering in the body of the book, "front" pages (from the frontmatter), and "special" pagination schemes such as hyphenated numbers in appendices.
param provides a named property for <object>. [HTML 4.0]
prodnote contains language added to the alternative-format version by the producers; commonly used to provide verbal descriptions of visual elements such as charts, graphs, etc.; to supply operating instructions; or to describe differences between the print book and the audio version.
q contains a short, inline quotation. Compare with <blockquote> which marks a longer quotation set off from the surrounding text. [HTML 4.0]
rearmatter contains supplementary material such as appendices, glossaries, bibliographies, and indices following the <bodymatter> of the book.
samp contains a sample of work created by the author for use as an example or template. For example, a sample business letter, resume, computer program output, or form. [HTML 4.0]
script contains a script, a program that may accompany a document or be embedded directly in it. The program executes on the client's machine when the document loads, or at some other time such as when a link is activated. See <noscript> for an alternative in case the <script> cannot be executed. [HTML 4.0]
sent marks a sentence.
sidebar contains information supplementary to the main text and/or narrative flow and is often boxed and printed apart from the main text block on a page.
span is a generic container for use in inline settings when no specific tag exists for a given situation. The class attribute may describe the nature of the text it marks (e.g., a typographical error). May be used to mark a class of items to which styles are to be applied. Compare with <div> which is used in block settings. [HTML 4.0]
strong marks stronger emphasis than <em>. [HTML 4.0]
style is means to include styling information that applies to the book. It may appear only in <head>. [HTML 4.0]
sub indicates a subscript character (printed below a character's normal baseline). Can be used recursively and/or intermixed with <sup>. [HTML 4.0]
sup marks a superscript character (printed above a character's normal baseline). Can be used recursively and/or intermixed with <sub>. [HTML 4.0]
table contains a table data arranged in rows and columns. [HTML 4.0]
tbody marks a group of rows in the main body of a table. If the table is divided into several sections, each consisting of a number of rows, each section would be separately tagged with tbody. [HTML 4.0]
td indicates an individual data cell in the body of a table. [HTML 4.0]
tfoot marks table footer information, consisting of one or more rows (each marked with the tr tag). [HTML 4.0]
th indicates a table cell containing header information. [HTML 4.0]
thead marks header information in a table, consisting of one or more rows (each marked with the tr tag) of <th> cells. [HTML 4.0]
title contains the title of the book but is used only as metainformation in <head>. Use <doctitle> within <book> for the actual book title, which will usually be the same. [HTML 4.0]
tr marks one row of a table containing <th> or <td> cells. [HTML 4.0]
var indicates an instance of a variable or program argument. Commonly used as a placeholder for text to be entered by the user. [HTML 4.0]
w marks a word.

Go back to Table of Contents


Element Descriptions

For each of the elements in the dtb3-07.dtd in the order they occur in the DTD the following information is supplied:

  1. <ELEMENT Elementname>
  2. Description, with suffix if from [HTML 4.0]
  3. Contains: original element content model, and Expanded: if original has any parameter entities in expanded content model.
  4. Occurs within: list of element names in which this element may (or must) occur directly, in their content models.
  5. Attributes: Original: and Expanded: if there are parameter entities they are expanded.

Element Declarations are shown as:

<!ELEMENT elementname

Contains:
EMPTY or original content model:
Expanded:
content model with parameter entities expanded

>

EMPTY declared content denotes that the element has no explicit content. Instead its purpose is to mark a position, and to associate attribute values to that position. The XML-approved way to indicate the end-tag of such an element is by the special tag close ' />'. That leading space (after the end of the final quoted value for an attribute) is presumed by some browsers.

For example, using the EMPTY horizontal rule tag:
<hr title="horizontal rule purpose" />
or for backward compatibility the more common end tag form may be used:
<hr title="horizontal rule purpose"></hr>
Element content models are formed from a parenthesized list of names of other elements or parameter entities of the form %name; or #PCDATA, separated by connectors:

Connector Use Example
, sequence (x,y) is x followed by y
| alternative (x|y) is either x or y
(...) grouping (x,(y|z)) is x followed by either y or z

Individual names or groupings of them may have a following replicator (by default no replicator means one of:

ReplicatorUse Example
? optional x? means zero or one of x
* optional and repeatable x* means zero or more of x
+ Repeatable x+ means one or more of x
none One only x means just one x

#PCDATA is a special name used in some element content models to indicate that otherwise undifferentiated text can appear. The only place that it can occur in a content model is alone, or first among alternatives. For examples:

Content ModelMeaning
(x | y)+ Either x or y, repeatable, in any order
(#PCDATA | x | y)+ #PCDATA, intermixed and repeatable, with x or y
(x,y?) x, optionally followed by y
(x?,(y|z)*) Optional x, followed by optional and repeatable choice of x or y

means choose among 0 or more of x or y intermixed with text. Note that because the #PCDATA is present, even an empty string matches this model.

#PCDATAstands for "parsed character data", indicating that the content may include other intermixed properly-nested element tags. It may also contain entities that permit representing non-ASCII characters, intermixed with characters from the document character set. If this set is "ISO-8879-1" or the ASCII characters, a form for referencing such entities is:

&xHHHH;

where the HHHH denotes a Unicode hexidecimal code position.

Attribute List Declarations have one or more attributes. Each attribute has three parts:

  1. Name of attribute as it may appear in a document tag; in the form: name="value".
  2. Declared value of attribute, of various types:
    Attribute Type Explanation
    ID identifier, formed from letters (case sensitive), digits, dash, underscore, and period.
    IDREF Value is one ID value
    IDREFS Values are one or more space-separated ID values
    CDATA character string, with the semantic meaning suggested by the parameter entity name.
    (name1|name2|...) Select at most one among the alternatives
  3. Default value of attribute, of various kinds:
    Default Value Explanation
    #IMPLIED attribute and its value may be omitted, and if so, the meaning is up to the system.
    #REQUIRED attribute and its value must be included.
    quoted value One of the explicit names in the Declared value.

Hyperlinking:

  1. Each element name in the <!ELEMENT elementname Contains: ... and Expanded: ... > is linked to its description.
  2. Each parameter entity reference (%name;) in the Element and Attribute list is linked to the corresponding entry in the Parameter Entities Sorted section. Since they are expanded where they occur, the parameter entity reference links need not usually be followed.

Document Structure


<dtbook3>

dtbook3 is the root element in the Digital Talking Book 3.0 DTD. Contains metadata in <head> and the document itself in <book>.
<!ELEMENT dtbook3
Contains:
(%dtbook3.content;)
Expanded:
(head , book)
>

May not occur in other element content models, as dtbook3 is the root element.

<!ATTLIST dtbook3
AttributeDeclaredvalueDefaultvalue
Original:
%i18n;
Expanded:
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
>
Go to the Table of Contents

Book Content


<book>

book surrounds the actual content of the document, which is divided into <frontmatter>, <bodymatter>, and <rearmatter>. <head>, which contains metadata, precedes <book>.
<!ELEMENT book
Contains:
(frontmatter, bodymatter?, rearmatter?)
>

May occur within the element content model:

dtbook3
<!ATTLIST book
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
onload %script; #IMPLIED
onunload %script; #IMPLIED
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
onload CDATA #IMPLIED
onunload CDATA #IMPLIED
>
Go to the Table of Contents

Book Major Structures


<frontmatter>

frontmatter contains preliminary material such as the copyright notice, foreword, acknowledgments, table of contents, etc. which serves as a guide to the contents and nature of a book.
<!ELEMENT frontmatter
Contains:
(doctitle, (level | level1 | %block; | script)+)
Expanded:
(doctitle , (level | level1 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | script)+)
>

May occur within the element content model:

book
<!ATTLIST frontmatter
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<bodymatter>

bodymatter consists of the text proper of a book, as opposed to preliminary material <frontmatter> or supplementary information <rearmatter>.
<!ELEMENT bodymatter
Contains:
(level | level1 | %block; | script)+
Expanded:
(level | level1 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | script)+
>

May occur within the element content model:

book
<!ATTLIST bodymatter
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<rearmatter>

rearmatter contains supplementary material such as appendices, glossaries, bibliographies, and indices following the <bodymatter> of the book.
<!ELEMENT rearmatter
Contains:
(level | level1 | %block; | script)+
Expanded:
(level | level1 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | script)+
>

May occur within the element content model:

book
<!ATTLIST rearmatter
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>
Go to the Table of Contents

dtbook3 Recursive Structure level


<level>

level is an alternative tag for marking the major structures in a book. It may be used recursively, i.e., repeated indefinitely with each successive occurrence nesting within the previous. It may also be included in a subsequent higher level. The class attribute identifies the actual name (e.g., part, chapter, section, subsection) of the structure it marks. the depth attribute indicates the nesting depth, starting at 1. Subordinate levels have greater depth.
<!ELEMENT level
Contains:
((levelhd | %block; | %inlineinblock; | level)*)
Expanded:
((levelhd | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum | level)*)
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level
<!ATTLIST level
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
depth CDATA #IMPLIED
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
depth CDATA #IMPLIED
>
Go to the Table of Contents

dtbook3 Hierarchic Structure level1 ... level6


<level1>

level1 is the highest level container of major divisions of a book. Used in <frontmatter>, <bodymatter>, and <rearmatter> to mark the largest divisions of the book (usually parts or chapters), inside which level2 subdivisions (often sections) may nest. The class attribute identifies the actual name (e.g., part, chapter) of the structure it marks.
<!ELEMENT level1
Contains:
((h1 | level2 | %block; | %inlineinblock;)*)
Expanded:
((h1 | level2 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter
<!ATTLIST level1
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<level2>

level2 contains subdivisions that nest within <level1> divisions. The class attribute identifies the actual name (e.g., subpart, chapter, subsection) of the structure it marks.
<!ELEMENT level2
Contains:
((h2 | level3 | %block; | %inlineinblock;)*)
Expanded:
((h2 | level3 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content model:

level1
<!ATTLIST level2
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<level3>

level3 contains subdivisions that nest within <level2> subdivisions (e.g., subsections within subsections). The class attribute identifies the actual name (e.g., section, subpart, subsubsection) of the subordinate structure it marks.
<!ELEMENT level3
Contains:
((h3 | level4 | %block; | %inlineinblock;)*)
Expanded:
((h3 | level4 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content model:

level2
<!ATTLIST level3
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<level4>

level4 contains subdivisions that nest within <level3> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
<!ELEMENT level4
Contains:
((h4 | level5 | %block; | %inlineinblock;)*)
Expanded:
((h4 | level5 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content model:

level3
<!ATTLIST level4
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<level5>

level5 contains subdivisions that nest within <level4> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
<!ELEMENT level5
Contains:
((h5 | level6 | %block; | %inlineinblock;)*)
Expanded:
((h5 | level6 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content model:

level4
<!ATTLIST level5
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<level6>

level6 contains subdivisions that nest within <level5> subdivisions. The class attribute identifies the actual name of the subordinate structure it marks.
<!ELEMENT level6
Contains:
((h6 | %block; | %inlineinblock;)*)
Expanded:
((h6 | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*)
>

May occur within the element content model:

level5
<!ATTLIST level6
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>
Go to the Table of Contents

Br, Linenum, Address, and Div Content Models


<br>

br marks a forced line break. [HTML 4.0]
<!ELEMENT br
Contains:
EMPTY
>

May occur within the element content models:

address, author, notice, prodnote, sidebar, line, a, em, strong, dfn, code, samp, kbd, var, citation, abbr, acronym, sub, sup, span bdo, sent, w, q, imgcaption, object, p, doctitle, levelhd, h1, h2, h3, h4, h5, h6, hd, blockquote, dt, dd, li lic, caption, th, td
<!ATTLIST br
AttributeDeclaredvalueDefaultvalue
Original:
%coreattrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
>

<linenum>

linenum contains a line number in, for example, legal text.
<!ELEMENT linenum
Contains:
(#PCDATA)
>

May occur within the element content models:

address, author, notice, prodnote, sidebar, line, a, em, strong, dfn, code, samp, kbd, var, citation, abbr, acronym, sub, sup, span bdo, sent, w, q, imgcaption, object, p, doctitle, levelhd, h1, h2, h3, h4, h5, h6, hd, blockquote, dt, dd, li lic, caption, th, td
<!ATTLIST linenum
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<address>

address contains a location at which a person or agency may be contacted. [HTML 4.0]
<!ELEMENT address
Contains:
(%inline;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | prodnote | noteref )*
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST address
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<div>

div is a generic container for subdivisions of a book. The <level1> ... <level6> hierarchy, or the <level> tag used recursively, should mark the major hierarchical structures of a book, while <div> is used in less formal circumstances or when for production purposes it is desired that a structure should be treated differently. The class attribute identifies the actual name (e.g., part, chapter,i letter) of the structure it marks. Compare with <span> which is used in inline settings. [HTML 4.0]
<!ELEMENT div
Contains:
(%block; | %inlineinblock;)*
Expanded:
(p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)*
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST div
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
level CDATA #IMPLIED
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
level CDATA #IMPLIED
>
Go to the Table of Contents

dtbook3 Block Elements Author, Notice, Prodnote, Sidebar


<author>

author identifies the writer of a given work.
<!ELEMENT author
Contains:
(%inline;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | prodnote | noteref )*
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST author
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<notice>

notice contains a warning, caution, or other type of admonition normally found in the margin of a book. Differs from a sidebar in that a notice must be presented at a specific location within the text and its presentation is not optional.
<!ELEMENT notice
Contains:
(%inline;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | prodnote | noteref )*
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST notice
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<prodnote>

prodnote contains language added to the alternative-format version by the producers; commonly used to provide verbal descriptions of visual elements such as charts, graphs, etc.; to supply operating instructions; or to describe differences between the print book and the audio version.
<!ELEMENT prodnote
Contains:
(%flow;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | noteref | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note )*
>
<!ATTLIST prodnote
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
imgref IDREFS #IMPLIED
render (required | optional) #IMPLIED
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
imgref IDREFS #IMPLIED
render (required | optional) #IMPLIED
>

<sidebar>

sidebar contains information supplementary to the main text and/or narrative flow and is often boxed and printed apart from the main text block on a page.
<!ELEMENT sidebar
Contains:
(%flow;| hd)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | noteref | p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | hd)*
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST sidebar
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<note>

note marks a footnote, endnote, annotation, etc. The reference to the note within the text is marked with a <noteref>.
<!ELEMENT note
Contains:
(%block; | %inlineinblock;)+
Expanded:
(p | list | dl | div | blockquote | hr | table | address | noscript | author | notice | prodnote | sidebar | note | a | citation | img | imgcaption | code | samp | kbd | var | pagenum)+
>

May occur within the element content models:

frontmatter, bodymatter, rearmatter, level, level1, level2, level3, level4, level5, level6, div, prodnote, sidebar, note, object, blockquote, dd, li, th, td noscript
<!ATTLIST note
AttributeDeclaredvalueDefaultvalue
Original:
%attrsrqd;
Expanded:
id ID #REQUIRED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>

<line>

line marks a single logical line of text. Often used in conjunction with <linenum> in documents with numbered lines.
<!ELEMENT line
Contains:
(%inline;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | a | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | prodnote | noteref )*
>
<!ATTLIST line
AttributeDeclaredvalueDefaultvalue
Original:
%attrs;
Expanded:
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang NMTOKEN #IMPLIED
dir (ltr|rtl) #IMPLIED
showin (xxx|xxp|xlx|xlp|bxx|bxp|blx|blp) #IMPLIED
>
Go to the Table of Contents

The Anchor Element


<a>

a contains an anchor, which is used in two ways: A name anchor identifies an exact position in a given document. A link anchor, when activated, "links to" (repositions the focus to) another location within that document or another document. [HTML 4.0]
<!ELEMENT a
Contains:
(%inlinea;)*
Expanded:
(#PCDATA | em | strong | dfn | code | samp | kbd | var | citation | abbr | acronym | img | object | br | script | q | sub | sup | span | bdo | linenum | sent | w | pagenum | prodnote | noteref )*
>