1. Overview

## Content Structure

The main structural elements are Device , Package, Folder, File, and Block.

All of these elements are very similar in that they each are a container for:

• Segment of audio content: a group of files, a file, or a segment within a file
• Actions that occur at the beginning and end of the segment of audio content
• Actions that occur when buttons are pressed
• Child container elements.

Additionally each of these container elements can serve as a:

• An arbitrary content class, such as “Chapter”, “Page”, etc…
Container Element Description Additional Attributes Child Containers
Device Contains the default button event handlers. Only applies to the soft player. Package
Package The root element for deployed sets of audio content. Also used to scope container ids and flags Folder, File
Folder A grouping of files or child folders - Folder, File
File A single audio file Reference to file Block
Block A segment within an audio file. Start offset and duration Block

At its simplest, containers just identify the files in a distribution package:

(1)
\begin{align} Package \left\{ \begin{array}{ c c } File \\ File \\ File \end{array} \end{align}

More complex container structures support features like special break points, navigation targets, or context-specific button actions:

(2)
\begin{align} Package \left\{ \begin{array}{ c c } Folder \left\{ \begin{array}{ c c } File \left\{ \begin{array}{ c c } Block \left\{ \begin{array}{ c c } Block \\ Block \end{array} \\ Block \end{array} \\ File \left\{ \begin{array}{ c c } Block \end{array} \end{array} \\ Folder \left\{ \begin{array}{ c c } File \left\{ \begin{array}{ c c } Block \left\{ \begin{array}{ c c } Block \end{array} \end{array} \end{array} \end{array} \end{align}

## Event Handlers

Each container may have event handlers to support interactivity and special features.

Event Handler Description Occurance
OnStart Actions to perform prior to playing the audio in a container. 0..1
OnFinish Actions to perform after playing the audio in a container. 0..1
OnButton Actions to perform when a button is pressed. 0..n

Each event handler will contain one or more ActionSet elements, which list the sequence of actions to peform. An event handler may contain multiple ActionSet elements with conditional tests to provide alternate responses to events using FlagTest elements.

## Schema

The structure of the talking book content schema is summarized in the following diagram and an XML Schema