DAISY Format 2.02 Specification

DAISY 2.02 Specification

Recommendation, February 28 2001

Copyright © The DAISY Consortium 1998, 1999, 2000, 2001.

Abstract

This document defines version 2.02 of the DAISY Digital Talking Book (DTB) format. The DAISY format is based on the W3C defined SGML (ISO 8879) applications XHTML 1.0 and SMIL 1.0. Using this framework, a talking book format is presented that enables navigation within a sequential and hierarchical structure consisting of (marked-up) text synchronized with audio.

Status of this document

This is a formal recommendation of the DAISY Consortium.

Table of Contents

Document maintained by: Markus Gylling

This document can be found at: www.daisy.org/z3986/specifications/daisy_202.html

If you have any questions, comments, or suggestions please contact us.

Acknowledgements

George Kerscher, DAISY Consortium / Recording For the Blind and Dyslexic; Markus Gylling, DAISY Consortium / Swedish Library of Talking Books and Braille; James Pritchett, Recording For the Blind and Dyslexic; Heinz Zyset and Dorota Pograniczna and Matthias Ragaz, Swiss Library for the Blind and Visually Impaired; Lynn Leith and Barbara Freeze, Canadian National Institute for the Blind; Lars Sonnebo and Thomas Johansson, Swedish Library of Talking Books and Braille; Mark Hakkinen, isSound Corporation; Jan Lindholm and Diana Hiorth, Labyrinten Inc; Harvey Bingham, W3C Web Accessibility Initiative Invited Expert; David Pawson and Stephen King and Keith Gladstone, Royal National Institute for the Blind; Tatsu Nishizawa, Plextor Ltd; Dominic Labbé and Gilles Pepin, VisuAide Inc.; Michael Moodie and Lloyd Rasmussen, National Library Service for the Blind and Physically Handicapped Library of Congress; Tom McCartney and Rej Tanikella, Recording For the Blind and Dyslexic; Jason White, Web Accessibility Initiative; Edmar Schut, Dutch Library for the Visually and Print-handicapped Students and Professionals; Susanne Seidelin and Christian Wallin, Danish National Library for the Blind; Thomas Kalish, Association of Talking Book Libraries of Germany; Brink Kuchenbrod and Chad Berkley, University of Montana; Daniel Dardailler and Philipp Hoschka, World Wide Web Consortium; Peter Toneby, Umeå University.

1. Introduction

1.1 Description

This specification extends and revises the DAISY 2.01 specification. These revisions are are intended to bring this specification more in line with the DAISY 3/NISO DTB specification, and to clarify ambiguities in the DAISY 2.01 specification.

The major revisions made in this version of the specification are:

  • NCC and text content documents use XHTML 1.0
  • NCC and SMIL document metadata has been revised and clarified
  • SMIL document structure requirements have been clarified
  • A master SMIL document structure has been defined
  • Supported audio formats have been defined

The DAISY 2.02 specification is technically backwards compatible with the DAISY 2.0 specification.

1.1.1 Nomenclature

Definition: The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this specification are to be interpreted as described in IETF RFC 2119.

1.2 Relation to other specifications

This specification uses the XHTML 1.0 and SMIL 1.0 specifications defined by the World Wide Web Consortium. Bibliographic and document metadata is based on the Dublin Core Metadata Initiative element set.

1.3 Types of DTB

As specified in the DAISY structure guidelines, the DAISY 2.02 standard supports the following types of DTB (Digital Talking Book).

  1. Full audio with Title element only. This is a DTB without navigable structure. Only the title of the DTB is available as text – the actual content is presented as linear audio only. Direct access to points within the DTB is not possible.
  2. Full audio with NCC only. This is a DTB with structure. The structure is two-dimensional, providing both sequential and hierarchical navigation. In many cases, the structure in this type of Daisy DTB resembles the table of contents of its print source.
  3. Full audio with NCC and partial text: This is a DTB with structure as described above, and some additional text. The additional text components may occur where keyword searching and direct access to the text would be beneficial, e.g., index, glossary, etc.
  4. Full audio and full text: This is a DTB with structure and complete text and audio. The audio and the text are synchronized.
  5. Full text and some audio: This is a DTB with structure, complete text and limited audio. This type of DTB could be used for a dictionary where only pronunciations were provided in audio form.
  6. Text and no audio: This is a DTB containing an NCC and structured electronic text only. No audio is present.

2. Documents and files used in the standard

To comply with the DAISY 2.02 standard, a DTB must contain exactly one NCC.HTML document and one or more SMIL documents. Depending on the type of DTB made, the DTB may also contain one or more audio files, and one or more text content documents (XHTML). Finally, the DTB may also contain an optional Master SMIL document.

The structure of these document and file types, and the DTB functionality they provide, is defined below in sections 2.1 to 2.5.

2.1 The Navigation Control Center (NCC) document

The NCC document contains an index of navigable entry points into the DTB.  In the default case these entry points consist of the elements <h1> through <h6> for headings, and the <span> element for pages. Optionally, blocks (group) of text are also used for navigation by means of using the <div> element.

The NCC also implicitly represents the continuous playback order of all the media objects that make up the DTB. This is sometimes referred to as “the flow” of narration and/or text.

The NCC is not necessarily identical to the table of contents (TOC) of the print source. It will often contain more elements than a print source TOC, that is, the NCC may be an expanded version of the TOC based on the content and structure of the body of the book.

The NCC should be a XHTML 1.0 transitional DTD compliant document. Use of HTML 4.01 is deprecated in this version of the Daisy DTB specification.

The NCC document must be named “NCC.HTML” or “ncc.html”.

2.1.1 The NCC.HTML <head>

The <head> element must contain the following children:

title [exactly one]
As defined in the XHTML 1.0 specification
meta [several]
The DAISY 2.02 meta element set as defined in section 2.1.3
Note – The <head> title only refers to the HTML document itself; it is not considered as a part of the document (DTB) content. No text-audio synchronization occurs on the <head> title.

2.1.2 NCC.HTML metadata – description

The NCC <head> element must contain a set of <meta> children. These have bibliographic as well as technical-descriptive content.

For bibliographic metadata, the DAISY 2.02 specification uses the Dublin Core (DC) Metadata Initiative element set, which is an internationally approved and broadly accepted tool comprised of 15 data categories, and the rules necessary for the description of document resources. Although the DC element set covers a wide range of bibliographic description for digital talking books, there is some vital information that is not adequately covered in those 15 data categories. Additional elements specific to DAISY DTB´s have therefore been developed. These additional elements are designated as “ncc:”-prefixed elements.

The general syntax of the <meta> element is:

<meta name="metaname" content="value of metaname" scheme="scheme for value of metaname" />

The name attribute

The name attribute contains the name for the content of a certain meta statement. In DAISY 2.02 DTB´s there are two categories of metanames identified by the prefixes “dc:” or “ncc:”.

The “dc:” prefix indicates a Dublin Core element label.
The “ncc:” prefix indicates elements that are not included in the Dublin Core data categories and that are specific to DAISY DTB’s. The following element name can be a label for a DAISY-specific element, or a DC element label preceded by the word “source”.  In the latter instance the element is referencing the print source document from which the DAISY DTB has been created.

The content attribute

The content attribute contains a value for the name attribute.

“dc:” prefixed elements contain information about the DAISY DTB itself according to the rules of the Dublin Core Initiative.
“ncc:” prefixed elements contain additional metadata about the DAISY DTB and its print source.

The “dc:” and “ncc:” prefixes should be lower case. However, playback systems must not be case sensitive when reading these attributes.

To accommodate the provision of additional information about the print source, the Dublin Core element labels are used in meta statements with an “ncc:” prefixed metaname that consists of the DC element label preceded by the word “source”.

Please note that there is one exception. Information about the edition of the print source is included by using the metaname “ncc:sourceEdition”. DC does not yet have a solution for the inclusion of data regarding editions.

The scheme attribute

The scheme attribute contains references as to how the value of the content attribute has to be interpreted. Such a reference may consist of a simple syntax model, but normally it is the name of a standard or an authority list. It is not meaningful to use a scheme name that does not refer to a file or a standard. In many cases no scheme is needed.

2.1.3 NCC.HTML metadata – definition

The <meta> element set in the NCC.HTML must be compliant with the following definition list.

dc:contributor
content: name(s) of person(s), organization(s), or service(s) responsible for making contributions to the content of the resource like translators, editors, compilers etc.; not for narrator(s) of the DAISY DTB
occurrence: optional
dc:creator
content: name(s) of author(s) or creator(s) of the intellectual content of the publication
occurrence: mandatory (if a creator is known)
dc:coverage
content: extent or scope of the content of the resource
occurrence: optional
dc:date
content: date for publication of the DAISY DTB
scheme: W3C/ISO8601; recommended syntax: “yyyy-mm-dd”
occurrence: mandatory
dc:description
content: account of content – annotations
occurrence: optional
dc:format
content: code for DAISY DTB format; “Daisy 2.02”
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:format”
dc:identifier
content: identifier of the DAISY publication (unique to the publishing organization or group)
scheme: identifier scheme, if existing
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:identifier”
dc:language
content: language(s) of the content of the publication
schemes: ISO 639 language code optionally followed by a two letter country code as in ISO 3166. For Sweden: “SV” or “SV-SE”, for the United Kingdom: “EN” or “EN-UK” etc.
occurrence: mandatory
dc:publisher
content: publisher of the DAISY DTB.
occurrence: mandatory
dc:relation
content: a reference to a related resource
occurrence: optional
dc:rights
content: Information about rights held in and over the DAISY DTB; description of specific legal issues
occurrence: optional
dc:source
content: a reference to the print source from which the present resource is derived; use with schema ISBN or schemeless.
scheme: ISBN or schemeless
occurrence: optional – recommended
dc:subject
content: the topic of the content of the DAISY DTB; keywords or classification codes
scheme: if existing, “keyword” is default
occurrence: optional – recommended
dc:title
content: title of DTB or publication
occurrence: mandatory
dc:type
content: the nature or genre of the content of the DAISY DTB ; usually taken from an enumerated list
occurrence: optional
ncc:charset
content: the character set in which the files in the DTB file set are written; e.g. ISO 8859-1 etc.
occurrence: mandatory
ncc:depth
content: positive integer indicating depth of structure, 1 to 6 as in h1-h6 XHTML headings
occurrence: optional – recommended
ncc:files
content: positive integer indicating the absolute number of files making up the distribution version of the DAISY DTB. Only files referenced by the DTB shall be included.
occurrence: optional – recommended
ncc:footnotes
content: positive integer or zero indicating the total number of footnotes occuring in the DTB
occurrence: mandatory if footnotes are used; inclusion with content value zero is optional – recommended
ncc:generator
content: name and version of software that generated the NCC document
occurrence: optional
ncc:kByteSize
content: total size in kBytes of DAISY DTB fileset
occurrence: optional
ncc:maxPageNormal
positive integer or zero indicating the content of the highest normal page occuring in the DTB
occurrence: optional – recommended
ncc:multimediaType
content: one of the DAISY DTB categories listed in section 1.3 above: type 1 “audioOnly”; type 2 “audioNcc”; type 3 “audioPartText”; type 4 “audioFullText”; type 5 “textPartAudio”; type 6 “textNcc”. (See also the DAISY structure guidelines)
occurrence: optional – recommended
ncc:narrator
content: name of narrator(s) of the DTB; the person or the name of the synthetic voice which narrated the text of the DTB
occurrence: optional – recommended
ncc:pageFront
content: positive integer or zero indicating the total number of front pages occuring in the DTB
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:page-front”
ncc:pageNormal
content: positive integer or zero indicating the total number of normal pages occuring in the DTB
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:page-normal”
ncc:pageSpecial
content: positive integer or zero indicating the total number of special pages occuring in the DTB
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:page-special”
ncc:prodNotes
content: positive integer or zero indicating the total number of producer’s notes occuring in the DTB
occurrence: mandatory if producer’s notes are used; inclusion with content value zero is optional – recommended
ncc:producer
content: name of organization/production unit generating the DAISY DTB
occurrence: optional
ncc:producedDate
content: date of first generation of DTB
scheme: W3C/ISO8601; recommended syntax: “yyyy-mm-dd”
occurrence: optional
ncc:revision
content: integer describing revision number
occurrence: optional
ncc:revisionDate
content: date associated with ncc:revision
scheme: W3C/ISO8601; recommended syntax: “yyyy-mm-dd”
occurrence: optional
ncc:setInfo
content: k of n ; for the kth medium of a DTB spanned on n distribution media
occurrence: mandatory in multiple volume DTB´s; inclusion in single volume DTB´s is optional – recommended
note: playback systems must also accept elements using the deprecated name “ncc:setinfo”
ncc:sidebars
content: positive integer or zero indicating the total number of sidebars occuring in the DTB
occurrence: mandatory if sidebars are used; inclusion with content value zero is optional – recommended
ncc:sourceDate
content: date of publication of the print source. This will usually be the year of the publication of the print book
scheme: W3C/ISO8601; usually with syntax: “yyyy”
occurrence: optional – recommended
ncc:sourceEdition
content: edition of the print source
occurrence: optional – recommended
ncc:sourcePublisher
content: publisher of print source
occurrence: optional – recommended
ncc:sourceRights
content: information about rights held in and over the print source
occurrence: optional
ncc:sourceTitle
content: the title of the print source; is to be used only if different from dc:title
occurrence: mandatory (if the titles differ)
ncc:tocItems
content: positive integer indicating the number of navigation points in the NCC document
occurrence: mandatory
note: playback systems must also accept elements using the deprecated names “ncc:tocitems” and “ncc:TOCitems”
ncc:totalTime
content: time of the recording
scheme: “hh:mm:ss”
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “ncc:totaltime”
http-equiv
content: a statement that specifies the content type and the character encoding in the document
occurrence: optional

In addition to the above definition list, it is allowed to use arbitrary metadata elements to support producer-specific metadata issues. Such meta elements shall carry a “prod:” prefix and shall be ignored by playback systems.

Note – <meta> elements in NCC.HTML always describe the full DTB. Example: In a multi volume DTB, ncc:kByteSize describes the total size of the DTB fileset, not the size of files contained on the current carrier media. The only NCC.HTML <meta> element that varies depending on multiple volumes is ncc:setInfo.
Note – When content data for <meta> elements has multiple entries (for example dc:creator in a book with several authors), the element should occur multiple times within the DTB <meta> element set. See Appendix A1.2.
Note – For Open eBook™ 1.0 meta data harmonization purposes, the attributes “role” and “file-as” occuring on dc:contributor and dc:creator are regarded as DAISY 2.02 compliant.

2.1.4 Example of NCC.HTML <head>

(All mandatory and some optional elements are included in this example)

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Economics</title>
  <meta http-equiv="Content-type" content='text/html; charset="iso-8859-1"' />
  <meta name="dc:title" content="Economics" />
  <meta name="dc:creator" content="Richard G. Lipsey" />
  <meta name="dc:creator" content="Paul N. Courant" />
  <meta name="dc:creator" content="Douglas D. Purvis" />
  <meta name="dc:creator" content="Peter O. Steiner" />
  <meta name="dc:date" content="2000-09-05" scheme="yyyy-mm-dd" />
  <meta name="dc:format" content="Daisy 2.02" />
  <meta name="dc:identifier" content="DTB00345" />
  <meta name="dc:language" content="EN" scheme="ISO 639" />
  <meta name="dc:publisher" content="TPB" />
  <meta name="dc:source" content="0-065-01022-1" scheme="ISBN" />
  <meta name="dc:subject" content="Qb" />
  <meta name="ncc:sourceDate" content="1993" scheme="yyyy" />
  <meta name="ncc:sourceEdition" content="1" />
  <meta name="ncc:sourcePublisher" content="Harper Collins" />
  <meta name="ncc:charset" content="iso-8859-1" />
  <meta name="ncc:generator" content="LpStudioGen 1.6" />
  <meta name="ncc:narrator" content="Timothy Ocklind" />
  <meta name="ncc:tocItems" content="1024" />
  <meta name="ncc:totalTime" content="91:27:21" scheme="hh:mm:ss" />
  <meta name="ncc:pageNormal" content="881" />
  <meta name="ncc:maxPageNormal" content="881" />
  <meta name="ncc:pageFront" content="27" />
  <meta name="ncc:pageSpecial" content="45" />
  <meta name="ncc:prodNotes" content="0" />
  <meta name="ncc:footnotes" content="0" />
  <meta name="ncc:sidebars" content="0" />
  <meta name="ncc:setInfo" content="1 of 3" />
  <meta name="ncc:depth" content="4" />
  <meta name="ncc:kByteSize" content="1530000" />
  <meta name="ncc:multimediaType" content="audioNCC" />
  <meta name="ncc:files" content="97" />
  <meta name="prod:recLocation" content="Studio 2" />
  <meta name="prod:recEngineer" content="J Klein" />
</head>

2.1.5 The NCC.HTML <body>

The <body> element of a DAISY 2.02 NCC must contain the following children:

h1 [one or several]
As defined in section 2.1.6

The <body> element of a DAISY 2.02 NCC may contain the following children:

h2-h6 [zero or several]
As defined in section 2.1.6
span [zero or several]
As defined in section 2.1.7
div [zero or several]
As defined in section 2.1.8

No other elements than <h1> to <h6>, <span> and <div> shall occur as children of the NCC.HTML <body>.

2.1.6 Headings

Heading references are provided in DAISY 2.02 DTB´s to support navigation to chapters and sections. Headings occurring in the DTB are represented by XHTML heading elements one through six (<h1> to <h6>). The content of the heading element should be the chapter or section name as it appears in the print source.

The general syntax of the heading element is:

<hx class="value" id="value"><a href="smil#fragment">Heading content</a></hx>

The heading element must contain the following attributes:

id
As defined in section 2.1.9
class [for the title heading]
As defined in section 2.1.6.1

The heading element may contain the following attributes:

class [for headings other than the title]
As defined in section 2.1.6.1

The heading element must contain the following child elements:

a
As defined in section 2.1.10

2.1.6.1 Class attribute values on heading elements

Class attributes may be used to provide additional semantic information. Typical values for class attributes occurring on the heading elements are:

title, jacket, front, title-page, copyright-page, acknowledgments, prolog, introduction, dedication, foreword, preface, print-toc, part, chapter, section, sub-section, minor-head, bibliography, glossary, appendix, index, index-category.

The first entry in the <body> of the NCC must be the title section of the DTB. The element used must be a <h1>. The class attribute used for this headings must be “title”.

2.1.6.2 Nesting of headings

As opposed to both HTML 4.01 and XHTML 1.0, the DAISY 2.02 specification requires proper nesting of headings. A level cannot be skipped. For example an <h3> must always be preceded by an <h2> (or another  <h3>) and an <h2> must be preceded by an <h1> (or another <h2>).

2.1.6.3 Examples of proper and improper nesting of headings

Example of proper nesting of headings
...
<h1>The nature of economics</h1>
    <h2>The economic problem</h2>
    <h2>Economics as a social science</h2>
        <h3>The scientific approach</h3>
<h1>An overview of the market economy</h1>
...
Example of improper nesting of headings
...
<h1>Demand, supply and price</h1>
    <h2>Demand</h2>
    <h2>Supply</h2>
            <h4>Quantity supplied</h4>
        <h3>Determination</h3>
<h1>Elasticity</h1>
...

2.1.7 Page numbers

Page references are provided in DAISY 2.02 DTB´s to support navigation to pages by the end users. Pages occurring in the DTB are represented by the <span> element.

The <span> element identifies the beginning of the page. The content of the <span> element is the page number as it appears in the print book.

Note – It is recommended that blank pages which are a part of the numeric page sequence in the book be marked with a <span> element representing the sequential number for that page.

The general syntax of the <span> element is:

<span class="value" id="value"><a href="smil#fragment">span content</a></span>

The <span> element must contain the following elements:

a
As defined in section 2.1.10

The <span> element must contain the following attributes:

id
As defined in section 2.1.9
class
As defined in section 2.1.7.1

2.1.7.1 Valid class attribute values for pages

Values for the class attributes occurring on the <span> element when used for pages are:

page-front
The class attribute “page-front” indicates pages at the front of the book before the page numbering sequence for the body of the book begins.
page-normal
The class attribute “page-normal” indicates pages that have a normal scheme that starts at 1 and continues to the back matter or to the end of the book. It is very important to note that the content of normal page numbers must be the ascii value of a positive whole number. Players will use this positive integer for navigation purposes.
page-special
The class attribute “page-special” indicates pages that are not front matter, that do not follow the traditional sequential numbering system used in many printed publications, or, that are separate and apart from the sequential numbering system used throughout the book. An example of this is compound page numbers which may be composed of alpha and numeric combinations reflecting the number of the part and/or chapter,  the numeric sequence within that part or chapter,  as well as a separator and/or suffix. For example, page ‘1-15b’ could represent section 1, page 15, second inserted page (it would immediately follow page ‘1-15a’ and appear at a point before page ‘1-16’ or ‘2-1’.)”

2.1.8 Blocks (<div>)

Blocks (groups) of text may be used for navigation. For example, paragraphs, list items, or table rows may be identified in the NCC to provide navigation by such structural elements. In the NCC the grouping element <div> is used as a placeholder to point to these blocks. The content of the <div> element is determined by the producer in relation to the navigation that will be required by the end users. If full text is used, the <div> in the NCC can point to any HTML element with a unique id.

The general syntax of the <div> element is:

<div class="value" id="value"> <a href="smil#fragment">content</a></div>

The <div> element must contain the following attributes:

id
As defined in section 2.1.9
class
As defined in section 2.1.8.1

The <div> element must contain the following elements:

a
As defined in section 2.1.10

2.1.8.1 Blocks: valid class attribute values on the <div> element

Values for class attributes occurring on the <div> elements are:

group

2.1.9 The id attribute

Each child of the <body> element in the NCC.HTML used for synchronization must contain an id attribute.

The value of the id attribute must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-“), underscores (“_”), colons (“:”), and periods (“.”).

Note – id attribute values are case sensitive.
Note – The use of colons in id attribute values should be avoided.

2.1.10. The anchor element (<a>)

Each child of the <body> element in the NCC.HTML document must contain an anchor element. The href attribute makes this anchor the source anchor of exactly one link.

The general syntax of the <a> element is:

<a href="smil#fragment">document content</a>

The <a> element must contain the following attributes:

href
As defined in section 2.1.10.1

Document content must always occur between the anchor start and close tags.

2.1.10.1 The href attribute

The href attribute defines the link between the source anchor (current position in the NCC) and the destination anchor (a location within a SMIL document). This is expressed as a URI where a fragment identifier points to the id of a location within the resource, i.e. the SMIL document.

In DAISY 2.02 books, it is required that the destination anchor resides within the SMIL <par> or within the SMIL <text> element. Pointers to other types of elements must not occur.

Use of the <par> element as destination anchor is recommended. If the target is a <text> element, it is highly recommended that that <text> element be the first element within its parent <par>.

All child elements of the NCC.HTML <body> must be synchronization points, i.e. they must contain an <a> element with an href attribute pointing to a destination anchor within a <par> or <text> element of a SMIL file.

2.1.11 Example of NCC.HTML <body>

<body>
<h1 class="title" id="econ_0001"><a href="econ0001.smil#ec1a_0001">Economics by Richard G. Lipsey et al..</a></h1>
<h1 id="econ_0002"><a href="econ0002.smil#ec2a0001">Information about the talking book</a></h1>
<h1 id="econ_0003"><a href="econ0003.smil#ec3a0001">Contents in Brief</a></h1>
<span class="page-front" id="econ_0004"><a href="econ0003.smil#ec3a0002">iv</a></span>
<span class="page-front" id="econ_0005"><a href="econ0003.smil#ec3a0003">v</a></span>
<span class="page-front" id="econ_0006"><a href="econ0003.smil#ec3a0004">vi</a></span>
...
<span class="page-normal" id="econ_0021"><a href="econ0008.smil#ec8a0003">1</a></span>
<h1 class="part" id="econ_0022"><a href="econ0009.smil#ec9a0001">Part 1. The nature of economics</a></h1>
<h2 class="chapter" id="econ_0023"><a href="econ0010.smil#ec100001">1. The economic problem</a></h2>
<span class="page-normal" id="econ_0024"><a href="econ0010.smil#ec100002">2</a></span>
<span class="page-normal" id="econ_0025"><a href="econ0010.smil#ec100003">3</a></span>
<h3 id="econ_0026"><a href="econ0010.smil#ec100004">What is economics?</a></h3>
<h4 id="econ_0027"><a href="econ0010.smil#ec100005">Resources and commodities</a></h4>
<h4 id="econ_0028"><a href="econ0010.smil#ec100006">Scarcity</a></h4>
<h4 id="econ_0029"><a href="econ0010.smil#ec100007">Choice</a></h4>
<span class="page-normal" id="econ_0031"><a href="econ0010.smil#ec100008">4</a></span>
...
<span class="page-special" id="econ_0934"><a href="econ0085.smil#ec850027">G-1</a></span>
<h1 class="glossary" id="econ_0935"><a href="econ0086.smil#ec860001">Glossary</a></h1>
<div id="econ_0936" class="group"><a href="econ0086.smil#ec860002">Glossary item 1</a></div>
<div id="econ_0937" class="group"><a href="econ0086.smil#ec860003">Glossary item 2</a></div>
<div id="econ_0938" class="group"><a href="econ0086.smil#ec860004">Glossary item 3</a></div>
...
<h1 id="econ_0946"><a href="econ0088.smil#ec880001">Ending announcement</a></h1>
</body>

2.1.12 Optional content

Note – The features described in sections 2.1.12 to 2.1.13.2 are optional.

The NCC may include references to elements that can be turned on or off by the end user. The default style for these items should be “on”. Note references, non-essential sidebars, optional producer notes, and page numbers fall into this category. The XHTML <span> element must be used to indicate these items in the NCC <body>.

The <span> element must contain the following attributes:

id
As defined in section 2.1.9
class
As defined in section 2.1.12.1

The <span> element must contain the following elements:

a
As defined in section 2.1.10

2.1.12.1 Optional content: valid class attribute values on the <span> element

Values for class attributes occurring on the <span> element are:

sidebar
For references to sidebars, i.e. additional text that, in the print source, is presented as being separate from the main narrative of the book.
optional-prodnote
For optional producer notes, i.e. commentary from the narrator/producer that is not part of the original printed source material.
noteref
For a footnote, endnote, annotation, or rear note reference pair.
Other valid values
Usage for blocks as defined in section 2.1.8.1

2.1.12.2 Optional content: NCC examples

Sidebar Example
<span class="sidebar" id="econ0047">
  <a href="econ0056.smil#ec560004">Sidebar</a>
</span>
Optional Producer Note Example
<span class="optional-prodnote" id="econ0057">
  <a href="econ0060.smil#ec600004">Producer's Note</a>
</span>
Reference to Notes (Footnotes, Annotations, End Notes, Rear Notes) example
<span class="noteref" id="ncc003">
  <a href="smil001.smil#par002"><sup>1</sup></a>
</span>

2.1.12.3 Optional content: valid system-required attribute values on the SMIL <par> element

The SMIL 1.0 system-required test attribute shall be used to control selective playback of content such as sidebars, footnotes, producer notes, and page numbers. The system-required attribute must occur on <par> elements.

Values for system-required attributes occurring on the <par> element are:

sidebar-on
prodnote-on
footnote-on
pagenumber-on

2.1.12.4 Optional content: SMIL examples

Sidebar example

For the NCC sidebar example above, the following usage of the switch mechanism in the SMIL document shall be used. (The same syntax applies to producer notes and pagenumbers.)

<seq dur="123.45s">
  <!--Par pre sidebar -->
  <par endsync="last" id="ec560003"> 
    <text src="ncc.html#econ0046" />
    <seq>
      <audio src="audio001.mp3" clip-begin="npt=0.000s" clip-end="npt=2.507s" id="phrs_0001" />
      <audio src="audio001.mp3" clip-begin="npt=3.345" clip-end="npt=6.123s" id="phrs_0002" />
    <seq>
  </par>
  <!--Par for sidebar -->
  <par endsync="last" id="ec560004" system-required="sidebar-on">
      <text src="ncc.html#econ0047" />
      <seq>
        <audio src="audio001.mp3" clip-begin="npt=6.123s" clip-end="npt=8.345s" id="phrs_0003" />
        <audio src="audio001.mp3" clip-begin="npt=8.345ss" clip-end="npt=10.567s" id="phrs_0004" />
      <seq>  
  </par>
  <!--Par post sidebar -->
  <par endsync="last" id="ec560005"> 
    <text src="ncc.html#econ0046" />
    <seq>
      <audio src="audio001.mp3" clip-begin="npt=10.567s" clip-end="npt=22.347s" id="phrs_0005" />
      <audio src="audio001.mp3" clip-begin="npt=22.347s" clip-end="npt=26.435s" id="phrs_0006" />
    <seq>
  </par>
</seq>
Footnote example

The footnote SMIL syntax differs from that of sidebars and prodnotes. Here, a nested <seq> is used to contain two <par> elements; the first containing the note reference, and the second containing the note body. The following SMIL syntax corresponds to the NCC footnote example above.

<body>
  <seq dur="123.45s">
    <!--Par pre footnote -->
    <par endsync="last" id="par001"> 
      <text src="ncc.html#ncc001" />
      <seq>
        <audio src="audio001.mp3" clip-begin="npt=0.000s" clip-end="npt=2.507s" id="phrs_0001" />
        <audio src="audio001.mp3" clip-begin="npt=3.507" clip-end="npt=6.507s" id="phrs_0002" />
      <seq>
    </par>
    <!--nested seq begins here-->
    <seq>
      <!--Par for note reference -->  
      <par endsync="last" id="par002"> 
        <text src="ncc.html#ncc003" />
        <seq>
        <audio src="audio001.mp3" clip-begin="npt=6.507s" clip-end="npt=7.507s" id="phrs_0003" />
        </seq>
      </par>
      <!--Par for note body -->
      <par endsync="last" id="par003" system-required="footnote-on"> 
        <text src="ncc.html#ncc003" />
        <seq>
          <audio src="audio009.mp3" clip-begin="npt=7.507s" clip-end="npt=10.507s" id="phrs_0004" />
          <audio src="audio009.mp3" clip-begin="npt=10.507s" clip-end="12.507s" id="phrs_0005" />
        <seq>
      </par>
    <!--nested seq ends here-->
    </seq> 
    <!--Par post footnote>
    <par endsync="last"  id="par004"> 
      <text src="ncc.html#ncc001" />
      <seq>
        <audio src="audio001.mp3" clip-begin="npt=12.507s" clip-end="npt=14.507s" id="phrs_0006 />
        <audio src="audio001.mp3" clip-begin="npt=14.507s" clip-end="npt=18.507s"" id="phrs_0007" />
      <seq>
    </par>
  </seq>
</body>

2.1.13 Resource file definition using CSS

Playback systems, both hardware devices and software, require a mechanism to provide audio descriptions of the structural elements of a book. Though some playback systems may support synthetic speech presentation of textual information, pre-recorded audio announcements are preferred as they are most natural and can be supported by all devices. Pre-recorded messages allow a playback device to correctly announce elements such as “chapter”, “section” or any other class name.

A resource file can be used to achieve this. Resources in this case are individual audio files which are associated with structural elements. In traditional software development models, a single resource file may point to or contain multiple resource definitions. Presently, there are no existing standards for defining resource files for use with this particular application.

Audio Style Sheets are used for defining this resource information. Audio Style Sheets are part of the W3C´s Cascading Style Sheet recommendation. In addition to providing resource definitions to be used by playback systems, Audio Cascading Style Sheets (ACSS) may be used for general audio styling during playback of DAISY 2.02 DTB´s.

Audio Style Sheets provide the necessary definition to associate an audio cue with a structural element. The structural element may be an element name (such as h1) or a class name (such as chapter). The playback system will interpret the Audio Style Sheet and use this information to play out the elements to the end user. Examples include position (“where am I” announcements) and structural information.

Generalized audio styling may be supported by playback systems to implement “earcons” and to format textual content for presentation with speech synthesis. This particular utilization of audio styles is not formally defined or required in DAISY 2.02.

2.1.13.1 Example of ACSS used as a resource file

This is an example of a file which associates an audio file with a document element (h1) and with two class names (“chapter” and “subhead”).

h1 {cue-before: uri("resources/en-h1.wav")}
.chapter {cue-before: uri("resources/en-chapter.mp3")}
.subhead {cue-before: uri("resources/en-subhead.mp3")}

The uri value points to the file which contains the audio to be associated with the element or class name. The location of the audio resource files is left to the producer. In this example, the audio resource files are stored in a “resources” sub-directory.

2.1.13.2 Associating the ACSS file with a DTB

The standard mechanism for associating a Style Sheet with an XHTML document is through the <link> element. The format of the <link> element is:

<link rel="stylesheet" href="en-resource.css" media="aural" title="daisy Resource File">

The style sheet link reference should be contained in the NCC.HTML file. Individual XHTML source files may also include additional style sheet references for visual and audio presentation. These must be specified in the documents themselves, using the XHTML style sheet <link> element, and reference the media attribute value appropriate to the stylesheet.

2.2 The text content document (XHTML)

The NCC.HTML document may be used as the carrier of text content if the text content is limited to headings, pages, and simple references to other content,i.e. content conforming to DTB types 1 and 2. The use of additional text content documents is required if there is extensive text content in the DTB, i.e. content conforming to DTB types 3 to 6.

Additional text content documents must be XHTML 1.0 compliant documents. Use of HTML 4.01 is deprecated in this version of the Daisy DTB specification.

2.2.1 Text content document <head>

The <head> element of a text content document must contain the following children:

title [exactly one]
As defined in the XHTML 1.0 specification

The <head> element of a text content document may contain the following children:

meta [zero or several]
The DAISY 2.02 meta element set as defined in section 2.1.3

2.2.1.1 Text content document metadata – definition

The <meta> element set in text content documents must be compliant with the following definition list.

dc:identifier
content: identifier of the DAISY publication (unique to the publishing organization or group)
scheme: identifier scheme, if existing
occurrence: optional – recommended
note: playback systems must also accept elements using the deprecated name “ncc:identifier”
Other <meta> elements
Use of other bibliographic and technical-descriptive meta elements defined in section 2.1.3 is optional.

2.2.2 Text content document <body> – recommendation

In the <body> of text content documents, the use of logical, simple use of structural block elements such as paragraphs, lists, tables, preformatted text, etc. is recommended. Use of tables to format text is discouraged. Use of frames and other graphical formatting features are discouraged.

2.2.3 Multiple XHTML text content documents

Multiple XHTML files may be used to carry the text content. This may more often be the case with DTB’s which are full text productions.

To correctly identify the order of the XHTML files, the XHTML link element may be used.

2.2.3.1 Example of link data

<head>
...
  <link rel="start" href="first-file.html">
  <link rel="previous" href="previous-file.html">
  <link rel="next" href="next-file.html">
...
</head>
Note – The starting file would have no link element containing a rel attribute with content “previous”, and the last file would have no link element containing a rel attribute with content “next”.

2.3 The SMIL document

The SMIL document of a DAISY DTB is a SMIL 1.0 compliant document that provides the text-audio synchronization functionality for all or defined segments of the DTB content. In text-audio synchronized DAISY DTB´s, one SMIL document is always in itself a continuous sequence, that contains one or several parallel time groupings or synchronization units referring to text and/or audio media objects.

The following describes the document structure convention for implementation of SMIL 1.0 in DAISY 2.02 DTB´s.

2.3.1 The SMIL <head>

The <head> element must contain the following children:

meta [several]
As defined in section 2.3.2.1

The <head> element may contain the following children:

layout [exactly one]
As defined in section 2.3.2.2

2.3.1.1 SMIL <head> elements – description

The syntax of <meta> elements used in the SMIL <head> corresponds to those used in NCC.HTML – see section 2.1.2.

Additionally, the SMIL <head> may contain a <layout> element that determines how elements in the document´s <body> are positioned on an abstract rendering surface (visual or acoustic).

2.3.2 SMIL <head> elements – definition

2.3.2.1 <meta> elements

ncc:generator
content: name and version of software that generated the SMIL document
occurrence: optional
dc:format
content: code for DAISY book format; “Daisy 2.02”
occurrence: mandatory
note: playback systems must also accept elements using the deprecated name “format”
dc:identifier
content: identifier of the DAISY publication (unique to the publishing organization)
scheme: identifier scheme, if existing
occurrence: optional – recommended
dc:title
Content: title of book or publication
Occurrence: optional
title
Content: title of SMIL section of book
Occurrence: optional
ncc:totalElapsedTime
content: Sum of SMIL time prior to the onset of the current SMIL document
scheme: SMIL clock; recommended syntax: “hh:mm:ss”
occurrence: optional – recommended
note: playback systems must also accept elements using the deprecated name “total-elapsed-time”
ncc:timeInThisSmil
content: Sum of SMIL time in current SMIL document
scheme: SMIL clock; recommended syntax: “hh:mm:ss”
occurrence: optional – recommended
note: playback systems must also accept elements using the deprecated name “time-in-this-smil”

2.3.2.2 The <layout> element

The <layout> element defines how the <text> elements in the document’s <body> are positioned when rendered. If a document contains no layout element, the positioning of the body elements is implementation-dependent.

The general syntax of the <layout> element is:

<layout>
  <region id="value" />
</layout>

The <layout> element must contain the following children:

region [one or several]
As defined in section 2.3.2.3

2.3.2.3 The <region> element

The <region> element controls the position, size and scaling of <text> elements. A region element is applied to a <text> element by setting the region attribute of the positionable element to the id value of the region.

Attributes occurring on the <region> element are:

id
content: an XML identifier
occurrence: mandatory
Other attributes
Other SMIL 1.0 region attributes may be used; although this goes beyond the scope of DAISY 2.02 compliance.

2.3.3 The SMIL <body>

The <body> element of a DAISY 2.02 SMIL must contain the following children:

seq [exactly one]
As defined in section 2.3.3.1

2.3.3.1 The <seq> element

The <seq> element is a time container whose children form a temporal sequence. In the following definition lists, the <seq> element that occurs as a child of <body> is referred to as the “main” <seq>, and <seq> elements that are nested are referred to as “nested”.

The main <seq> element of a DAISY 2.02 SMIL must contain the following children:

par [one or several]
As defined in section 2.3.3.3

The main <seq> element of a DAISY 2.02 SMIL may contain the following children:

seq [one or several]
Used only with note references

Nested <seq> elements of a DAISY 2.02 SMIL must contain one of the following children:

audio [one or several]
As defined in section 2.3.3.7
par [exactly two]
As defined in section 2.3.3.3
Used only with note references
Other children
Other SMIL 1.0 media objects may be children of <seq>; although this goes beyond the scope of DAISY 2.02 compliance.

A nested <seq> element must not have children of different types.

2.3.3.2 Attributes on the <seq> element

Attributes occurring on the <seq> element are

dur
content: SMIL clock value defining the explicit duration of the <seq>.
scheme: SMIL timecount. Required syntax: “ss.s”.
occurrence: required for the main <seq>.
id
content: an XML identifier
occurrence: optional

2.3.3.3 The <par> element

The <par> element is a time container whose children do not form a temporal sequence; as opposed to the <seq> element they instead occur simultaneously. In other words, media objects within a <par> element are synchronized with each other.

The <par> element of a DAISY 2.02 SMIL must contain the following children:

text [exactly one]
As defined in section 2.3.3.5

The <par> element of a DAISY 2.02 SMIL may contain the following children:

audio [exactly one]
As defined in section 2.3.3.7
seq [one or several]
As defined in section 2.3.3.1
Other children
Other SMIL 1.0 media objects may be children of <par>; although this goes beyond the scope of DAISY 2.02 compliance.

2.3.3.4 Attributes on the <par> element

Attributes occurring on the <par> element are

endsync
content: default value is “last”, defining that the implicit duration of the par element is the maximum of the desired duration of its children
occurrence: required
system-required
content: values defined in section 2.1.12.3
occurrence: required if the optional content feature is used
id
content: an XML identifier
occurrence: optional – recommended

2.3.3.5 The <text> element

The <text> element is a media object without an intrinsic duration. In the case of DAISY DTB´s types 1 to 5, its duration will be determined by the audio with which it is synchronized.

2.3.3.6 Attributes on the <text> element

Attributes occurring on the <text> element are

src
content: media object URI with fragment identifier
occurrence: required
id
content: an XML identifier
occurrence: required
region
content: an idref matching one of the document’s <region> elements (see 2.3.2.3)
occurrence: required if multiple regions are being used

The value of the src attribute is the URI of the media object. In this case it is a pointer to the currently synchronized XHTML document content – a heading, a page number, block text etc.

If any <text> element src attribute refers to the file NCC.HTML, then no other text element within the same DTB should contain a src attribute which refers to a file other than the NCC.HTML file.

Note – src as a text element attribute expresses a subposition within a document (a fragment identifier) by pointing to an id attribute.

2.3.3.7 The <audio> element

The <audio> element is a media object with an intrinsic duration.

2.3.3.8 Attributes on the <audio> element

Attributes occurring on the <audio> element are

src
content: media object URI with fragment identifier
occurrence: required
id
content: XML identifier
occurrence: required
clip-begin
content: SMIL clock value
scheme: SMIL timecount. Required syntax: “npt=ss.s”.
occurrence: required if sub-positions are used
clip-end
content: SMIL clock value
scheme: SMIL timecount. Required syntax: “npt=ss.s”.
occurrence: required if sub-positions are used

The value of the src attribute is the URI of the media object. In this case it is a pointer to the file containing the currently synchronized audio. If the referenced audio object is not to be played as a whole, subpositions are defined by the attributes clip-begin and clip-end, specifying the beginning and the end of the sub-clip. If several sub-positions occur sequentially they are placed within a seq element.

The values of the clip-begin and clip-end attributes must be a metric specifier followed by a clock value. Of the metric specifiers allowed by the SMIL 1.0 specification, DAISY DTB´s must use “Normal Play Time”. The metric specifier is “npt”, and the clock value must be expressed in legal SMIL timecount values, using the default SMIL 1 timecount (seconds). It is highly recommended to specify fractions of seconds in millisecond resolution.

A <par> must never contain several media objects of the same type – for example, not more than one <text> and one <audio> reference (unless the media objects are contained within a nested <seq>).

Note – All referenced media objects must carry an id attribute.

2.3.4 Example of SMIL

The first <par> shows an example of where an entire audio file is to be rendered. The second <par> shows audio divided into segments (sub-positions) and contained within a <seq>.

<!DOCTYPE SMIL PUBLIC "-//W3C//DTD SMIL 1.0//EN" "http://www.w3.org/TR/REC-SMIL/SMIL10.dtd">
<smil>
  <head>
    <meta name="ncc:generator" content="LpStudioGen v1.6" />
    <meta name="dc:identifier" content="DTB00345" />
    <meta name="dc:format" content="Daisy 2.02" />
    <meta name="dc:title" content="Economics" />
    <meta name="title" content="13. Monopoly" />
    <meta name="ncc:totalElapsedTime" content="14:04:48" />
    <meta name="ncc:timeInThisSmil" content="0:02:38" />
    <layout>
        <region id="txtView" />
    </layout>
  </head>
  <body>
    <seq dur="158.485s">
      <par endsync="last" id="ec79_0002">
        <text src="ncc.html#econ_0346" id="ec79_0003" />
        <audio src="econ25000c.mp3 id="ec79_0004" />
      </par>
      <par endsync="last" id="ec79_0005">
        <text src="ncc.html#econ_0348" id="ec79_0006" />
        <seq id="ec79_0007">
            <audio src="econ25000d.mp3" clip-begin="npt=72.200s" clip-end="npt=74.659s" id="phrs_0011" />
            <audio src="econ25000d.mp3" clip-begin="npt=74.659s" clip-end="npt=81.269s" id="phrs_0012" />
            <audio src="econ25000d.mp3" clip-begin="npt=81.269s" clip-end="npt=91.691s" id="phrs_0013" />
            <audio src="econ25000d.mp3" clip-begin="npt=91.691s" clip-end="npt=95.477s" id="phrs_0014" />
            <audio src="econ25000d.mp3" clip-begin="npt=95.477s" clip-end="npt=110.575s" id="phrs_0015" />
            <audio src="econ25000d.mp3" clip-begin="npt=110.575s" clip-end="npt=115.777s" id="phrs_0016" />
            <audio src="econ25000d.mp3" clip-begin="npt=115.777s" clip-end="npt=119.980s" id="phrs_0017" />
            <audio src="econ25000d.mp3" clip-begin="npt=119.980s" clip-end="npt=127.816s" id="phrs_0018" />
            <audio src="econ25000d.mp3" clip-begin="npt=127.816s" clip-end="npt=135.288s" id="phrs_0019" />
            <audio src="econ25000d.mp3" clip-begin="npt=135.288s" clip-end="npt=141.507s" id="phrs_0020" />
            <audio src="econ25000d.mp3" clip-begin="npt=141.507s" clip-end="npt=158.485s" id="phrs_0021" />
        </seq>
      </par>
    </seq>
  </body>
</smil>

2.3.4.1 The NCC – SMIL – Audio relationships

The first <text> element in the first <par> of each SMIL document must refer to a heading element (h1 through h6). In other words, each SMIL document must begin with providing synchronization for a HTML heading. It is recommended to begin with h1 headings. Other than this, there is no required relationship between text structure and SMIL.

There is no required relationship between audio files and SMIL documents. One SMIL document may point to several audio files (at seq and at clip level), or to non-continuous segments of an audio file.

This is an allowed SMIL <seq> segment series:

     ...
     <audio src="econ0001.mp3" clip-begin="npt=0.000s" clip-end="npt=4.659s" id="phrs_0001" />
     <audio src="econ0002.mp3" clip-begin="npt=74.659s" clip-end="npt=81.269s" id="phrs_0002" />
     <audio src="econ0001.mp3" clip-begin="npt=4.659s" clip-end="npt=6.691s" id="phrs_0003" />
     <audio src="econ0001.mp3" clip-begin="npt=6.691s" clip-end="npt=8.477s" id="phrs_0004" />
     ...

This is also an allowed SMIL <seq> segment series:

     ...
     <audio src="econ0001.mp3" clip-begin="npt=0.000s" clip-end="npt=4.659s" id="phrs_0001" />
     <audio src="econ0001.mp3" clip-begin="npt=74.659s" clip-end="npt=81.269s" id="phrs_0002" />
     <audio src="econ0001.mp3" clip-begin="npt=4.659s" clip-end="npt=6.691s" id="phrs_0003" />
     <audio src="econ0001.mp3" clip-begin="npt=6.691s" clip-end="npt=8.477s" id="phrs_0004" />
     ...

2.3.5 The NCC-SMIL relation: typical playback system behavior

A playback system uses the information in the NCC as entry points to the media objects to be rendered. The URI within synchronized NCC elements points to a fragment (id of a media object) within the SMIL document.

Rendering continues until the last object in the current SMIL document has been fully rendered. After that the playback system returns to a higher level of control hierarchy (i.e. NCC) to find an URI pointing to the next SMIL object to render.

2.3.6 The SMIL file extension

All SMIL files must have the extension “.smil” or the extension “.SMIL”.

Note – When writing a CD-ROM the SMIL file extensions may be truncated to an invalid “.smi” extension. This and other path and file names can be affected by the file system of the CD-ROM selected. A distributor of DAISY DTB´s on CD-ROM must be certain that the file system selected is compatible with the characters used in the production process. See section 3.4.

2.3.7 SMIL filenames

In SMIL filenames, it is highly recommended to use only the letters ([A-Za-z]), digits ([0-9]), hyphens (“-“), and underscores (“_”).

2.4 The Master SMIL document

The Master SMIL document is an optional SMIL 1.0 compliant document consisting of a list of the DTB component SMIL documents in playback order.

To provide easy distinguishability from the other SMIL documents in the DTB, the Master SMIL document must be named “master.smil” or “MASTER.SMIL”.

2.4.1 The Master SMIL <head>

The <head> element must contain the following children:

meta [several]
As defined in section 2.4.2

The <head> element may contain the following children:

layout [exactly one]
As defined in section 2.3.2.2

2.4.2 Master SMIL metadata – definition

dc:title
content: title of DTB or publication
occurrence: mandatory
dc:identifier
content: identifier of the DAISY publication (unique to the publishing organization or group)
scheme: identifier scheme, if existing
occurrence: mandatory
dc:format
content: code for Daisy DTB format; “Daisy 2.02”
occurrence: mandatory
ncc:generator
content: name and version of software that generated the master SMIL document
occurrence: optional
ncc:timeInThisSmil
content: Sum of SMIL time in the master SMIL document
scheme: SMIL clock; recommended syntax: “hh:mm:ss”
occurrence: optional – recommended

2.4.3 The Master SMIL <body>

The <body> element of a DAISY 2.02 Master SMIL must contain the following children:

ref [one or several]

2.4.3.1 Attributes on the <ref> element

Attributes occuring on the <ref> element are:

title
content: the textual content of the first <text> element in the referenced SMIL document – presumably a heading.
occurrence: optional – recommended
src
content: a textual reference to the physical name of the referenced SMIL document
occurrence: mandatory
id
content: an XML identifer
occurrence: mandatory

2.4.4 Example of Master SMIL

<!DOCTYPE SMIL PUBLIC "-//W3C//DTD SMIL 1.0//EN" "http://www.w3.org/TR/REC-SMIL/SMIL10.dtd"> 
<smil> 
  <head> 
    <meta name="dc:title" content="Economics" /> 
    <meta name="dc:identifier" content="DTB00345" /> 
    <meta name="dc:format" content="Daisy 2.02" /> 
    <meta name="ncc:generator" content="LpStudioGen 1.6" /> 
    <meta name="ncc:timeInThisSmil" content="91:27:21" />
    <layout>            
      <region id="txtView" />
    </layout>
  </head> 
  <body> 
    <ref title="Economics by Richard G. Lipsey et.al." src="econ0001.smil" id="lpID_0001" /> 
    <ref title="Information about the talking book" src="econ0002.smil" id="lpID_0002" /> 
    <ref title="Contents in brief" src="econ0003.smil" id="lpID_0003" /> 
    ...
    <ref title="Part 1. The nature of economics" src="econ0009.smil" id="lpID_0007" /> 
    <ref title="1. The economic problem" src="econ0010.smil" id="lpID_0008" /> 
    <ref title="2. Economics as a social science" src="econ0011.smil" id="lpID_0009" /> 
    <ref title="3. An overview of the market economy" src="econ0012.smil" id="lpID_0010" /> 
    ...
    <ref title="Ending announcement" src="econ0088.smil" id="lpID_0095" /> 
  </body>
</smil> 
Note – the Master SMIL is included for future interoperability reasons. It may also be used to give generic SMIL players access to the content of the DTB.

2.5 Audio files and formats

2.5.1 Supported audio formats

2.5.1.1. PCM

The PCM file must use the Microsoft RIFF WAVE file format with a header indicating PCM as its format tag. The PCM file must use the file extension “.wav”.

2.5.1.2. MPEG Audio

The MPEG file must use header and file structure as defined by either ISO/MPEG or Microsoft RIFF WAVE. The following subformats of MPEG Audio are supported: MPEG-1 Layer 2; MPEG-1 Layer 3; MPEG-2 Layer 2; MPEG-2 Layer 3. If the ISO/MPEG file format is used, the file extension should be “.mp2” or “.mp3” respectively.

If the Microsoft RIFF WAVE file format is used, the file extension should be “.wav”.

Use of the ISO/MPEG file format and its extensions is recommended.

2.5.1.3. ADPCM2

The ADPCM2 file must use the file extension “.wav”.

Note – The ADPCM2 format, used to encode DAISY DTB´s in, for example, the Sigtuna 2 production tool, is proprietary. The header of the ADPCM2 file format does not fully comply with the RIFF WAVE specification, thus standard multimedia tools will not be able to render these files correctly.

2.5.2. List of supported audio file format parameters

PCM
Bitdepth: 8-24
Sampling frequencies: all
No of channels: 1 or 2 (mono or stereo)
Note – When using PCM, 16 bits per sample and sampling frequencies of 44.1, 22.05 or 11.025 are recommended, as some audio playback systems may not be able to render other variations correctly.
ADPCM2
Bitdepth: 4
Sampling frequencies: all
No of channels: 1 (mono)
MPEG-1/MPEG-2, Layer 2/3
Bitrates: all
Sampling frequencies: all
No of channels 1 or 2 (mono or stereo)
Note – Some MP3 encoders offer a VBR (Variable Bit Rate encoding) feature. As some audio playback systems may not be able to decode VBR correctly it is not recommended for use with DAISY DTB’s.

2.5.3 Audio filenames

In audio filenames, it is highly recommended to use only the letters ([A-Za-z]), digits ([0-9]), hyphens (“-“), and underscores (“_”).

3. DTB distribution issues

3.1 Single volume DTB

The NCC.HTML should be placed in the root of the carrier media, together with SMIL and media (audio) files. This is the default case.

There are however optional exceptions to this case, and although they are allowed by the specification, producers should use them with caution since not all playback devices may be able to handle the non-default cases correctly.

  1. The NCC.HTML and its associated files may exist within a directory structure.
  2. The NCC.HTML and SMIL documents may include relative URI:s. In other words, the sum fileset of a DAISY DTB does not have to exist in one unified location.

For example, a NCC.HTML placed in the root of a media may have a heading element that looks like this:

<h1 id="econ0128"><a href="./subfolder1/econ0065.smil#ec650001">Chapter 1</a></h1>

and a corresponding SMIL section could look like this:

	...
        <par endsync="last">
          <text src="../ncc.html#econ00128" id="ec650001" />
          <seq>
            <audio src="./subfolder2/econ0034.wav" clip-begin=... />
            <audio src="./subfolder3/econ0035.wav" clip-begin=... />
	...

To achieve DAISY 2.02 compliance, playback devices are only required to support playback of DTB´s that conform to the default case.

3.2 Multiple volume DTB

If a DAISY DTB, due to its size, has to be placed on several (two or more) carrier media, the following method must be used.

Each carrier media must contain a full NCC document, with the following additions:

  1. In the <head> element of the NCC.HTML document, a <meta> child is introduced that identifies the current volume of the set. In the NCC.HTML on the first media of a DTB distributed on three media, this element would read
    <meta name="ncc:setInfo" content="1 of 3" />
    

    Where the content “1 of 3”, “2 of 3”, or “3 of 3” denotes the order of the media.

Note – The ncc:setInfo element is required for multiple volume DTB´s only. Single volume DTB´s are defined by the absence of this element.
  1. Each carrier media must, as its first navigable entry, contain the title section of the book
  2. In those sections of the NCC document copy that point to non-local audio data, a SMIL file and a corresponding sound file is referenced containing the message “Please insert disc x”, where x represents the number of the media in the set.
  3. There must be a rel attribute added to the anchor elements the NCC headings pointing to non-local information. The valid values of the rel attribute identifies the number of the media. Valid rel attributes are “1 of 3”, “2 of 3”, “3 of 3”, etc.

3.2.1 Multiple volume DTB: end user implications

A DTB of fifteen chapters is spanned over three media. Five chapters are contained on each medium. The end user, currently reading chapter 5, points to the beginning of chapter 6. The audio prompt “please insert disc two” is played. The end user inserts another media.

If the inserted media is the correct one, playback continues exactly at the beginning of chapter 6.

If the inserted media contains the right DTB but the wrong media number, the audio prompt “please insert disc 2” is played again.

If the inserted media contains another DTB a general error message will be played, followed by the title information of the new DTB.

The end user continues to insert other media until the correct one is found. At this point manual browsing to chapter 6 might be required, although several playback systems will be able to move automatically to the beginning of chapter 6.

If the end user inserts media 2 of a set without previously having read media 1, the title information audio would be read, after which playback should commence at the first element that does not contain the rel attribute, that is, the first locally playable section of the DTB.

3.2.2. Multiple volume DTB NCC and SMIL examples

Example of multiple volume DTB NCC

The following example shows the second disc in a set of three.

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    ... other head elements ...
    <meta name="setInfo" content="2 of 3" />
  </head>
  <body>
    <h1 id="ec001" class="title"> <a href=title.smil#info0001>Title section</a></h1>
    ...
    <h1 id="ec006"><a href=ch01.smil#ec01 rel="1 of 3">Chapter 1</a></h1>
    <h1 id="ec007"><a href=ch02.smil#ec01 rel="1 of 3">Chapter 2</a></h1>
    <h1 id="ec008"><a href=ch03.smil#ec01 rel="1 of 3">Chapter 3</a></h1>
    <h1 id="ec009"><a href=ch04.smil#ec01 rel="1 of 3">Chapter 4</a></h1>
    <h1 id="ec010"><a href=ch05.smil#ec01 rel="1 of 3">Chapter 5</a></h1>
    <h1 id="ec011"><a href=ch06.smil#ec01>Chapter 6</a></h1>
    <h1 id="ec012"><a href=ch07.smil#ec01>Chapter 7</a></h1>
    <h1 id="ec013"><a href=ch08.smil#ec01>Chapter 8</a></h1>
    <h1 id="ec014"><a href=ch09.smil#ec01>Chapter 9</a></h1>
    <h1 id="ec015"><a href=ch10.smil#ec01>Chapter 10</a></h1>
    <h1 id="ec016"><a href=ch11.smil#ec01 rel="3 of 3">Chapter 11</a></h1>
    <h1 id="ec017"><a href=ch12.smil#ec01 rel="3 of 3">Chapter 12</a></h1>
    <h1 id="ec018"><a href=ch13.smil#ec01 rel="3 of 3">Chapter 13</a></h1>
    <h1 id="ec019"><a href=ch14.smil#ec01 rel="3 of 3">Chapter 14</a></h1>
    <h1 id="ec020"><a href=ch15.smil#ec01 rel="3 of 3">Chapter 15</a></h1>
  </body>
</html>

Example of multiple volume DTB SMIL

The following example corresponds to “ch01.smil” in the above NCC example

<!DOCTYPE SMIL PUBLIC "-//W3C//DTD SMIL 1.0//EN" "http://www.w3.org/TR/REC-SMIL/SMIL10.dtd">
<smil>
  <head>
    ...other head elements...
    <layout>
      <region id="txtView" />
    </layout>
  </head>

  <body>
    <seq dur="4.024s">
      <par endsync="last">
        <text src="ncc.html#ec001" id="info0001" />
        <audio src="please_insert_cd_1.wav" clip-begin="npt=0.000s" clip-end="npt=1.456s" id="info0004" />
      </par>
    </seq>
  </body>
</smil>

3.3 Multiple DTB volume

If more than one DAISY DTB is provided on the same carrier media, the following method must be used.

Each DTB must be stored in a separate folder (directory). In the root of the carrier media a file called discinfo.html containing links to all DTB´s on the media is created. This document must be structured as shown in section 3.3.1.

3.3.1 Example of discinfo document

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>CD Information</title>
    <meta http-equiv="Content-type" content='text/html; charset="iso-8859-1"' />
  </head>
  <body>
    <a href="./book1/ncc.html">Economics</a>
    <a href="./book2/ncc.html">Ecology</a>
  </body>
</html>

3.3.2 Multiple DTB volume: typical playback system behavior

A media containing three DAISY DTB´s is inserted into a playback system. Via GUI and/or AUI the end user is informed that several DTB´s exists on the medium. Following this the title section of each DTB is read, preceded by a number that denotes “bookshelf order”. The end user selects which DTB to read by choosing the number for that DTB.

3.4 Distribution/storage media formats

Use of a file system that allows long file names (more than 8+3 characters) is required.

As for CD-ROM, use of the “Joliet” extension to ISO 9660 is recommended. The “Romeo” file system shall not be used.

Note – For more information on these and other CD-ROM formats please see www.ping.be

Appendix 1. Changes

A1.1 Changes between September 22 1998 DAISY 2.0 and September 21 1999 DAISY 2.01 versions

  • The end user may turn on or off the reading of page numbers, if this is supported in the player. When page numbers are in the NCC direct navigation is already supported.
  • User control of note references, sidebars, and optional producer notes. These items may now be turned on or off by the end user, if the player supports this function. Footnotes, annotations, endnotes, and rear notes, along with non-essential producer notes, and floating sidebars can be turned on or off by the end user. These items may be placed in the NCC to make it easy for the end user to navigate to items they may have previously turned off.
  • Resource list – This allows players to take advantage of the class attribute on structure elements. The player announcements may use these resources to tailor the description of items in the NCC.

A1.2 Changes between September 21 1999 DAISY 2.01 and February 28 2001 DAISY 2.02 versions

  • Use of HTML 4 formally deprecated
  • Revision and clarification of NCC.HTML metadata set
  • Allowed ncc <body> children restricted to <h1> to <h6>, <span> and <div>
  • Definition of SMIL metadata set
  • Definition of SMIL <head> and <body>
  • Definition of Master SMIL
  • Definition of supported audio formats
  • Features included in the 2.01 extension of 2.0 declared optional
  • Changes in NCC and SMIL syntax for optional content (footnotes, sidebars, etc.)
  • Use of <head> <link> element (when using multiple text content documents) declared optional

Appendix 2. Tabular presentations of metadata sets in DAISY 2.02 documents

A2.1 Tabular presentation of NCC.HTML metadata set

Prefix Label Scheme Occurrence
ncc charset mandatory
dc contributor optional*
dc coverage optional*
dc creator mandatory (if a creator is known)*
dc date ISO 8601 mandatory
ncc depth optional – recommended
dc description optional*
ncc files optional – recommended
ncc footnotes mandatory if footnotes are used
dc format mandatory
ncc generator optional
http-equiv optional
dc identifier mandatory
ncc kByteSize optional
dc language ISO 639-1/ISO 3166 mandatory*
ncc maxPageNormal optional – recommended
ncc multimediaType optional – recommended
ncc narrator optional – recommended*
ncc pageFront mandatory
ncc pageNormal mandatory
ncc pageSpecial mandatory
ncc prodNotes mandatory if producers´ notes are used
ncc producedDate ISO 8601 optional
ncc producer optional
dc publisher mandatory
dc relation optional*
ncc revision optional
ncc revisionDate ISO 8601 optional
dc rights optional*
ncc setInfo k of n mandatory in multiple volume DTB´s
ncc sidebars mandatory if sidebars are used
dc source ISBN optional – recommended
ncc sourceDate ISO 8601 optional – recommended
ncc sourceEdition optional – recommended
ncc sourcePublisher optional – recommended
ncc sourceRights optional
ncc sourceTitle optional (mandatory if the titles differ)
dc subject optional – recommended*
dc title mandatory
ncc tocItems mandatory
ncc totalTime hh:mm:ss mandatory
dc type optional*

* = this meta element may occur multiple times within the NCC meta element set.

A2.2 Tabular presentation of SMIL metadata set

Prefix Label Scheme Occurrence
dc format mandatory
ncc generator optional
dc identifier optional – recommended
ncc timeInThisSmil SMIL clock optional – recommended
title optional
dc title optional
ncc totalElapsedTime SMIL clock optional – recommended

A2.3 Tabular presentation of Master SMIL metadata set

dc format mandatory
ncc generator optional
dc identifier mandatory
ncc timeInThisSmil SMIL clock optional – recommended
dc title mandatory

Appendix 3. Interoperability and DAISY Certification

The XHTML and SMIL files can all be validated using standard XML validation tools. The NCC, and the content of the book in XHTML can be validated against the XHTML 1.0 transitional specification. The SMIL files can be validated with a XML parser against the SMIL 1.0 specification.

In addition to these standard tests by validation tools, several test books will be made available. Player manufacturers that wish to meet the DAISY 2.02 specification should use these specifications and the test books to perform internal testing. If all of the books provided in this test suite can be played by the player, then the player manufacturer may request to have their player certified as DAISY 2.02 compliant.

Manufacturers of authoring tools must be able to meet these specifications in their authoring tool. If their authoring tool creates content which meets these specifications and which performs like the test suite materials, the developer may request to have their authoring tool certified as DAISY 2.02 compliant.

To receive DAISY Consortium certification of their claims, the player or authoring tool must be submitted to the DAISY Consortium for performance testing.