この文書はAmerican National Standards Instituteの"ANSI/NISO Z39.86-2005 (R2012), Specifications for the Digital Talking Book (Approved April 21, 2005) (DAISY 3)"の日本語訳である。本文書の原文もしくは完全な情報は、"ANSI/NISO Z39.86-2005 (R2012), Specifications for the Digital Talking Book (Approved April 21, 2005)"を参照されたい。
この日本語訳は参考である。公式な文書ではなく、翻訳・解釈の正確性を保証していない。
要約: この規格は、デジタル録音図書(Digital Talking Book : DTB)を構成する電子ファイルのセットのフォーマットと内容を定義する。そして、DTB再生(Playback)デバイスの要件の限定的なセットを定める。XMLテキストのみのコンテンツから、肉声による音声と連携したテキストのコンテンツ、テキストがほとんどないまたは全くない音声のコンテンツまで、そのコンテンツのあり方が幅広いDTBの構造を詳細に述べるために、すでに確立した仕様または新たに作成した仕様を使用する。DTBは紙媒体の資料をアクセス可能(Accessible)にし、目が不自由な人やその他のプリントデサビリティの人のために設計されたものである。
米国情報標準化機構(National Information Standards Organization : NISO)によって開発された米国標準規格である。
米国国家規格協会(American National Standards Institute : ANSI)によって2005年4月21日に承認された。
出版者
NISO Press
4733 Bethesda Avenue, Suite 300
Bethesda, MD 20814
www.niso.org
Copyright ©2005 by the National Information Standards Organization.
万国著作権条約と パン・アメリカン著作権条約(Pan-American copyright convention)の元に全ての権利を保持する。非商業的な目的のためにのみ、この出版物は、出版者からの書面による事前の許諾なしにいかなる形式またはいかなる手段による複製または送信してもよい。商業目的の複製または配布に関する問い合わせはNISO Press(4733 Bethesda Avenue, Suite 300, Bethesda, MD 20814 USA)に対して行うことが求められる。
ISSN: 1041-5653 National Information Standards Series
ISBN: 1-880124-63-7
(この序文は、ANSI/ Z39.86-2005、デジタル録音図書(Digital Talking Book)のための仕様の一部ではない。情報提供を目的とするのみである。)
最初のANSI/NISO Z39.86は2002年にリリースされた。その規格の本バージョンの準備は、次に挙げる要因によって促進された。まず最初の要因は、関連する規格と仕様における現在の活動に遅れを取りたくないという願望である。2つめの要因は、最初にリリースしたバージョンにおけるあいまいな箇所を明確にする必要性である。そして、3つめの要因は、この規格の実際のユースケースや使用計画に基づくリクエストに基づいた機能拡張をしたいという望みである。
上記の理由の全てから生じるさまざまな変更が行われた。より重要な拡張機能のいくつかを次に一覧として示す。
この規格になされた個別の変更は、HTMLオーサリングツールやテキストエディタでHTMLバージョンを開くと表示されるコメントで説明されている。
(この前書きは、ANSI/ Z39.86-2005、デジタル録音図書(Digital Talking Book)のための仕様の一部ではない。情報提供を目的とするのみである。)
この規格は、全盲者、視覚障害者、身体障害者、学習障害者、その他のプリントディスアビリティの読者(Reader)のためのデジタル録音図書(Digital Talking Book : DTB)の仕様を示すものである。長年にわたり、「録音図書」は、レコード盤やカセットテープなどのアナログ媒体によってにプリントディスアビリティのある読者(Reader)に利用されてきた。これらの媒体は、ますます堅固で費用対効果の高いフォーマットによって、肉声による録音で作成された豊富な紙媒体の資料の音声をユーザー(User)に提供することについて非常に貢献している。しかし、紙媒体の本と比較した場合、アナログ媒体は、いくつかの点で利用に制約がある。第一に、アナログ媒体は本来、線形(初めから終わりまで順番に通しで)で利用するものであるため、参考図書、教科書、雑誌、その他ランダムにいろいろな箇所を頻繁に利用する資料を読む場合に不十分な点が多いことである。これとは対照的に、デジタル媒体は、目の見える読者(Reader)が紙媒体の本をぱらぱらとページをめくるように(そして、それ以上に効率よく)自由に本や雑誌の中を移動する機能を読者(Reader)に提供している。第二に、アナログ録音では、ユーザー(User)がブックマークを挿入したり、資料にハイライトすることによって本と相互にやりとりをすることができないことである。DTBは、ブックマークやハイライトをDTBとは別に保存するが、DTBそのものと連携することで、これらの機能を提供する。第三に、録音図書のユーザー(User)は、聞いている単語のスペルを確認できないことに長い間不満を感じていることである。以下で説明するように、DTBは、音声プレゼンテーションと同期した、作品のフルテキストを格納するファイルを持つだろう。それによって、読者(Reader)は特定の単語を指定し、そのスペルを聞くことができる。最後に、アナログ媒体は、読者(Reader)にドキュメントのたった1つのバージョンのみを提供していることである。例えば、本にフットノートが含まれている場合、そのフットノートは参照されている箇所に配置されて、読者(Reader)に読まれるか、本文テキストの流れの外側に1箇所にまとめて配置される。前者は、関心のない読者(Reader)にとって望まれない干渉をかけることになる。後者は興味のある読者(Reader)がアクセスすることを難しくする。DTBでは、ユーザー(User)がフットノートを簡単にスキップしたり、読むことができる。デジタル録音図書(Digital Talking Book)は、プリントディスアビリティのあるユーザー(User)に、目の見える読者(Reader)が印刷された本を使用するそれに近い、著しく拡張された読書体験を提供する。
DTBは、作品の音声による表現を持つことができるだけではなく、フルテキストコンテンツと画像も持つことができるため、アナログ音声図書に課された制限をはるかに超えたものである。テキストコンテンツファイル(Textual Content File)は音声ファイルの再生と同期されているため、DTBは読者(Reader)に対して多様な感覚からのインプットを提供する。これは、例えば、学習障害の読者(Reader)などに対して大きなメリットとなる。視覚障害のある読者(Reader)の一部には、本のほとんどを聞く選択するものがいるかもしれないが、画像を検査すると、音声の読み上げの流れでは利用できないという情報を提供することがわかるかもしれない。他のものは、音声プレゼンテーションをスキップし、代わりに画面の拡大表示ソフトウェアを利用してテキストファイルを読むことを選択するかもしれない。点字を使用する読者(Reader)はリフレッシュ可能な点字ディスプレイデバイスをDTBプレーヤー(Player)に接続し、テキストコンテンツファイル(Textual Content File)にアクセスすることで、一部または全てのドキュメントを読むことを好むかもしれない。テキストコンテンツファイル(Textual Content File)はあるが、音声資料がないDTBは合成音声や画面拡大ソフトウェア、点字デバイスを経由して利用されるかもしれない。
デジタル録音図書(Digital Talking Book)は、単一の配布媒体に縛られてはいない。CD-ROMが最初に使用されるであろうが、DTBは、デジタルオーディオレコーディングに関連付けられている大容量ファイルを扱うことができるどのようなデジタル配布媒体にも移すことが可能だろう。しかし、DTBがどのような形で配布されるかに関わらず、通常は知的財産保護システムのコンテキストによるものであろう。
この規格を改善するための提案を歓迎する。提案は米国情報標準化機構(National Information Standards Organization)に送付するべきである。連絡先は次のとおり。 4733 Bethesda Avenue, Suite 300, Bethesda, MD 20814 USA, telephone (301) 654‑2512。
この規格は、米国情報標準化機構(National Information Standards Organization)により米国国家規格協会(ANSI)に提出するために処理され、承認された。この規格のNISOによる承認は、必ずしも投票権を持つ全てのメンバーが承認に賛成票を投じたことを意味するものではない。この規格を承認した時点の、NISOの会員は次のとおりである。
3M
Susan Boettcher
Roger D. Larson, Alt
American Association of Law Libraries
Robert L. Oakley
Mary Alice Baish, Alt
American Chemical Society
Matthew Toussant
American Library Association
Betty Landesman
American Society for Information Science and Technology (ASIS&T)
Gail Thornburg
American Society of Indexers
Judith Gibbs
American Theological Library Association
Myron Chace
ARMA International
Diane Carlisle
Armed Forces Medical Library
Diane Zehnpfennig
Emily Court, Alt
Art Libraries Society of North America (ARLIS/NA)
Mark Bresnan
Association for Information and Image Management (AIIM)
Betsy A. Fanning
Association of Information and Dissemination Centers (ASIDIC)
Margie Hlava
Association of Jewish Libraries
Caroline R. Miller
Elizabeth Vernon, Alt
Association of Research Libraries
Duane E. Webster
Julia Blixrud, Alt
Auto-Graphics, Inc.
Paul Cope
Barnes & Noble, Inc.
Douglas Cheney
Book Industry Communication
Brian Green
California Digital Library
Daniel Greenstein
John Kunze, Alt
Cambridge Information Group
Michael Cairns
Matthew Dunie, Alt
College Center for Library Automation (CCLA)
Richard Madaus
Ann Armbrister, Alt
Colorado State Library
Brenda Bailey-Hainer
Steve Wrede, Alt
CrossRef
Edward Pentz
Amy Brand, Alt
Davandy, L.L.C.
Michael J. Mellinger
DYNIX Corporation
Ed Riding
Gail Wanner, Alt
EBSCO Information Services
Gary Coker
Oliver Pesch, Alt
Elsevier
Paul Mostert
Endeavor Information Systems, Inc.
Sara Randall
Shelley Hostetler, Alt
Entopia, Inc.
Igor Perisic
Ex Libris, Inc
James Steenbergen
Fretwell-Downing Informatics
Robin Murray
Gale Group
Katherine Gruber
Justine Carson, Alt
Geac Library Solutions
Eric Conderaerts
Eloise Sullivan, Alt
GIS Information Systems, Inc.
Candy Zemon
Paul Huf, Alt
H.W. Wilson Company
Ann Case
Patricia Kuhr, Alt
Helsinki University Library
Juha Hakala
Index Data
Sebastian Hammer
David Dorman, Alt
INFLIBNET Centre
T A V Murthy
Rajesh Chandrakar, Alt
Infotrieve
Jan Peterson
Innovative Interfaces, Inc.
Gerald M. Kline
Betsy Graham, Alt
International DOI Foundation, The
Norman Paskin
Ithaka/JSTOR/ARTstor
David Yakimischak
Bruce Heterick, Alt
John Wiley & Sons, Inc.
Eric Swanson
Library Binding Institute
Debra Nolan
Library Corporation, The
Mark Wilson
Ted Koppel, Alt
Library of Congress
Sally H. McCallum, Alt
Los Alamos National Laboratory
Richard E. Luce
Lucent Technologies
M.E. Brennan
Medical Library Association
Nadine P. Ellero
Carla J. Funk, Alt
MINITEX
Cecelia Boone
William DeJohn, Alt
Modern Language Association
Daniel Bokser
B. Chen, Alt
MuseGlobal, Inc.
Kate Noerr
Clifford Hammond, Alt
Music Library Association
Mark McKnight
David Sommerfield, Alt
National Agricultural Library
Eleanor G. Frierson
Gary K. McCone, Alt
National Archives and Records Administration
Nancy Allard
National Library of Medicine
Betsy L. Humphreys
National Security Agency
Kathleen Dolan
NFAIS
Marjorie Hlava
Nylink
Mary-Alice Lynch
Jane Neale, Alt
OCLC Online Computer Library Center
Thomas Hickey
Openly Informatics, Inc.
Eric Hellman
ProQuest Information and Learning
Thomas Hamilton
Carol Brent, Alt
Random House, Inc.
Laurie Stark
Recording Industry Association of America
Bruce Block
Carlos Garza, Alt
RLG
Lennie Stovel
Joan Aliprand, Alt
Sage Publications
Carol Richman
Richard Fidczuk, Alt
Serials Solutions, Inc.
Mike McCracken
SIRSI Corporation
Greg Hathorn
Slavko Manojlovich, Alt
Society for Technical Communication (STC)
Frederick O'Hara
Annette D. Reilly, Alt
Society of American Archivists
Lisa Weber
Special Libraries Association (SLA)
Foster J. Zhang
Synapse Corporation
Trish Yancey
Dave Clarke, Alt
TAGSYS, Inc.
John Jordon
Anne Salado, Alt
Talis Information Ltd
Terry Willan
Katie Anstock, Alt
The Cherry Hill Company
Cary Gordon
Thomson ISI
Carolyn Finn
Triangle Research Libraries Network
Mona C. Couts, Alt
U.S. Department of Commerce, NIST, Office of Information Services
Mary-Deirdre Coraggio
U.S. Department of Defense, DTIC (Defense Technical Information Center)
Richard Evans
Jane L. Cohen, Alt
U.S. DOE, Office of Scientific & Technical Information
Ralph Scott
Karen Spence, Alt
U.S. Government Printing Office
Judith Russell
T.C. Evans, Alt
U.S. National Commission on Libraries and Information Science (NCLIS)
Robert Molyneux
VTLS, Inc.
Carl Grant, Alt
WebFeat
Todd Miller
Paul Duncan, Alt
NISOがこの規格を承認した時点で、次の者が理事を務めた。
Jan Peterson, Chair
Infotrieve
Carl Grant, Vice Chair/Chair-Elect
VTLS, Inc.
Beverly C. Lynch, Immediate Past Chair
UCLA Graduate School of Education & Information Studies
Michael J. Mellinger, Treasurer
Davandy, L.L.C.
Patricia R. Harris, Executive Director/Secretary
National Information Standards Organization
Douglas Cheney
Barnes & Noble, Inc.
Brian Green
BIC/EDItEUR
Daniel Greenstein
California Digital Library
Deborah Loeding
The H.W. Wilson Company
Richard E. Luce
Los Alamos National Laboratory
Robin Murray
Fretwell- Downing Informatics
James Neal
Columbia University
Oliver Pesch
EBSCO Information Services
Patricia Stevens (SDC Chair)
OCLC, Inc.
Eric Swanson
John Wiley & Sons, Inc.
2002年のこの規格の承認に続き、このドキュメントの維持及び拡張を管理するために諮問委員会が設立された。次に挙げる個人は、この規格のこのバージョンの準備中に委員会を構成したメンバーである。
諮問委員会は次に挙げる個人によるこの規格の継続的な開発に対する大いなる貢献に感謝する。特に Ole Holst Andersen は彼の時間と専門知識を大いに提供してくれた。DAISYコンソーシアムのXML技術ワーキンググループも、DTBook DTDの使用について優れたフィードバックを提供し、改善を必要とする箇所を特定した。
Ole Holst Andersen, Danish National Library for the Blind; Jon Beatty, Minnetonka Software, Inc.; Harvey Bingham; Don Breda, American Council of the Blind; Sean Brooks, Canadian National institute for the Blind; John Bryant, National Library Service for the Blind and Physically Handicapped; Curtis Chong, National Federation of the Blind; John Cookson, National Library Service for the Blind and Physically Handicapped; Keith Creasy, American Printing House for the Blind; Tim Curtin, gh; Marisa de Meglio, the DAISY for All Project;, DAISY Consortium; Guillaume du Bourguet, BrailleNet Association; Jim Dust, Telex Communications Corporation; Daniel Farrington, Dolphin Audio Publishing; Dan Germann, LR Sound; Al Gilman; Luis Gutierrez, American Foundation for the Blind; Diana Hiorth Persson, Dolphin Audio Publishing; John Kibitlewski, gh; Jesper Klein, Swedish Library of Talking Books and Braille; Johan Knol, IDUNA Electronics BV; Brad Kormann, National Library Service for the Blind and Physically Handicapped; Kathy Korpolinski, Recording for the Blind & Dyslexic; Dominic Labbé, VisuAide, Inc.; Chris Lehn, Telex Communications Corporation; Lynn Leith, Canadian National Institute for the Blind; Olaf Mittelstaedt, Swiss Library for the Blind and Visually Handicapped; Brandon Nelson, Canadian National Institute for the Blind; Laust Skat Nielsen, Danish National Library for the Blind; Tatsuo Nishizawa, Plextor; Joe Said, gh; Janina Sajka, American Foundation for the Blind; Gregg Savage, Talking Book Publishers, Inc.; Dave Schleppenbach, gh; Per Sennels, National Resource Center for Special Education of the Visually Impaired (Norway); Sheela Sethuraman, CAST; Charles Steaderman; Jeff Suttor, SUN Microsystems; Niels Thögersen, Danish Institute for the Blind; Chris von See, TechAdapt; Christian Wallin, Danish National Library for the Blind; Chris Wilder-Smith, CAST.
(このセクションは参考情報である(informative)。)
この規格は、全盲者、視覚障害者、身体障害者、学習障害者、その他のプリントディスアビリティのある読者(Reader)のためのデジタル録音図書(DTB)の仕様を規定するものである。その目的は、目標母集団(Target population) にコンテンツと再生システム(Playback System)を提供するサービス組織やベンダーの枠を超えた相互運用性を確保することである。
この規格は、主にDTBを構成するファイル群とそれらの相互関連性を規定する仕様を提供する。また、それらは、ファイル要件に関連したプレーヤー(Player)のパフォーマンスとユーザー(User)要件で定義された領域でのプレーヤー(Player)の挙動の2つの領域において、DTBの再生(Playback)デバイスの仕様を規定する仕様も含まれている。
(このセクションは規範的である (Normative)。)
次に挙げる略語、頭文字、フレーズ、用語は、この規格において以下で定義されるように使用される。以下の定義及びこの規格全体をとおして、ブラケット[角かっこ]で囲まれた項目は、セクション17「その他の仕様/ドキュメントへの参照」のエントリに対応する。そこでは、それぞれの参照についてフルURLも提供される。
(このセクションは参考情報である(Informative)。)
この規格は、幅広く使用されている様々な規格や仕様に基づいている。それにはWorld Wide Web Consortium とOpen eBook Forum™の規格や仕様も含まれている。適用可能であり、適切である規格や仕様が存在する場合はいつもその規格や仕様が使用された。これらの規格と技術の使用は、その機能の追加を促進することが主な目的であるが、同時に目標母集団(Target population)を対象とするこの規格の迅速で継続的な適用を促進することを意図している。
(このセクションは参考情報である(Informative)。)
デジタル録音図書(Digital Talking Book)のファイル、ストリーム、変換プロセス及びプレイヤー(Player) は、そのコンテンツを様々な能力や障害をもった人々に提供するために設計された。ユーザー(User)は印刷された文書にアクセスすることができないため、従来の印刷物以外の形態による提供を可能とするために設計された。 肉声による音声、点字、合成音声、ユーザー(User)がサイズを指定できる大活字、プレイヤー(Player)の視覚的なディスプレイにあわせてテキストが改行するリフロー、テキストと音声の同期、その他の学習障害のある人のための拡張を含め、ファイル、ストリーム、変換プロセス、そして、プレーヤー(Player)が情報を、可能な限り多くのプレゼンテーション方式によって、ファイル、ストリーム、変換プロセス、そしてプレイヤー(Player)ができる限り情報を利用可能にすることがユーザー(User)にとって最も利益があることである。手先が器用な人からそうでない人まで幅広く様々な人々が、プレイヤー(Player)を制御することが可能であるならば、ユーザー(User)も大いにその恩恵をうけるだろう。
この規格を開発している間に、アドバイサリードキュメントの DTB Playback Device Features List が作成された。これはこの規格の規範的な部分ではないが、プレイヤー(Player)の開発者がそれに具体化されたアクセシビリティ概念を理解するのに有用だろう。
この規格で規定するものに加えて、Worldwide Web Consortium の Web Accessibility Initiative によって作成されたガイドラインとその実装方法集(Techniques)から価値ある追加の情報を入手することができる。現時点では、以下のドキュメントが含まれる。
(このセクションは規範的である(Normative)。)
全てのプレゼンテーション方式が全てのプレーヤー(Player)やドキュメントで利用可能になるわけではないだろうが、可能な限りいつでも、多様な同等の表現方法をユーザー(User)が利用できるようにすることを強く推奨する。歴史的に、障害のある特定のユーザー(User)グループを対象に販売される製品が時折有効ではないことがあることが分かっている。全ての目標グループにとって全てのプレーヤがアクセス可能である(Accessible)必要は必ずしもない。しかし、この規格に準拠する全てのデバイスは、それが宣伝されている目標母集団(Target population)にとってアクセス可能(Accessible)でなければならない(Must)。また、DTB製作ツールと作業工程を障害者にとってアクセス可能(Accessible)にすることを強く推奨する。
(このセクションは規範的である(Normative)。)
この規格は、ここで参照される規格と仕様の特定のバージョンに基づいている。それらは注記した場合を除き、このドキュメントで定義されているとおりに使用される。これらの規格と仕様が新しくなったり、異なるバージョンがでてきたことにより、参照される仕様が改良または置き換えられることになったしても、その変更はこの規格に直接適用されない。この規格への適合は、これを書いている時点で効力のある規格と仕様のバージョンに基づいている。
(このセクションは規範的である(Normative)。)
再生システム(Playback System)は、少なくとも、UTF-8とUTF-16のエンコーディングに対応しなくてはならない(Must)。XML仕様 [XML] のセクション2.2を参照すること 。
(このセクションは参考情報である(Informative)。)
この規格の実装に、特許権によって保護された1つ以上の発明を使用してもよい(May)。そのような権利を主張する全ての企業は、その権利の下で合理的かつ非差別的な条件(reasonable and non-discriminatory terms and conditions : RAND条件)により、全ての申請者にライセンスを与えることに同意していると信じられている。
DTBシステムまたはそのいずれかのコンポーネントの製作者は、彼らが使用する関連規格によって定義された技術やこの規格で参照された仕様の全てに、適切なライセンスを取得することについて責任を負う。この標準委員会が認識していない適用可能な特許があるかもしれない。実装が特許権を侵害していないことを保証するのは、実装者の責任である。
デジタル録音図書として配布される作品で具体化される知的財産の保護を取り巻く問題は、セクション14「 デジタル著作権管理(Digital Rights Management : DRM) 」で議論されている
(このセクションは参考情報である(Informative)。)
付録2で示された維持機関は、この規格のレビューや修正の提案に基づく行動について責任を負う。この規格の実装に関する質問や情報の要求は、この保守機関に送るべきである。
この規格に関連する正誤表、提案された変更、保守活動のリストは、http://www.daisy.org/z3986/2005/errata.html で維持される 。
(このセクションは参考情報である(Informative)。)
デジタル録音図書(DTB)は代替メディア、つまり、肉声、合成音声、点字ディスプレイ、視覚的ディスプレイ(例えば、大活字など)を通して目標母集団(Target population)に情報を提供するために配置された電子ファイルの集合である。これらのファイルがこの規格に従って作成され、DTBに組み込まれるならば、迅速で柔軟なナビゲーション、ブックマーキング、ハイライト、キーワード検索、オンデマンドの単語のスペリング、そして選択した項目(例えば、フットノート、ページ番号など)のプレゼンテーションのユーザー(User)による制御のような、幅広い機能を可能にするだろう。これらの機能によって、視覚的及び身体的に傷害のある読者(Reader)がDTB内の情報に柔軟かつ効率的にアクセスすることが可能になる。そして、学習障害や読字障害のある目がみえるユーザー(User)も複数な感覚を通じて情報を受け取ることができる。これらの機能の完全な考察については、この規格の基になったユーザー(User)要件ドキュメントである"Document Navigation Features List" [Navigation Features]を参照すること。この規格の開発中に書かれたドキュメント、 Theory Behind the DTBook DTD [DTBook Theory] もDTBのナビゲーション機能についてある程度詳細に説明をしている。DTBのコンテンツは音声のみのものから、音声、テキスト、画像を組み合わせたもの、テキストのみのものまで様々である。
DTBプレーヤー(Player)も様々な機能を備えたものが生産されるだろう。最もシンプルなものは、音声のみの機能を備えたポータブルデバイスかもしれない。より複雑なポータブルプレーヤー(Player)は、録音された肉声の音声データの再生だけではなく、合成音声によるテキスト読み上げ機能も備えていることが考えられる。最も包括的な再生システム(Playback System)は、PCベースであり、視覚及び音声の出力、合成音声によるテキスト読み上げ機能、点字ディスプレイへの出力に対応することが期待される。前述の Playback Device Features List [Player Features] は3つのタイプの再生(Playback)デバイスにわたる幅広い機能について委員会の順位を提示している。
DTBを構成するファイルは、以下に説明されるような10のカテゴリに分類される。
(このセクションは参考情報である(Informative)。)
Open eBook Forum™(OEBF )Publication Structure 1.2 から作成されたパッケージファイル(Package File)はDTBがどのようなファイルで構成されているか、そして、それらのファイルがどのように相互の関係を持っているかなどの管理情報を格納する。大部分がPublication Structureからのものであるこのセクションは、DTBにそれがどのように適用されているかを描きながら、例とともに各セクションの機能の概要のみを提供する。パッケージファイル(Package File)の完全な詳細については、OEBF Publication Structure 1.2の完全版のセクション2を参照すること。
Publication Structureは、パッケージファイル(Package File)の主要な部分について次にように説明する。
- パッケージID - 全体としてのOEB出版物のための一意の識別子。
- メタデータ -出版物のメタデータ(タイトル、著者、出版者など)。
- MANIFEST -出版物を構成するファイル(ドキュメント、画像、スタイルシートなど)の一覧。Manifestには、この仕様ではサポートされていないタイプのファイルのフォールバックの宣言も含まれている。
- SPINE -読み上げ順序を提供するドキュメントの配置。
- TOURS -出版物を通しての代替の読み取り順序のセット。例えば、様々な読書の目的、読者(Reader)の専門知識のレベルなどにあわせた選択的視点によるものなど。
- GUIDE - 例えば、目次、前書き、目録のような、出版物の基本的な構造的機能への参照のセット。
パッケージファイル(Package File)の略式の概要は次のとおりである。
<?xml version="1.0"?> <!DOCTYPE package PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN" "oebpkg12.dtd"> <package xmlns="http://openebook.org/namespaces/oeb-package/1.0/" unique-identifier="foo"> <metadata>...</metadata> <manifest>...</manifest> <spine>...</spine> <tours>...</tours> <guide>...</guide> </package>
(このセクションは規範的である(Normative)。)
この規格に準拠したDTBは、パッケージファイル(Package File)をただ1つの含めなくてならない(Must)。 そのパッケージファイル(Package File)は、OEBF Publication Structure 1.2 package DTD (oebpkg12.dtd) に準拠した妥当なXML 1.0ドキュメントでなければならず(Must)、その エンティティ参照 (oeb12.ent)と関連づけられなければならない(Must)。フル仕様のDTBと OEBFパッケージファイル(Package File)のエンティティ参照はOEBF のウェブサイト [OEBF]からダウンロードできる。パッケージファイル(Package File)は拡張子".opf"とともに名付けられなくてはならない(Must)。DTBが複数のメディアユニット(Media Unit)にまたがっている場合、同一のパッケージファイル(Package File)がそれぞれのメディアユニット(Media Unit)に存在していなければならない(Must)。
この規格に準拠したパッケージファイル(Package File)は、次の2つの例外を除き、OEBF Publication Structure 1.2のセクション2の全てに従わなくてはならない(Must)。
spine
要素はメディアタイプ text/x-oeb1-documentのitem
要素だけを参照してもよいと述べている。しかし、DTBのへの適用では、 spine
はメディアタイプ application/smilのitem
のみを参照しなければならない(Must)。#FIXED, として宣言されているとしても、名前空間 (xmlns
) 属性とその値は、ドキュメントインスタンスにおいて明確に指定されなければならない(Must)。エンティティ宣言が内部のDTDサブセットでされなければならない(Must)。より詳細な情報については、セクション16.1 「一般的なファイル適合性要件」を参照すること。
(このセクションは規範的である(Normative)。)
package
にはunique-identifier
属性の値を含めなくてはならない(Must)。これは、1つ以上のdc:Identifier
が1つのDTBのパッケージファイル(Package File)のメタデータに存在してもよく(May)、unique-identifier
がどのdc:Identifier
要素がパッケージの主たる識別子を提供しているか指定しているため、求められるものである。unique-identifier
の値は、そのid属性とpackage
要素の子孫であるただ1つのdc:Identifier
要素のid属性とを一致させなくてはならない(Must)。
DTBの主たる識別子は、グローバルな一意でなければならない(Must)。
(この例は、参考情報である(Informative)。)
例 3.1:
<?xml version="1.0"?> <!DOCTYPE package PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN" "oebpkg12.dtd"> <package xmlns="http://openebook.org/namespaces/oeb-package/1.0/" unique-identifier="uid"> <metadata> <dc-metadata...> <dc:Identifier id="uid" scheme="DTB">uk-rnib-db02006 </dc:Identifier> .... </package>
(このセクションは規範的である(Normative)。)
パッケージファイル(Package File)のこの部分は、図書館における書誌レコードで普段見るようなDTBに関する情報を格納している。それには、出版者、版表示、著作権表示などのような原本出版物(一般的には印刷本)に関する情報に加え、DTBそのものに関するデータ(例えば、タイトル、著者、製作者、形式、ナレーターなど)が含まれている。
パッケージファイル(Package File)は、ただ1つのmetadata
要素を格納していなくてはならない(Must)。そして、そのmetadata
要素は、Dublin Core [DC]
のメタデータを保持するただ1つのdc-metadata
を格納しなくてはならず(Must)、x-metadata
要素に補足メタデータを格納しなくてはならない(Must)。 x-metadata
要素は、少なくとも1つのmeta
要素のインスタンスを格納しなくてはならない(Must)。そして、そのmeta
要素の値を定義するためにname
とcontent
属性を使用する。(セクション3.2.3「 X-Metadata
」を参照すること。)
(このセクションは規範的である(Normative)。)
準拠したDTB内のDublin Core メタデータの使用には、OEBF Publication Structure 1.2の次の記述に準拠しなくてはならない(Must)。
dc-metadata
要素は、Dublin Core イニシアティブ(http://purl.org/dc/ )によって定義された特定の出版物レベルのメタデータを格納する。次の説明は利便性のために用意されたものであり、Dublin Coreの独自の定義が優先される(http://www.ietf.org/rfc/rfc2413.txtを参照せよ )。
dc-metadata
要素は、あらゆるDublin Core 要素の任意の数のインスタンスを格納することができる。Dublin Core 要素名は、"dc:"の接頭辞に続き、先頭の文字が大文字で始まる。Dublin Core メタデータ要素は、任意の順序で存在してもよい(May)。同じ要素型(例えば、複数のdc:Creator
要素)の複数のインスタンスを、他のmetadata
要素とともに意味を変更することなく散在させることができる。上位互換性を担保するため、OEBパッケージ内の
dc-metadata
要素は次の属性を持つことが求められる。
xmlns:dc="http://purl.org/dc/elements/1.1/"
及び
xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/".
次は、Dublin core 要素の簡潔な定義である。より完全な説明については、Publication Structure と Dublin Coreそのものを参照すること。xml:lang
属性とid
属性は全ての"dc:..."要素に適用することができる。以下に詳述するように、追加属性は、いくつかの要素とともに使用することができる。全てのDublin Core 要素タイプは、dc-metadata
の中であれば、繰り返してもよい(May)(1回以上出現してもよい)ことに注意すること。
dtb:sourcePublisher
とdtb:producer
を比較すること 。)dc:Creator
に名を連ねている者の中で出版物への貢献が二次的な者。dtb:sourceDate
とdtb:producedDate
を比較すること)形式は[ISO8601]による。つまり、構文は、YYYY[-MM[-DD]]。四桁で表される年(必須)、続いて2桁で表される月(任意)、そして、月が表示されるなら、続けてその月の2桁で表される日付(任意)。dc:Date
の繰り返しは可。ベストプラクティスはdtb:revision
とdtb:revisionDate
を代わりに使用することである。dc:Format
の値は "ANSI/NISO Z39.86-2005"の場合のみ有効である。package
のunique-identifier
属性から参照されるが、このインスタンスには idを含めなければならない(Must)。(このセクションは参考情報である(Informative)。)
電子出版物を識別するために様々なスキームが利用可能である。DTBドメインでは、識別子の要件は、単純にグローバルな一意である可能性の高い方法で出版物を識別することである。一意性要件の主な目的は、ブックマークファイルの間でファイル名が衝突することを防ぐことである。
この基本要件を満たすために、単純なDTB ID スキームが使用されるかもしれない。このスキームでDTB 識別子は、[ISO 3166]に記載されている2文字の国名コード、その国の中での一意なエージェンシーコード、そして、そのエージェンシー内での一意な識別子がハイフンで区切られた文字列で構成されている。例えば、us-afb-x12345である。
短期的に見れば、このスキームが、DTB出版者のニーズに応える一意性要件に対する単純な解決方法を提供するだろう。長期的に見れば、代替フォーマット資料のグローバルなライブラリーの要件がさらに重要になってくるように、他のさらに洗練されたメカニズムがおそらく採用されることになるだろう。
(このセクションは規範的である(Normative)。)
次に挙げられる名前は、Dublin Core 要素セットがカバーしていない情報を提供するDTBへの適用のために開発された。これらの名前は、meta
要素のname
属性の値のように、x-metadata
が含む要素の中でのみ存在してよい(May)。次のx-metadata
の名前のそれぞれについて、「繰り返し可」(1回以上使用されてもよい(May))または「繰り返し不可」として示されている。コンテンツ製作者は、必要ならば以下に列挙したもの以外のメタデータをx-metadata
の中に導入してもよい(May)。しかし、この規格で定義されてない限り、メタデータ名は接頭辞 "dtb:"で始まってはならない(Shall Not)。プレイヤー(Player)は、未知のメタデータに遭遇した時も処理を失敗してはならない(Must Not)。少なくともそれを無視しなければならない(Must)。
audio
、 text
、そしてimage
のみであろう。NCX、リソースファイル、またはdestInfoによって参照されるメディアタイプはここで一覧されてはならない(Must Not)。dtb:revision
に関連づけられる日付。形式は[ISO8601]による。つまり、構文は、YYYY[-MM[-DD]]。四桁で表される年(必須)、続いて2桁で表される月(任意)、そして、月が表示されるなら、続けてその月の2桁で表される日付(任意)。(この例は、参考情報である(Informative)。)
例 3.2:
.... <metadata> <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/"> <dc:Title>Revised Standards and Guidelines of Service for the Library of Congress Network of Libraries for the Blind and Physically Handicapped 1995</dc:Title> <dc:Subject>library information networks</dc:Subject> <dc:Subject>libraries and the physically handicapped--standards--U.S.</dc:Subject> <dc:Subject>libraries and the blind--standards--U.S.</dc:Subject> <dc:Identifier id="uid" scheme="DTB">us-nls-db00001</dc:Identifier> <dc:Identifier scheme="DOI">10.1000/DX44998</dc:Identifier> <dc:Creator role="aut">American Library Association. Association of Specialized and Cooperative Library Agencies</dc:Creator> <dc:Publisher>National Library Service for the Blind and Physically Handicapped, Library of Congress</dc:Publisher> <dc:Date>2000-06-22</dc:Date> <dc:Source>0-8389-7797-9</dc:Source> <dc:Language>en</dc:Language> <dc:Format>ANSI/NISO Z39.86-2005</dc:Format> <dc:Description>A document developed to improve library service for blind and physically disabled persons by providing a tool for assessing the current status of those services and for developing long-range plans.</dc:Description> </dc-metadata> <x-metadata> <meta name="dtb:sourceDate" content="1995" /> <meta name="dtb:sourcePublisher" content="American Library Association" /> <meta name="dtb:sourceRights" content="copyright 1995, American Library Association" /> <meta name="dtb:narrator" content="Lowenstein, Ralph" /> <meta name="dtb:producer" content="American Foundation for the Blind" /> <meta name="dtb:multimediaContent" content="audio" /> <meta name="dtb:multimediaType" content="audioNCX" /> <meta name="dtb:totalTime" content="06:22:34.143" /> </x-metadata> </metadata> ....
(このセクションは規範的である(Normative)。)
package
要素の子であるmanifest
は、パッケージファイル(Package File)そのものを含め、DTBを構成するファイル(ドキュメント、音声ファイル、画像、スタイルシートなど)全ての完全なリストを格納しなければならない(Must)。manifest
はこの規格によって認められた種類のファイルのみを列挙しなければならない(Shall)。manifest
はDTBの一部をなすファイルのみを列挙しなければならない(Shall)。distInfoファイルとchangeMsgs
と関連付けられた全ての音声(またはdistInfoファイル内でのみ列挙されているそのほかの全てファイル )はDTBの一部をなすものとみなされない。そのため、列挙されるべきではない(Shall Not)(セクション11「配布のためのパッケージングファイル」を参照すること)。リソースファイルおよび関連付けられた全てのメディアファイルは、DTBの一部をなすものとみなされるため、列挙されなければならない(Must)。各ファイルはitem
要素によって参照される。各item
は参照されるファイルのURIであり、Manifest内で一意の値を持つhref
属性を持たなければならない(Must)。このURIはフラグメント識別子(Fragment Identifier)を含んではならない(Must Not)。もし相対的である場合、パッケージファイル(Package File)そのものと相対的であるとして解釈される。また、相対URLがManifestで列挙されているXMLファイル内に格納されている場合、その相対URLは参照しているファイル対して相対的であるとみなされる。
さらに、各item
はファイルのMIMEメディアタイプを格納したmedia-type
属性とid
属性を持たなければならない(Must)。id
は、主にmanifest
item
がspine
に参照されている時に使用される。プレーヤー(Player)が代替のプレゼンテーション形式を選択できるようにするため、manifest
にフォールバックの宣言も含めてもよい(May)(詳細はOEBF
Publication Structure を参照すること)。フォールバックメカニズムへのサポートは、この規格では要求されない。パッケージファイル(Package File)のManifest内のNCXのエントリは "ncx"と同じ値を持つidを持たなければならない(Must)。Manifestのパッケージファイル内のリソースファイルのエントリは、"resource"と同じ値を持つidを持たなければならない(Must)。manifest
内のitem
要素の順序は重要ではない。
全てのmedia-type
属性の値はRFC 2046に準拠しなければならない(Must)。また、media-type
属性は、そのファイルタイプについて、存在するならばIANAに登録されたMIME メディアタイプの値を持たなくてはならない(Must)(MIMEメディアタイプの登録プロセスの情報についてはRFC 2048を参照すること)。MIMEメディアタイプが登録されていない場合、そのファイルタイプの適用規格の中から推奨されるMIMEメディアタイプが使用されなければならない(Must) 。ファイルの標準的なMIMEメディアタイプがない場合は、RFC 2046
のルールに従って適切な"x-"MIMEメディアタイプが使用されなければならない(Must)。WAVファイルの場合は、この規格は、メディアタイプの値 "audio/x-wav" の使用を義務づけてはいない。この規格で定義されたXMLドキュメントのファイルについて、この規格は必須で一意なメディアタイプをRFC 3023に従って定義する。NCXは"application/x-dtbncx+xml"、リソースファイルには"application/x-dtbresource+xml"、そして、テキストコンテンツファイル(Textual Content File)には"application/x-dtbook+xml" である。
また、製作者はこの規格で言及された全ての種類のファイルについて、特定のファイル名の拡張子を使用しなくてはならない(Must)(下記表参照)。これらの値は、大文字と小文字が区別される。ファイル名の拡張子とMIMEメディアタイプの値が一致しない場合、プレイヤー(Player)はMIMEメディアタイプを優先することを考慮するべきである(Should)。
次の表は、パッケージのManifestで出現してよい(May)全ての種類のファイルの求められるファイル名の拡張子とMIMEメディアタイプの値をまとめたものである。
ファイルの種類 | ファイル名の拡張子 | MIMEメディアタイプ |
---|---|---|
MPEG-4 AAC audio | .mp4 | audio/mpeg4-generic |
MPEG-1/2 Layer III (MP3) 音声 | .mp3 | audio/mpeg |
リニアPCM - RIFF WAVE形式音声 | .wav | audio/x-wav |
JPEG 画像 | .jpg | image/jpeg |
PNG 画像 | .png | image/png |
Scalable Vector Graphics (SVG) 画像 | .svg | image/svg+xml |
Cascading Style Sheets (CSS) | .css | text/css |
SMILファイル | .smil | application/smil |
パッケージファイル(Package File) | .opf | text/xml |
文書型定義(DTD)と 文書型定義(DTD)の断片(エンティティまたはモジュール) | [要件なし] | application/xml-dtd |
ナビゲーションコントロールファイル (NCX) | .ncx | application/x-dtbncx+xml |
テキストコンテンツファイル(Textual Content File) (dtbook) | .xml | application/x-dtbook+xml |
リソースファイル | .res | application/x-dtbresource+xml |
(この例は、参考情報である(Informative)。)
音声、構造、そしてテキストを持つDTBのサンプルのmanifest
は次のとおりである。
例 3.3:
.... <manifest> <item id="opf" href="rs.opf" media-type="text/xml" /> <item id="text" href="rs.xml" media-type="text/x-dtbook+xml" /> <item id="text_style" href="dtbbase.css" media-type="text/css" /> <item id="ncx" href="rs.ncx" media-type="application/x-dtbncx+xml" /> <item id="ncx_style" href="ncx16.css" media-type="text/css" /> <item id="SMIL" href="rs.smil" media-type="application/smil" /> <item id="foreword" href="rs_fwdx.mp3" media-type="audio/mpeg" /> <item id="standards" href="rs_stdx.mp3" media-type="audio/mpeg" /> <item id="appendices" href="rs_app.mp3" media-type="audio/mpeg" /> <item id="index" href="rs_index.mp3" media-type="audio/mpeg" /> <item id="fig_01" href="fig1.png" media-type="image/png" /> <item id="resource" href="rs.res" media-type="application/x-dtbresource+xml" /> <item id="resource_audio" href="res.mp3" media-type="audio/mpeg" /> </manifest> ....
次は上のDTBの音声のみのバージョンの manifest
である。ここでは、本のそれぞれのセグメントごとにSMILファイルが分割されて製作されている。
例 3.4:
.... <manifest> <item id="opf" href="rs.opf" media-type="text/xml" /> <item id="ncx" href="rs.ncx" media-type="application/x-dtbncx+xml" /> <item id="foreword" href="rs_fwdx.mp3" media-type="audio/mpeg" /> <item id="standards" href="rs_stdx.mp3" media-type="audio/mpeg" /> <item id="appendices" href="rs_app.mp3" media-type="audio/mpeg" /> <item id="index" href="rs_index.mp3" media-type="audio/mpeg" /> <item id="SMIL1" href="rsfwd.smil" media-type="application/smil" /> <item id="SMIL3" href="rsapp.smil" media-type="application/smil" /> <item id="SMIL4" href="rsind.smil" media-type="application/smil" /> <item id="SMIL2" href="rsstd.smil" media-type="application/smil" /> </manifest> ....
(このセクションは規範的である(Normative)。)
様々なロケールやプラットフォーム間でのDTBの転送時の相互運用性を担保するために、ファイル名に仕様される文字は[RFC2396]のalphanum定義、そして、RFC2396のmark定義のサブセットに制限されなければならない(Must)。これは事実上 利用可能な文字を[A-Za-z0-9._-]に限定する。
次の定義 "filename" はEBNF形式でどの文字がファイル名で使用できるかを特定したものである。定義 "foldername"は、DTB ファイルセットの構成要素を参照するURIのパス仕様にフォルダが使用される場合の、フォルダ名で使用できる文字を特定している。
digit ::= [#x0030-#x0039] lowalpha ::= [#x0061-#x007A] upalpha ::= [#x0041-#x005A] alphanum ::= digit|lowalpha|upalpha hyphen ::= [#x002D] underscore ::= [#x005F] period ::= [#x002E] filename ::= (alphanum|hyphen|underscore|period)+ foldername ::= (alphanum|hyphen|underscore)+
(このセクションは参考情報である(Informative)。)
これらの制限は、暫定的な解決法とみなされるべきである(Should)。国際化リソース識別のためのグローバルな勧告また規格が制定されたらすぐに、その適用が優先順位の高い検討事項になるだろう。
(このセクションは規範的である(Normative)。)
ファイルセットの構成要素を参照する全てのURIは、大文字と小文字が区別される。
ファイルセットの構成要素には、大文字・小文字の正規化を行った場合に同一の名前が複数存在するような名前を与えてはいけない(Must Not)。
(このセクションは規範的である(Normative)。)
package
要素の子spine
は、1つ以上のitemref
要素のリストで構成されなければならない(Shall)。itemref
要素の順序は、DTBにおける規定値としての線形での読む順序を定義している。各itemref
は manifest
でリスト化されているSMILファイルのid
を指し示すidref
を格納しなくてはならない(Must)。 spine
内のitemref
によって参照できるのはSMILファイルのみである。itemref
はspine
内でSMILファイルで表現される順に列挙されなければならない(Must)。プレーヤー(Player)がSMILファイルの最後に到達した時、どのファイルを次にレンダリングするかを決めるためにプレーヤー(Player)はspine
を参照しなければならない(Must)。
(次の例は参考情報である(Informative)。)
以下に挙げる例の最初のものは、上に掲載した2つのmanifest
の例のうち、最初のものに対応するspine
を示している。
例 3.5:
<spine> <itemref idref="SMIL" /> </spine>
以下のspine
は上に掲載した2番目のmanifest
の例にあるものと一致している。正しい読む順序がここに提示されている。この順序は、順序に意味を持たないmanifest
内のファイルの順序とは一致しないので注意すること。
例3.6:
<spine> <itemref idref="SMIL1" /> <itemref idref="SMIL2" /> <itemref idref="SMIL3" /> <itemref idref="SMIL4" /> </spine>
(このセクションは参考情報である(Informative)。)
tours
要素はpackage
要素の任意の子である。OEBF
Publication Structureは、tours
を次のように説明している。 「観光ガイドが観光名所を組み合わせて観光ツアーを組むように、コンテンツプロバイダは、便利なナビゲーションを可能にするために出版物の厳選された部分を組み合わせてツアーを組んでもよい。...リーディングシステムは、様々な読む目的や読者(Reader)の専門知識のレベルに合わせた選択的な閲覧の提供など、出版物の部分に様々なアクセスシーケンスを提供するためにツアーを使うかもしれない。」DTBの構造とOEBFのtours
との間の固有の違いのために、この規格に準拠して製作されたDTBにおいてtours
を実装することは実行可能とはいえない。製作者が、上で説明された機能性を提供することを望んでいる時には、NCXでカスタマイズされたnavList
を製作することで部分的に実現できるかもしれない。
(このセクションは規範的である(Normative)。)
準拠するプレーヤー(Player)が tours
に対応することは求められていない。
(このセクションは参考情報である(Informative)。)
OEBF
Publication Structureで規定されているように、 package
要素の子であるguide
は、目次、序文、文献目録などのようなDTBの重要な構造的特徴への利便性の高いアクセスを再生(Playback)デバイスに提供するために、それらの構造的特徴を列挙する。DTBには、さらに厳格できめ細かいアクセス要求を満たすNCXを含むことが必須であるため、guide
がDTBで使用されることはないだろう。
(このセクションは規範的である(Normative)。)
準拠するプレーヤー(Player)が guide
に対応することは求められていない。
(このセクションは規範的である(Normative)。)
この規格は、デジタル録音図書(Digital Talking Book)フォーマットにおいて本やその他の出版物のテキストコンテンツファイル(Textual Content File)のマークアップのためにXML
1.0 文書型定義 (DTBook)を定義している。この規格に準拠するためには、DTBのテキストコンテンツファイル(Textual Content File)は、 付録1にある"DTBook DTD"のdtbook-2005-1.dtdに準拠した妥当なXMLファイルでなければならない(Must)。ファイル名の拡張子の要件については、セクション3.3の「Manifest」を参照すること。dtbook
要素におけるversion
属性とxmlns
属性は、ドキュメントのインスタンスの中で、上記のDTDに記載されている値を使用しつつ、明示的に規定されなくてはならない(Must)。内部のDTBサブセットにおいてエンティティ宣言がなされなくてはならない(Must)。さらなる情報はセクションsection 16.1の 「一般的なファイルの適合性要件」を参照すること。
テキストコンテンツを格納するDTBは、ほとんどの場合、たった1つのテキストコンテンツファイル(Textual Content File)を格納するだろう。しかし、必要に応じて(例えば、非常に大きな本)、DTBは複数のテキストコンテンツファイル(Textual Content File)を格納することができる。それぞれのテキストコンテンツファイル(Textual Content File)はDTBook DTDに対して妥当でなければならない(Must)。
DTBのコンテンツ製作者は、特別な状況に対応するため、1つ以上の新しい要素やフルモジュールを追加することで、ベースDTBを拡張してもよい(May)。この規格への準拠を継続して維持するために、DTDの拡張は、XML 1.0で規定されたメカニズムを採用しなければならない(Must)。セクション 4.2.2 「 DTDのモジュールの拡張 」を参照すること。
dtb:uid と dc:Titleの2つのメタデータ項目は 準拠したテキストコンテンツファイル(Textual Content File)の<head>の中に存在し、1つの <meta> 要素の中に格納されなければならない(Must)。dtb:uid はDTBのグローバルな一意の識別子である。値は、パッケージファイル(Package File)のunique-identifier要素によって参照されるdc:Identifier
要素の値と同じである。セクション 3.1 「パッケージの識別」 を参照すること。 dc:Title はDTBのタイトルを格納している。スタンドアローンコンテンツとしてさらにDTBドキュメントの利便性を高めるために、適用可能なフルレンジのDublin Core要素の包含が推奨される。
(このセクションは参考情報である(Informative)。)
この規格の作成中に開発されたドキュメントであるTheory Behind the DTBook DTD [DTBook Theory]はDTBook要素セットの基礎となっている基本原理とデジタル録音図書(Digital Talking Book)アプリケーションに提供することの有益性について論じている。
次に挙げるこの規格の2つの外部文書は要素セットの使用について詳細な情報を提供する。まず第一に、HTML形式のDTDの拡張バージョン([DTBook HTML]を参照すること)が各要素について、その要素がどこで使用でき、その要素の中でどの要素が使用できるかの詳細な説明を、属性の拡張されたリストとともに提供している。
第二に、DTBookマークアップを採用した包括的なガイドラインがDAISYコンソーシアム によって提供されている。このStructure Guidelines [StructGuide]は、DTBook要素セットの正しい適用を説明している。そして、テキストコンテンツの構造を捉えることの重要性を強調し、全てのDTBook要素の使用について詳細な例を提供している。
DTBook要素セットは、デジタル録音図書(Digital Talking Book)の他にかなりの適用例がある。DTBook要素セットは、様々なアクセス可能な(Accessible)形式でのドキュメントの製作を可能とするように設計されたものである。少なくとも1つの米国の点字翻訳ソフトウェアパッケージは、DTBookドキュメントをインポートし、自動的に翻訳し、それらを2級点字でフォーマットする機能を実装している。同様に自動化されるプロセスは、マークアップドキュメントを大活字本へ変換したり、DTBookドキュメントを点字表示する処理や、合成音声で読み上げたり、大活字としての表示する処理を「即座に( on the fly )」に行うように発展していくだろう。最後に、DTBookドキュメントの選択されたセグメントの表示を制御するために、"showin"と呼ばれる属性がDTBook要素セットに組み込まれている。例えば、グラフの記述は、点字と大活字版で異なる場合がある。その場合に、点字版と大活字版両方のエディションのグラフの記述がDTBookドキュメント内に同梱されているとしても、"showin"によって各エディションのそれぞれ適切なバージョンのグラフの記述のみを表示させるようにすることができる。
この規格は、テキストコンテンツファイル(Textual Content File)に適用されるべきマークアップの程度については特に規定しない。しかし、マークアップがリッチになればなるほど、読者(Reader)にとって利用可能な機能性が向上する。
XML 1.0のマークアップとDTDの使用方法の詳細については、W3CのXMLサイト[XML]を参照すること。
(このセクションは規範的である(Normative)。)
テキストコンテンツファイル(Textual Content File)が格納されているDTBに対する効率的なプレーヤー(Player)の動作を保証するために、 smilref
属性が存在しなくてはならず(Must)、SMILファイルに参照されるテキストコンテンツファイル(Textual Content File)内の各要素のそれは非空値でなければならない(Must)。smilref
の値は通常、与えられた要素を参照するメディアオブジェクトを格納するSMIL時間コンテナ(par
またはseq
)のURIでなければならない(Shall)。しかし、連続したテキストメディアオブジェクトで構成されるテキストのみのDTBでは、smilref
はその要素を参照するメディアオブジェクトのURIを格納する。smilref
属性はDTBプレーヤー(Player)に、テキストベースのナビゲーションや全文テキスト検索などの後に続くSMILベースの再生(Playback)の再開を可能にする。
(このセクションは参考情報である(Informative)。)
DTBook DTDは幅広い資料のマークアップに使用するための要素のベースセットを含んでいる。後述するように、詩、劇、辞書、数学のような特殊なものに適用する要素を格納した追加のモジュールを必要な時にDTBookドキュメント内から「呼び出す」ことができる。
DTBook ドキュメントはXMLアプリケーションである。したがって、DTBook ドキュメントは、XMLのバージョンを識別するXML宣言および任意のキャラクターセットエンコーディングで開始するべきである(Should)。(詳細については付録 1の「DTBook DTD」を参照すること)。
<?xml version="1.0" encoding="UTF-8" ?>
この後に文書型宣言が続く。
<!DOCTYPE dtbook PUBLIC "-//NISO//DTD dtbook 2005-1//EN" "http://www.daisy.org/z3986/2005/dtbook-2005-1.dtd">
DOCTYPEの表現の他の方法に関する議論については、 付録 1に列挙されている「DTBook DTD」のセクション2.3を参照すること。
本はDTBook DTDを拡張するために、文書型宣言を締める">"の前に角括弧内に入った 指示を追加することでその他のDTDまたはモジュールを呼び出すことができる。角括弧内の指示は、「宣言の内部サブセット」と呼ばれる。例えば:
<!DOCTYPE dtbook PUBLIC "-//NISO//DTD dtbook 2005-1//EN" "dtbook-2005-1.dtd" [ <!ENTITY % dramaModule SYSTEM "drama.dtd" > %dramaModule; <!ENTITY % externalblock "| drama"> <!ENTITY % externalinline "| stagedir"> ]>
内部サブセットの1行目には"dramaModule"として知られるエンティティを宣言し、モジュールの場所を示すURIを提供する。2行目はこのエンティティを呼び出す。すなわち、まさにDOCTYPE宣言がベースDTD(dtbook-2005-1.dtd)を呼び出すように現在のドキュメントに「このエンティティを持ってくる」。3行目は、エンティティ"% externalblock"を宣言し、それに"drama"という値を与える。dtbook-2005-1.dtd は同じ名前のエンティティを格納しており、内部サブセットは"%externalblock;"が出現するところ(つまり、ブロック要素が認められるところ)dtbook-2005-1ではどこでも衝突する領域のベース(外部)DTD(dtbook-2005-1)を無効にするため、その値に"drama" が追加される。drama
はドラマモジュールのルート要素であるため、全てのドラマモジュールはそこで使用することができる。同様に最後の行では事実上、dtbook-2005-1で"%externalinline;" が使えるところはどこでも(つまり、インライン要素が使用できるところはどこでも)、要素stagedir
を使用することができる。
複数のモジュールを1つの本で必要としてもよい(May)し、含めてもよい(May)。次の例では、dramaモジュールから1つのインライン要素 (stagedir
) とともに poetryモジュールとdrama モジュールが呼び出されている。
[ <!ENTITY % poemModule "http://www.xyz.org/poem.dtd" > %poemModule; <!ENTITY % dramaModule "http://www.xyz.org/drama.dtd" > %dramaModule; <!ENTITY % externalblock "| poem | drama" > <!ENTITY % externalinline "| stagedir"> ]>
この議題に関する議論のさらなる詳細については、「DTBook DTD」(付録 1を参照すること) のセクション3を参照すること。
(このセクションは規範的である(Normative)。)
音声ファイル形式のセットを以下に列挙する。準拠したオーディオプレーヤー(Player)は、列挙された形式の少なくとも1つはデコードできなくてはならない(Must)。プレーヤー(Player)は列挙されたフォーマット全てをデコードできることがを強く推奨される。この規格に準拠したコンテンツは、以下の形式の1つまたはそれらが混合された形で配信されなければならない(Must)。
同じ本の中で部分によって異なる音声形式でエンコードされることは許容される。例えば、製作者は長い文献目録を本の本体より低いビットレートでエンコードしたり、本の本体と異なるコーデックでエンコードすることを選択してもよい(May)。プレイヤー(Player)は異なるエンコードが行われたセクション間のスムーズな切り替えをサポートしなくてはならない(Must)。これらの部分の粒度に特に制限はない。つまり、SMILプレゼンテーションの任意のところで出現してもよい(May)。
マルチチャンネルレンダリングのサポートは求められていない。ステレオ信号は認識されなければならず(Must)、少なくともモノラル形式でレンダリングされなければならない(Must)。
準拠した音声を出力するDTBプレーヤー(Player)は次のフォーマットのデコードが可能であるべきである(Should)。
ファイル名の拡張子の要件については、セクション3.3「Manifest」を参照すること。
MP3とAACのISO規格は、可変ビットレート再生(Playback)のサポートを求めているが、この規格に準拠するプレーヤー(Player)は固定ビットレート再生(Playback)のサポートのみを求めている。
プレイヤー(Player)は、ビット深度16 bits per sampleで44.1kHz、22.05kHz、11.025kHzのサンプリングレートに対応しなくてはならない(Must)。出力サンプリングレートが上の3つのサンプリングレート中の1つに制限されるように、圧縮された音声がエンコードされなければならない(Must)。
(このセクションは規範的である(Normative)。)
ブックマークやハイライトの音声ノートを録音し、エクスポートできるオーディオプレーヤー(Player)は次に挙げる形式またはセクション5.1で規定されている形式によるエンコードをサポートしなくてはならない(Must)。ブックマークやハイライトをインポートすることができるオーディオプレーヤー(Player)は次に挙げる形式によるデコードをサポートしなくてはならない(Must)。
(このセクションは規範的である(Normative)。)
DTBに含まれる画像は、JPEG (JFIF V 1.02) [JPEG]、PNG [RFC 2083]、または Scalable Vector Graphics [SVG]のうち、1つ以上の形式で提示されなければならない(Must)。画像表示をサポートする本仕様に準拠する再生(Playback)デバイスは、JPEGとPNGの表示ができなければならない(Must)。SVGのサポートも推奨される。SVG仕様の付録8は、アクセシビリティに関する議題を説明している。ファイル名の拡張子の要件については、セクション3.3 「Manifest」を参照すること。
(このセクションは参考情報である(Informative)。)
同期マルチメディア統合言語(Synchronized Multimedia Integration Language : SMIL 2.0 )[SMIL]は、インターネットを経由したマルチメディアプレゼンテーションの定義と再生(Playback)の規格としてWorld Wide Web Consortiumによって開発された。SMILは、1つ以上のメディアオブジェクトの再生(Playback)の順序を定義する。DTBの場合、主なメディアオブジェクトは、音声とテキストコンテンツファイル(Textual Content File)である。 SMILは、これらの並行的で同期されたプレゼンテーションを提供する。求められる音声とテキストを表現するデコーダが存在し、知的財産権保護のためのシステムがアクセスを制限していない限り、SMILを使用し、この規格のテキストと音声メディアタイプでエンコードされたコンテンツを利用して構築された全てのDTBは、現在のSMILの仕様または後のSMILの仕様に準拠したプレーヤー(Player)を実装する全てのデバイスまたはプラットフォームで再生することができる。
DTB再生システム(Playback System)が基本的なSMILプレーヤと異なる点は、DTBのユーザー(User)要件 ([Navigation Features])に提示されている特定のナビゲーションと表現に関係する機能が包含されていることである。これらの機能は、NCXファイル、テキストコンテンツ、および/またはSMILファイルそのものからの情報を使用することができる。この情報への鍵は、テキストコンテンツ(存在する場合に)とSMILファイル内にある一意の識別子が包含されていることである。音声ファイルは、時間ベースの位置によって索引付けされる。音声ファイル自身の中には埋め込まれたセマンティックな構造を格納していない。音声コンテンツにセマンティックな構造を提供するためには、音声ファイルの時間上の位置をテキストコンテンツ内のそれに対応する位置と関連付ける必要がある。これは、(URIによって参照される)テキストコンテンツファイル(Textual Content File)内の特定の位置に対するポインタとそれに対応する音声コンテンツの時間上の位置のペアリングを通してSMILを使用することで達成できる。DTB SMILアプリケーションの場合、SMILファイル内の各同期ポイントには一意の識別子が割り当てられる。テキストコンテンツ及びSMIL両方の中にこれらの識別子があることで、再生システム(Playback System)が多様な異なる方法によるナビゲーションを提供することが可能になる。
SMILは、customTest
と呼ばれる制御構造を取り込む。これによって、SMIL著者は、クラスによって、ドキュメントの選択された要素(例えば、ノート、ページ番号、行番号など)を識別することが可能である。再生(Playback)デバイスは、これらのクラスの存在をユーザー(User)に明らかにし、ユーザー(User)が連続再生(Playback)中に要素の与えられたクラスを読むかスキップするかを選択できるようにする。
SMILプレゼンテーションの時間コンテナの持続時間は、子のメディアオブジェクトと時間コンテナの持続時間、または、タイムコンテナの終点を知らせるイベントを認識されることによって決定されるかもしれない。DTB製作者は、ユーザー(User)が例えば、関係する資料を吟味できるように、または、問題に取りかかれるようにすることを目的にプレゼンテーションに一時停止を取り入れたコンテンツを製作することを選ぶかもしれない。関連するタスクが完了したら、ユーザー(User)は、プレーヤー(Player)のユーザーインターフェイスの適切なメカニズムによって再生(Playback)が継続できることを知らせるだろう。
連続的なプレゼンテーションにおける一時停止は、再開ボタンまたは再生ボタンを押すなどのユーザーイベントの出現まで、または、規定された持続時間の終点まで時間コンテナがアクティブであることを示すend
属性の値をもつ時間コンテナを指定することによって作成される。
回避可能な構造は、ユーザー(User)が開始したエスケープイベントによって実行される。回避可能な構造は、子の時間コンテナの通常の終了時間またはユーザー(User)のエスケープイベントの発生のいずれかが最初に来るまで再生する時間コンテナによってラップされる。この場合、回避可能性をサポートするDTBプレーヤは、現在の構造からユーザー(User)が回避をリクエストしたことを示すためのユーザインターフェースメカニズムを提供してもよい。
DTB製作者は、同期イベントの粒度を決定する。同期イベントは、主な構造的要素(NCXで指し示されるもの)に限定することができるし、フルテキストコンテンツを持つ本にパラグラフ、センテンス、または、単語レベルまで同期を含めるために同期イベントを増やすこともできる。同期のこのレベルの要件は、テキストコンテンツには、望ましいマークアップタグが含まれているということと、これらの要素には、SMILファイルから参照できるように一意の識別子が含まれているということである。
DTBのSMILファイルは、一連の並行するイベント(例えば、テキストと音声と(と可能性として画像)のイベントが同時に発生するなど)で主に構成される。SMILは、「時間コンテナ」seg
(メディアオブジェクトの連続)とpar
(複数のメディアオブジェクトが同時に再生するグループ化された並行する時間)の使用を介して、この構造を表現する。DTBのSMILファイルのシンプルな形式は次のものである。現れる3つのpar
が次から次へと再生され、各par
によって参照されるテキストと音声コンテンツが同時にレンダリングされる。
<smil> ... <seq> <par><text.../><audio.../></par> <par><text.../><audio.../></par> <par><text.../><audio.../><img.../></par> </seq> .... </smil>
(このセクションは参考情報である(Informative)。)
この規格におけるメディアオブジェクトの同期は、 SMIL 2.0の仕様に基づいている。開発者は背景や詳細を完全に知るために SMIL 2.0 [SMIL]を参照することが求められる。本仕様では、機能ごとにグループ化された次に挙げるモジュールからSMILの仕様の小さなサブセットのみが適用されている。アスタリスクでマークされたモジュールは、この仕様の適用については全体またはその一部が使用されている。他のものは、W3Cのモジュール化のガイドライン下でのホスト言語適合性のために求められるコアセットの一部であるという理由で含まれる以外では使用されない。
DTBへの適用に特化したプロファイルを形成するために、W3Cモジュール化ガイドラインを使用して、上述のモジュールを組み合わせることができる。「 SMIL 2.0モジュール」のセクション2は、このプロセスの詳細について説明している。
(このセクションは規範的である(Normative)。)
一般的に利用可能なパーサを使用して検証を簡素化し、コンテンツモデルや適用可能な属性リストの決定の複雑さを軽減するために、この規格では付録1にDTB-Specific SMIL DTDが含まれているこのDTDには、上で一覧されたモジュールから、DTBへの適用で求められる要素と属性のみが掲載されている。加えて、SMILモジュールの中には、IMPLIEDされた時のみDTBへ適用が求められるモジュールがあるという点では、SMILモジュールより制限がある。
準拠したDTBは、少なくとも1つのSMILファイルを含めなくてはならない(Must)。DTBに含まれる全てのSMILファイルは、dtbsmil-2005-1.dtdに準拠した妥当なXML
ドキュメントでなければならない(Must)。ファイル名の拡張子の要件については、セクション3.3「Manifest」を参照すること。smil
要素のxmlns属性は、上で名付けられたDTDに記載されている値を使用して明示的にそのドキュメントのインスタンスの中で明記されなければならない(Must)。エンティティ宣言は内部DTDサブセット内で出現しなければならない(Must)。より詳細は情報については、セクション16.1「一般的なファイルの適合要件
」を参照すること。
SMILファイル内の時間コンテナ(seq
またはpar
) はid
を格納しなければならない(Must)。通常は単一のメディアのDTDに限定されるだろうが、メディアオブジェクト( audio
、 text
、そしてimg
)もid
を格納してもよい(May)。セクション7.4.10「 テキストのみのDTB」を参照すること。
テキストコンテンツファイル(Textual Content File)では、同期される各セグメント(例えば、見出し、パラグラフ、リスト項目など)が、SMILセグメントポイントに対応する一意のidを保持する要素内に格納されなければならない(Must)。また、SMILファイルによって参照されるテキストコンテンツファイル(Textual Content File)の要素は時間コンテナまたはそれを参照するメディアオブジェクトのURIを指定するsmilref
属性を持っていなければならない(Must)。smilref
の値は通常、一定の要素を参照するメディアオブジェクトを格納するSMIL時間コンテナのURIになるだろう。ただし、一連のテキストメディアオブジェクトからなるテキストのみのDTBでは、 smilref
はメディアオブジェクトそのものを参照するURIを格納しなければならない(Shall)。セクション4.2.1 「 SMILに関連付けられるDTBookのマークアップ
」を参照すること。
SMILファイルはテキストコンテンツファイル(Textual Content File)の粒度と一致する粒度を持つことを強く推奨する。つまり、テキストコンテンツファイル(Textual Content File)が、パラグラフレベルでマークアップされている場合は、SMILファイルもパラグラフレベルに対する同期を含むべきである(Should)。
SMILファイル内の全ての時間オフセット(及び全ての適用可能なDTBファイル、例えば、NCXのclipBegin
/clipEnd
、ブックマークのtimeOffset
など)
は通常の再生スピードに基づいている。同期を維持するために、プレイヤー(Player)は実際の再生(Playback)速度の独立性の時間オフセットを処理しなければならない(Must)。
(このセクションは参考情報である(Informative)。)
上述のように、DTBへの適用では、DTBのSMILプロファイル内のモジュールをマークアップする要素と属性の一部のみを使用する。この規格に準拠する再生(Playback)デバイスがサポートする必要があるSMILの要素と属性は、DTB-Specific SMIL DTDを構成する次のSMIL要素と属性のみである。
smil
である。smil
要素はただ1つのhead
とただ1つの body
を格納する、<!ELEMENT smil (head, body) >
<smil>
...内容...</smil>
meta
要素を使用)。また、任意のlayout
と任意のcustomAttributes
)を格納する。<!ELEMENT head (meta*, (layout, meta*)?, (customAttributes,meta*)?) >
<head>
...内容...</head>
<smil>
<meta
...属性... />
<!ELEMENT meta EMPTY >
<head>
region
要素を通して)制御する。<!ELEMENT layout (region)+ >
<layout>
...内容...</layout>
<head>
<!ELEMENT region EMPTY >
<region
...属性... />
region
属性の値は、適切なregion
要素のidを参照する。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
の位置を示す。詳細はSMIL 2.0を参照すること。region
のそれらと異なる場合の振る舞いを指定する。属性の値の定義についてはSMIL 2.0を参照すること。region
領域の背景色を設定する。region
でレンダリングされるべきメディアがない場合にregion
のbackgroundColor
を表示するかどうかを制御する。属性の値の定義についてはSMIL 2.0を参照すること。<layout>
region
要素上のid
を参照するregion
属性を持つ全てのメディアオブジェクトはそのregion
内で表示されるだろう。customTest
を1つ以上格納する。<!ELEMENT customAttributes (customTest)+ >
<customAttributes>
...内容...</customAttributes>
<head>
par
とseq
のcustomTest
属性の定義を参照すること。<!ELEMENT customTest EMPTY >
<customTest
...属性... />
body
内でpar
またはseq
の customTest
属性に参照される一意の識別子としての役割を担う。値 = true
) かスキップする(値 = false
) かを指定する。値が存在しない場合、初期設定の値はfalseで、コンテンツはスキップされる。defaultState
のランタイム再設定が奨励される(値 = "visible"
)べきか抑止するべきか(値 = "hidden"
)を指定する。規範的な内容については、セクション7.4.3 「スキップ可能な構造」を参照すること。<customAttributes>
<!ELEMENT body (par|seq|text|audio|img|a)+ >
<body>
...内容...</body>
<smil>
body
は0以上の seq
またはpar
を格納する。そして、0以上のメディアオブジェクト(text
、audio
、img
)またはそのリンク (a
)も直接格納してもよい(May)。par
やseq
などの一連のSMILイベントのコンテナ。<!ELEMENT seq (par|seq|text|audio|img|a)+ >
<seq>
...内容...</seq>
head
内で一致するcustomTest
要素と結びつくseq
を参照するID。
end
値の構文については、セクション 7.8 「End属性の値」 を参照すること。セクション 7.4.1 「回避可能な構造」と7.4.11 「制作者による一時停止」も参照すること。 body
、seq
、par
、a
seq
をネストすることが許容される。<!ELEMENT par (seq|text|audio|img|a)+ >
<par>
...コンテンツ...</par>
head
内にある一致するcustomTest
要素を参照するID。body
、seq
、a
par
の内容」を参照すること。 <!ELEMENT text EMPTY >
<text
...属性.../>
head
内のlayout
内で定義される)テキストが表現されるregion
を指定する。適切なregion
のidを参照する 。同じレンダリング空間に現れるテキストオブジェクトの全てのタイプは region
では同じ値が割り振られるだろう。例えば、ページ番号と製作者ノートは、両方とも画面のメインのテキスト領域(region="text"
)に表示されるかもしれない。一方で、ノート(例えば、フットノート)は、画面の下部にある別の領域( region="notes"
)に表示されるかもしれない。body
、par
、seq
、a
<!ELEMENT audio EMPTY >
<audio
...属性...
/>
clipBegin
と同じ属性値の構文を使用する。head
内のlayout
内で定義される)音声オブジェクトが表現されるregion
を指定する。適切なregion
のidを参照する。body
、par
、seq
、a
。<!ELEMENT img EMPTY >
<image
...属性...
/>
head
内のlayout
内で定義される)画像が表現されるregion
を指定する。適切なregion
のidを参照する。body
、par
、seq
、a
<!ELEMENT a (par|seq|text|audio|img)* >
<a>
...内容...</a>
body
、par
、seq
(このセクションは参考情報である(Informative)。)
上で列挙されるエンティティ%Core.attrib; が次の属性を利用することが可能である。
(このセクションは規範的である(Normative)。)
xml:lang属性は 、コンテンツを保有する、または参照するSMILの要素の[RFC 3066]言語コードを指定する。
(このセクションは規範的である(Normative)。)
DTBプレーヤー(Player)は、表、リスト、製作者のノート、アノテーション、サイドバー、ノートの構造について、読者(Reader)がDTBのレンダリングからシングルアクションで「回避」できる機能を提供するべきである(Should)。回避は、ローカルナビゲーション(Local navigation)を現在の構造(表、リストなど)の直後のポイントに移動することを意味する。
この機能をサポートするには、どのような構造のものであれ、そのSMILエントリが、1つ以上の子の時間コンテナ(seq
またはpar
)を格納する1つのseq
要素で構成されなければならない (Must)。また、構造のタイプを識別するclass属性は、回避可能な構造を格納しただけの親のseq
に適用されなければならない(Must)。class属性の値は、表やリストを除いて制限されない。セクション 7.4.2によれば、表やリストのclassの属性の値はそれぞれ"table"、"list"でなければならない(Must)。
回避可能な構造のみを格納した親のseq
要素は、"DTBuserEscape;childId-value.end"
の値を持つend
属性を持たなくてはならない(Must)。childID-value
は 親の seq
の最後の子の時間コンテナの id
の値である。規定されるようにその値は、ユーザー起動のエスケープアクション (DTBuserEscape) または最後の子の時間コンテナの通常の終点、いずれか先に起こることによって回避可能な構造が終了することをプレーヤー(Player)に定義する。「 End属性値
」と例7.4を参照すること 。
リソースファイルエントリは、DTB内で識別される回避可能な構造の各タイプごとに与えられなくてはならない(Must)。通常は、リソースは SMIL時間コンテナのclass
属性を経由して回避可能な構造と関係付けられる。セクション10「リソースファイル
」を参照すること。
上記の規則は、これらの構造がSMILで識別されるDTBのみに適用される。例えば、時間コンテナが完全な章を保持しているDTB内では、このセクションで説明されている構造にとっては「回避可能」は不可である。
(このセクションは規範的である(Normative)。)
DTBプレーヤー(Player)の開発者は、読者(Reader)が表やリストに入った時に自動的に特別なプレーヤー(Player)ナビゲーションモードを呼び出すことを選択してもよい(May)(「ドキュメントナビゲーション機能リスト[Navigation Features]{」を参照すること。 )。この機能をサポートするには、適切な方法で"table"や"list"の値を使用して、表やリストを格納するseq
がclass属性が含まれていなければならない(Must)。
(このセクションは規範的である(Normative)。)
プレイヤー(Player)は、DTB内のある構造を「オフにする」、つまり、プレーヤー(Player)が再生(Playback)中に自動的にスキップする構造を選択することができるオプションをユーザー(User)に提供するべきである(Should)。この機能をサポートするために、 以下に規定される構造を厳格に格納するseq
またはpar
は、それに適用されるcustomTest
属性を持っていなければならない(Must)。また、それぞれの「スキップ可能な」構造の customTest
要素と同様にcustomAttributes
要素が、それぞれのSMILファイルのhead
に存在し、コンテンツを格納しなければならない(Must)。
最低限、行番号、ノート、ノートリファレンス、アノテーション、ページ番号、任意の製作者ノートと製作者サイドバーの時間コンテナにcustomTest
属性は適用されなければならない(Must)。ノート、アノテーション、任意の製作者ノート、複数のセグメントを格納する任意のサイドバーはseq
内でラップされた一連のpar
として表現されなければならない(Must)。それでseq
にcustomTest
が適用でき、ユーザー(User)はその全体のシーケンスをスキップできる。
上のパラグラフのルールはまさに「スキップ可能な」構造を格納するSMIL時間コンテナを持つDTBのみに適用される。例えば、時間コンテナが完全な章を保持するDTBでは、「スキップ可能」は、このセクションで説明された構造では不可能である。
(seq
またはpar
上のcustomTest属性とcustomTest
要素上のid
属性の)属性値は製作者に委ねられる。スキップ可能な要素を利用する製作者は、プレーヤー(Player)がスキップ可能な要素をユーザーインターフェイス内で表示してよい(May)ようにするために、(対応するNCX内のsmilCustomTest
を通じて)それぞれの要素のリソースファイルエントリを供給しなければならない(Must)。
customTest
要素のdefaultState
の値は、DTBの全てのSMILファイルで同じでなければならない(Must)。
override
属性の推奨される値は "visible" である。これは、SMIL 2仕様で規定される初期値に反していることに注意すること。上述の<customTest>
の説明を参照すること。
ユーザー(User)がグローバルナビゲーション(Global navigation)を通じて直接、無効にされたスキップ可能な要素に移動する場合、プレーヤー(Player)は現在の状態を無視し、その要素のコンテンツをレンダリングするべきである(Should)。
セクション8.5 「どのようにNCXが機能するのか」は、ユーザー(User)に効率的なプレゼンテーションを提示するために、スキップ可能な構造上の情報がNCX内でどのように集約されているのかについて説明している。
(このセクションは規範的である(Normative)。)
DTBが複数のメディアユニット(Media Unit)(例えば、CD-ROMディスクなど)にまたがるとき、SMILファイルをレンダリングすることが要求される全てのファイルは、そのSMILファイルと同じメディアユニット(Media Unit)上に存在しなくてはならない(Must)。この要件は、プレーヤー(Player)が完全なDTBプレゼンテーションを提供するためにSMILファイルの位置を追跡するだけでよいことを保証する。
(このセクションは規範的である(Normative)。)
リンク (つまり、href
属性と一緒になった<a>
(アンカー)要素)がDTBのテキストコンテンツファイル(Textual Content File)に存在する場合、対応するSMILファイルにそれらが含まれなくてはならない(Must)。テキストコンテンツとSMILファイル内の関連リンクは、テキストコンテンツとSMILファイル内のそれぞれの同じ情報を指し示さなければならない(Must)。具体的には、SMILリンク先であるSMILの時間コンテナのidが、テキストリンク先であるテキスト要素上のsmilref属性と同じでなければならない(Must)。アンカーの入れ子は禁止されている。リンクの初期設定の動作は、少なくともそれに含まれるオブジェクトが持続する期間はアクティブであることである。プレイヤー(Player)は他の動作を確立してもよい(May)(例えば、予め定めた時間 (可能であればユーザー(User)が変更可能であること)または次のリンクが現れるまでアクティブ状態でリンクを維持するなど)。
外部リンクはDTBの一部ではないメディアコンテンツを指し示している。そのようなリンクは、<a>
要素のexternal
属性によって外部リンクとして識別されなければならない(Must)。external
属性の初期値は"false"である。DTBプレーヤがそのコンテンツをレンダリング可能であろうとなかろうと、外部メディアコンテンツは、外部アプリケーションによってレンダリングされなければならない(Must)。
(このセクションは規範的である(Normative)。)
この規格では、SMIL 2.0 Basic Layout 構文のみを使用できる(つまり、 CSS2構文その他を使用することが認められていない。)。
(このセクションは規範的である(Normative)。)
各par
は text
、audio
、image
、そしてseq
をそれぞれたった1つずつ格納することができる。この議題に関するより詳しい議論については、セクション 7.4.10 「テキストのみのDTB」を参照すること。
テキストコンテンツファイル(Textual Content File)と音声ファイルの両方が存在する場合は、同じpar
内にあるtext
とaudio
オブジェクトは両方とも資料の同じボディ(例えば、同じパラグラフなど)を表現しなくてはならない(Must)。
ポータブルDTBプレーヤー(Player)にはリソースに制約があるためため、複数の音声メディアオブジェクトが同時にレンダリングされるようなSMILプレゼンテーションを作成してはならない(Must Not)。リーディングシステムは、複数の音声ファイルの同時レンダリングをサポートすることは求められていない。
(このセクションは規範的である(Normative)。)
リンクは、ターゲットとして対応するnote
とannotation
ともに、全てのnoteref
とannoref
のメディアオブジェクト(通常はaudio
)に適用されることが強く推奨される。リンクの存在は、noteref
がオン、 note
がオフの時にnote
へのアクセスが容易になるなどの機能をキープレーヤー(Player)が持つことを可能とする。
初期設定、つまり、noteref
とnote
の(シンプルなプレーヤー(Player)上の)線形のプレゼンテーションがnote
リファレンスとnote
をレンダリングするための製作エージェンシーのポリシーに適切な順序と位置にあるようにするために、noteref
とnote
がSMIL内で実装されることが推奨される。
(このセクションは参考情報である(Informative)。)
画像表示の継続時間は、最長のメディアオブジェクトまたは同じ par
に格納される時間コンテナのそれに等しくなるだろう。以下の例7.2は、画像とそれに関係付けられたキャプションと製作者ノートのSMILの実装例を示している。
(このセクションは規範的である(Normative)。)
テキストのみのDTBはSMILファイルを持たなくてはならない(Must)。これは、ユーザー(User)がSMILで有効になっている多くの機能にアクセスすることを保証する。上で言及されているように、SMILファイルはテキストコンテンツファイル(Textual Content File)の粒度と一致する粒度を持つことが強く推奨される。
音声資料を持たないDTBでは、text
メディアオブジェクトの持続時間は、ユーザー(User)によって制御される(つまり、プレーヤー(Player)がコマンド上の次のtext
オブジェクトをレンダリングする)か、またはプレーヤー(Player)(例えば、テキスト音声合成エンジン、大活字に用いるペーシングアルゴリズム、点字ディスプレイなどが次のメディアオブジェクトのトリガーになるなど)によって制御される。
(このセクションは規範的である(Normative)。)
製作者は、ユーザー(User)が再生(Playback)を再開するアクションをとるまで一時停止するDTBプレゼンテーションを持つコンテンツを作成してもよい(May)。この一時停止は製作者によって使用されていもよい(May)。例えば、練習問題をしたり、コンテンツに関係する物理モデルを調査する時間をユーザー(User)に提供する場合などである。
製作者は任意に、時間コンテナのための最大のアクティブ持続期間を指定してもよい(May)。このアクティブ持続期間は、ユーザー(User)が再生(Playback)を直接再開しない場合に、製作者がDTBが再生(Playback)を再開する前に一時停止を希望する追加の時間を、コンテンツの単純持続時間に加えたものである。
この目的のために作成されたコンテンツは、少なくとも1つの子の時間コンテナ(seq
またはpar
)を格納する1つのseq
要素で構成される。そして、親のseq
は end
属性値 "DTBuserResume"を持ち、任意で持続時間の情報を持つ。持続時間が指定されない限り、このend
属性値を持つ時間コンテナが無期限の持続時間を持つことになるだろう。ユーザー(User)によるDTBuserResumeの呼び出しによってまたは指定された持続時間の終点に到達した時のみ終了する。プレイヤー(Player)は子のメディアオブジェクトの内容を提示し、DTBuserResumeの発生または存在するなら指定された持続期間の終了を待つ。end
の値の構文については、セクション7.8「End属性値」を参照すること。
製作者による一時停止をサポートしていないプレーヤー(Player)はend
イベントとそれに続く再生を無視するだろう。
例 7.5 と例7.6を参照すること。
(このセクションは規範的である(Normative)。)
メタデータは<meta>
要素を使用して<head>
要素内に含まれている。コンテンツの製作者は必要に応じて、以下に列挙している以外のその他のメタデータを導入してもよい(May)。しかし、この規格で定義されてない限り、メタデータ名は接頭辞"dtb:"で初めてはならない(Shall Not)。プレイヤー(Player)は、未知のメタデータに遭遇した時に処理を失敗してはならない(Must Not)。少なくともそれを無視しなければならない(Must)。
dc:Identifier
要素の値と同じである。セクション3.1「パッケージの識別
」を参照すること(このセクションは参考情報である(Informative)。)
次の例は、head
の使用例とその内容を示している。meta
要素の3つのインスタンスは、DTBの一意のid、このSMILファイルを生成したツール、そして、ファイルの開始点までの経過時間を格納する。 region="text"
またはregion="notes"
を持つテキスト要素の視覚的表示位置はlayout
内のregion
によって指定される。テキスト領域が画面の大部分を占めている("text"領域の下端は、全体的なレンダリングウィンドウの下部から15%である)。ノート領域はその底部のみ15%を占めている。customAttributes
は customTest="notes"
またはcustomTest="prodnotes"
付の時間コンテナは自動的に再生されれ、customTest="pagenum"
付の時間コンテナは、初期設定でスキップされることを指し示している。再生(Playback)デバイスのユーザーインターフェイスがそれをサポートしているなら、ユーザー(User)はこれらの設定を変更することができる。
例7.1:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE smil PUBLIC "-//NISO//DTD dtbsmil 2005-1//EN" "http://www.daisy.org/z3986/2005/dtbsmil-2005-1.dtd"> <smil xmlns="http://www.w3.org/2001/SMIL20/"> <head> <meta name="dtb:uid" content="dk-dbb-4z0065" /> <meta name="dtb:generator" content="smilgen2.4" /> <meta name="dtb:totalElapsedTime" content="01:33:56.233" /> <layout> <region id="text" top="0%" left="0%" right="0%" bottom="15%"/> <region id="notes" top="85%" left="0%" right="0%" bottom="0%"/> </layout> <customAttributes> <customTest id="pagenum" defaultState="false" override="visible"/> <customTest id="note" defaultState="true" override="visible"/> <customTest id="prodnote" defaultState="true" override="visible"/> </customAttributes> </head> <body> ... </body> </smil>
例 7.2は body
内のSMIL要素の使用例を示している。
各par
(1つのページ番号、1つの見出し、2つのパラグラフ、図が示されている)はテキスト、画像(該当する場合)と同時にレンダリングされるべき対応する音声クリップのセグメントが含まれている。図は、2つのパラグラフの間に入る。
画像ファイルは、その図のキャプションと図を説明する製作者ノートのテキスト版と音声版が並行して提示される。グループ全体が、連続した2つのpar
と同時にレンダリングされた画像ファイルとともに1つのpar
でラップされる。
リンクは2つめのパラグラフのpar
を 「ラップ」している。
例7.2:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE smil PUBLIC "-//NISO//DTD dtbsmil 2005-1//EN" "http://www.daisy.org/z3986/2005/dtbsmil-2005-1.dtd"> <smil xmlns="http://www.w3.org/2001/SMIL20/"> <head> .... </head> <body> <seq id="baseseq" > <par id="p1" customTest="pagenum"> <text region="text" src="rs.xml#pg_1" /> <audio src="rs_fwdx.mp3" clipBegin="00:00:00" clipEnd="00:00:00.91" /> </par> <par id="h1"> <text region="text" src="rs.xml#h1_1" /> <audio src="rs_fwdx.mp3" clipBegin="00:00:01.62" clipEnd="00:00:02.53" /> </par> <par id="para1"> <text region="text" src="rs.xml#para_1" /> <audio src="rs_fwdx.mp3" clipBegin="00:00:03.51" clipEnd="00:01:45.36" /> </par> <par id="img1"> <img region="image" src="fig1.png" /> <seq id="icap1"> <par id="cap1"> <text region="caption" src="rs.xml#caption_1" /> <audio src="rs_fwdx.mp3" clipBegin="00:01:45.98" clipEnd="00:01:52.66" /> </par> <par id="pnote1" customTest="prodnote" class="prodnote"> <text region="text" src="rs.xml#prodnote_1" /> <audio src="rs_fwdx.mp3" clipBegin="00:01:53.08" clipEnd="00:02:55.34" /> </par> </seq> </par> <a href="rs12.smil#h2_9"> <par id="para2"> <text region="text" src="rs.xml#para_2" /> <audio src="rs_fwdx.mp3" clipBegin="00:02:56.21" clipEnd="00:04:03.75" /> </par> </a> ... </seq> </body> </smil>
複数のセグメントを格納するノートまたはサイドバーは、1つのseq
でラップされる連続したpar
として表現されるだろう。そのため、ユーザー(User)は全体のシーケンスをスキップすることができる。例7.3の最初の部分は、この状況を示している。さらに、パラグラフの中間部分のノートリファレンスは、ノートリファレンスまたはノートの有無に関わらず、再生(Playback)デバイスが適切にコンテンツをレンダリングできるようにするためのこの特別な構文を要求するだろう。
例7.3の後半では、最初のpar
が(テキストコンテンツファイル(Textual Content File)内の1つのspan
要素で識別される)ノートリファレンスに先行するパラグラフ120の一部を格納している。2番目のpar
はノートリファレンスそのものを保持している(つまり、"footnote 1")。3番目のpar
はfootnote1のコンテンツを格納し、最後のそれはパラグラフ120の残りを保持している。その seq
と各par
は一意のid
を格納することに注意すること。テキストまたはノート領域のいずれかにおいて各セグメントが表示されるかどうかをtext
上のregion
属性が制御する。
例 7.3:
... <body> <seq id="baseseq" > ... (a series of pars) <seq id="sidebar_1" customTest="sidebar"> <par id="para_9"> <text region="text" src="rs.xml#para_9" /> <audio src="rs_fwdx.mp3" clipBegin="02:02.711" clipEnd="02:14.678" /> </par> <par id="para_10"> <text region="text" src="rs.xml#para_10" /> <audio src="rs_fwdx.mp3" clipBegin="02:15.545" clipEnd="02:44.612" /> </par> </seq> ... (a series of pars) <seq id="para_120"> <par id="span_3"> <text region="text" src="rs.xml#span_3" /> <audio src="rs_fwdx.mp3" clipBegin="46:58.744" clipEnd="47:21.659" /> </par> <par id="nref_1" customTest="noteref"> <text region="text" src="rs.xml#nref_1" /> <audio src="rs_fwdx.mp3" clipBegin="47:22.610" clipEnd="47:23.555" /> </par> <par id="ftn_1" customTest="note" class="note"> <text region="notes" src="rs.xml#ftn_1" /> <audio src="rs_notes.mp3" clipBegin="00:00.091" clipEnd="00:34.754" /> </par> <par id="span_4"> <text region="text" src="rs.xml#span_4" /> <audio src="rs_fwdx.mp3" clipBegin="47:24.057" clipEnd="47:582" /> </par> </seq> ... (a series of pars) </seq> </body> ....
次の例は、回避可能性ためのDTBuserEscapeとchildID.endの使用例を示している。id
sf0003を持つ par
に回避可能なコンテンツが格納されている。par
をラップするseq
は、DTBuserEscapeイベントが発生するか、通常の再生時間の後に子でid
としてsf0003 を持つ時間コンテナ(そのpar
)が終了した場合にseq
がいつ終わるか指定する1つのend
属性を持つ。
<seq id="fr003" end="DTBuserEscape;sf0003.end" customTest="prodnote" class="prodnote"> <par id="sf0003"> <text src="book02.xml#sf0003" /> <audio src="book02.mp3" clipBegin="npt=00:00:00" clipEnd="npt=00:00:11.5" /> </par> </seq>
次の例は製作者制御の一時停止のためのDTBuserResumeの使用例を示している。例の最初の部分で、1つの prodnote
は、補足的で物理的なモデルがこの本のプレゼンテーションのこのポイントで検査されることを読者(Reader)に指し示している。読書を再開する準備ができたら再生ボタンを押す指示がユーザー(User)に与えられる。指示が提示された後、ユーザー(User)が再生(Playback)を再開するキーを押すまで再生(Playback)は一時停止される。
<p id="sf0002">The water molecule is composed of one Oxygen and two Hydrogen atoms.</p> <prodnote id="sf0003">Please examine the model of the water molecule. Notice how the two Hydrogen atoms are a attached to the Oxygen atom. Press the resume key when you have finished to continue reading.</prodnote> <p id="sf0004">Heavy water is chemically the same as regular (light) water, but with the two hydrogen atoms replaced with deuterium atoms.</p>
例の2番目の部分で、対応するSMIL時間コンテナが示されている。id="sf0003"
を持つseq
では、end
属性は値としてDTBuserResume
を持ち、ユーザー(User)がDTBプレーヤー(Player)の再開キーをアクティブにするまでこの時間コンテナは終了しないことを指し示す。fill="freeze"
属性は、ユーザー(User)が再生(Playback)を再開するまで、強制的に(視覚的または点字によって)テキストを表示する機能を持つDTBプレーヤー(Player)にprodnote
のテキストを維持させるために指定される。
<par id="sf0002"> <text region="textRegion" src="chemtext.xml#sf0002" /> <audio src="chem002.mp3" clipBegin="00:00:00.00" clipEnd="00:00:04.00" /> </par> <seq id="sf0003" end="DTBuserResume" fill="freeze" customTest="prodnote" > <par id="sf0003a" > <text region="textRegion" src="chemtext.xml#sf0003" /> <audio src="chem002.mp3" clipBegin="00:00:04.08" clipEnd="00:00:16.00" /> </par> </seq> <par id="sf0004"> <text region="textRegion" src="chemtext.xml#sf0002" /> <audio src="chem002.mp3" clipBegin="00:00:16.08" clipEnd="00:00:25.00" /> </par>
例 7.6:
次の例では、製作者によって提供される一時停止に許される最大限の時間を製作者が適用している。ユーザー(User)が許された時間内にDTBuserResumeボタンをアクティブにしない場合、指定した時間の間隔が経過した後、再生(Playback)が再開される。id="sf0003"
を持つseq
では、end
属性は、値"DTBuserResume;sf0003a.end+00:01:00"
を持つ。このend
属性値は、DTBuserResumeがアクティブになる、あるいは子の時間コンテナ(sf0003a)の終点から1分が経過する、いずれか早い方が発生した時に、そのseq
が終了するということを定義する。これによって、再生(Playback)が自動的に再開される前に、モデルを確認する時間としてid="sf0003a"
を持つpar
の終点に続く1分間をユーザー(User)は持つことができる。
<seq id="sf0003" end="DTBuserResume;sf0003a.end+00:01:00" fill="freeze" customTest="prodnote" > <par id="sf0003a" > <text region="textRegion" src="chemtext.xml#sf0003" /> <audio src="chem002.mp3" clipBegin="00:00:04.08" clipEnd="00:00:16.00" /> </par> </seq>
SMIL 2.0 [SMIL]のセクション7.5.1「MediaClipping属性」は SMILのクリッピング属性とその値の構文を定義する。また、SMIL 2.0 [SMIL] Timing and Synchronization Module は、表現してよい(May)「クロック値」(タイミング)の複数の異なるフォーマットを説明している。そのモジュールのセクション10.3.1 にあるClock Valuesを参照すること。以下で制約されるように、再生(Playback)デバイスは、上記のセクションで説明する形式と構文をサポートしなくてはならない(Must)。3つのフォーマットは以下のとおり。
Full-clock-value(時間、分、秒、秒の小数点以下): 例えば、3:22:55.91(またはnpt = 3:22:55.91)
Full-clock-value(分、秒、秒の小数点以下): 例えば、43:15.044(またはnpt = 43:15.044)
Timecount値 (1桁以上 + 任意の小数 + 測定単位 -- h = 時間、min= 分、 s = 秒、 ms = ミリ秒): 例 34.6s (または npt=34.6s)、356ms (または npt=356ms)、58.214 (または npt=58.214)。(単位が示されていない場合のTimcount値の単位は、初期設定では秒の "s"である。)先頭と末尾の空白文字は無視されるが、空白の埋め込みはクロック値では認められない。
クリッピングおよびクロック値の構文は次のとおりである。
Clip-value-MediaClipping ::= [ "npt=" ] Clock-value Clock-value ::= ( Full-clock-value | Partial-clock-value | Timecount-value ) Full-clock-value ::= Hours ":" Minutes ":" Seconds ("." Fraction)? Partial-clock-value ::= Minutes ":" Seconds ("." Fraction)? Timecount-value ::= Timecount ("." Fraction)? (Metric)? Metric ::= "h" | "min" | "s" | "ms" Hours ::= DIGIT+; any positive number Minutes ::= 2DIGIT; range from 00 to 59 Seconds ::= 2DIGIT; range from 00 to 59 Fraction ::= DIGIT+ Timecount ::= DIGIT+ 2DIGIT ::= DIGIT DIGIT DIGIT ::= [0-9]
SMIL 2.0 のセクション 7.5.1「MediaClipping属性」にあるSMPTE構文は認められない。
クリップの継続時間は、正でなければならない(Must)。すなわち、clipEndのクロック値は、それに対応するclipBegin クロック値より大きくなければならない(must)。参照されるメディアファイルの持続時間より大きいクロック値を格納するclipEndはあってはならない(Shall Not)。
(このセクションは規範的である(Normative)。)
このセクションは、 回避可能性と製作者による一時停止をサポートする特定の目的のDTBのseq
要素で使用されるend
属性について、認められる値のセットを定義する。
end
属性は、時間コンテナのアクティブ状態の持続期間について追加の制御を提供する。認められるend
値は、記載される使用のみの特有のものであり、DTB内のその他の使用目的のための定義はされない。
回避可能性と製作者による一時停止をサポートするDTBプレーヤー(Player)は、次の値をサポートしなければならない(Must)。
End
値(このセクションは規範的である(Normative)。)
SMIL 2.0 勧告 [SMIL],のセクション10.3.1 "Attributes"は end
属性の値と値の構文を定義する。これらの値の次に挙げるサブセットをこの規格で使用することができる。
回避可能なコンテンツの値
DTBuserEscape;childId-value.end
製作者による一時停止の値
DTBuserResume(;childId-value.end + Clock-value)?
回避可能でもある製作者による一時停止の値
DTBuserEscape; DTBuserResume(;childId-value.end + Clock-value)?
childId-value
は end
属性が適用されたseq
の最後の子の時間のコンテナ のid
に由来する。
Clock-value
は、(もし存在するのであれば)製作者が指定する一時停止の長さを記述する。そして、認められる値は、セクション7.7「メディアクリッピングとクロック値」で定義されている。childId-value
で識別される時間コンテナが終了した時に一時停止時間が開始する。
end値のリストの説明は、次のセクション「アクティブな持続時間の計算」で 詳しく述べられている。
(このセクションは規範的である(Normative)。)
時間コンテナのアクティブな持続時間は、いずれかのend
値によって変更される、全ての子の時間コンテナとメディアオブジェクトの単純な持続時間として定義される。DTB プレーヤー(Player)はアクティブな持続時間を計算する。それは、end
値でDTBuserResumeが指定される時のみ無期限となる。end値のリストの場合、リストでの1つの値によって定義された条件の最初の発生が、時間コンテナのアクティブな持続時間の終了の信号を送るだろう。
(このセクションは規範的である(Normative)。)
ネストされた回避可能な構造の場合、動作を処理する初期設定のSMILイベントは、ネストされた時間コンテナの階層を上方に移動させるために、ネストされた構造の子において回避イベントの発生を引き起こし、トップレベルの回避可能な時間コンテナを終了させるだろう。リストがテーブルのセル内や別のリスト内にある場合のように、いくつかのケースでは、ユーザー(User)は現在の時間コンテナからの回避だけを望んでもよく(May)、ネストされた時間コンテナ階層の次の連続する要素に移動してもよい(May)。回避可能性を実装したDTBプレーヤー(Player)は、ネストされた回避可能な時間コンテナからの回避が、ネストされた階層全体から抜け出ることをなのか、現在位置する回避可能な構造からのみ回避することなのかを指定するオプションをユーザー(User)に提供するべきである(Should)。
(このセクションは参考情報である(Informative)。)
The Navigation Control file for XMLアプリケーション (NCX) は、それを通してユーザー(User)がナビゲートすることをできるようににするためにDTBの階層的な構造を明らかにする。NCXは、ドキュメントの主要な構造要素、つまり、部、章、節に直接ジャンプすることを読者(Reader)に可能にするという点で目次と似ている。しかし、NCXは多くの場合、コンテンツのオリジナルのプリント版の目次を入れるために出版者が選択するよりも多くのドキュメントの要素を格納するだろう。それは、PCユーザーに馴染みのある折りたたみ可能なツリーとして可視化することができる。マークアップテキストファイル全体を停止することなく、ドキュメントの主な構造要素への迅速なアクセスを提供するニーズが、その開発の動機になった。ドキュメントの主な構造要素は、全く存在しないことが多いかもしれない。ページ、フットノート、図、表などの他の要素は、別の非階層リストに含めることができ、同様にユーザー(User)がアクセスすることができる。
これらのナビゲーション機能がこれらを必要とするユーザー(User)の利便性の確保と、必要としない人に負担を生じさせないことを意図するものであることを強調することが重要である。NCXのナビゲーション機能を必要としないそれらのユーザー(User)は、本の単純な線形の再生(Playback)の代替が利用できるだろう。
(このセクションは規範的である(Normative)。)
全てのDTBはただ1つのNCXファイルを格納しなければならない(Must)。NCX ファイルは、ncx-2005-1.dtd (付録 1
"NCX DTD"を参照すること) に準拠した妥当なXMLドキュメントでなければならない(Must)。そして、セクション8.4の追加の規範的な要件を満たさなければならない(Must)。ファイル名の拡張子の要件については、セクション3.3 「Manifest」を参照すること。上記のDTDに記載された値を使用して、ncx
要素のversion
とxmlns
属性をドキュメントインスタンス内で明示的に指定しなければならない(Must)。エンティティ宣言は内部のDTDサブセット内に存在しなければならない(Must)。詳しくはセクション16.1「一般的なファイルの適合性要件」 を参照すること。
(このセクションは参考情報である(Informative)。)
以下はNCX要素の簡潔な説明である。それぞれの要素の説明には、適用可能な属性の説明とともに、NCX DTDより抜粋した要素宣言が含まれている。
<!ELEMENT ncx (head, docTitle, docAuthor*, navMap, pageList?, navList*)>
<ncx
...属性...>
...内容...</ncx>
<!ELEMENT head (smilCustomTest | meta)+>
<head>
...内容...</head>
<ncx>
id
、override
、そして、defaultState
)を持つだろう。そして、NCXはユーザー(User)に提示するために、SMILファイルで使用された全てのcustomTest要素を、defaultState
の設定ともに一カ所に集めている。SMIL内のcustomTest要素がセクション8.4.4「smilCustomTest要素」で定義される本の構造の1つを保持する時間コンテナに適用される時には、bookStruct属性が対応するsmilCustomTestに適用され、列挙されたリストの適切な値を格納しなくてはならない(Must)。<!ELEMENT smilCustomTest EMPTY>
<smilCustomTest
...属性.../>
<head>
<!ELEMENT meta EMPTY>
<meta
...属性... />
<head>
<!ELEMENT docTitle (text, audio?, img?)>
<docTitle
...属性... >
...内容... </docTitle>
<ncx>
doctitle
要素が存在する場合でも、NCX内のdocTitle
の内容と、テキストコンテンツファイル(Textual Content File)内のdoctitle
要素の内容との間には、特に求められる関係はない。<!ELEMENT docAuthor (text, audio?, img?)>
<docAuthor
...属性...>
...内容...</docAuthor>
<ncx>
docauthor
要素が存在する場合でも、NCX内のdocAuthor
の内容と、テキストコンテンツファイル(Textual Content File)内のdocauthor
要素の内容との間には、特に求められる関係はない。<docTitle>
または<docAuthor>
のテキスト、または<navLabel>
または<navInfo>
のテキストコンテンツを格納する。<!ELEMENT text (#PCDATA)>
<text
...属性...>
...内容...</text>
<navLabel>
、<docTitle>
、<docAuthor>
、<navInfo>
<docTitle>
または<docAuthor>
の音声クリップ、または<navLabel>
または<navInfo>
の音声コンテンツへのポインタを格納する。<!ELEMENT audio EMPTY>
<audio
...属性... />
<navLabel>
、<docTitle>
、<docAuthor>
、<navInfo>
<docTitle>
または<docAuthor>
と関連付けられたグラフィカルなコンテンツ、または<navLabel>
または<navInfo>
のグラフィカルなコンテンツへのポインタを格納する。
<!ELEMENT img EMPTY>
<img
...属性... />
<docTitle>
、<docAuthor>
、<navLabel>
、<navInfo>
<!ELEMENT navMap (navInfo*, navLabel*, navPoint+)>
<navMap
...属性...>
...内容...</navMap>
<ncx>
navMap
要素は、ドキュメントの主要な構造要素のそれぞれをポイントする一次的なナビゲーション情報を格納する。ページ番号はpageList
に格納されている。フットノートのような、その他の二次的なナビゲーション要素は、navMap
ではなく、 navList
に格納されている。<!ELEMENT navPoint (navLabel+, content, navPoint*)>
<navPoint
...属性...>
...内容...</navPoint>
navPoint
のコンテンツの位置を示す正整数。セクション8.4.3 「playOrder属性」を参照すること。<navMap>
、<navPoint>
navPoint
要素は、例えば、章名、節番号などのドキュメントの参照される部分を表現する1つ以上のnavLabel
をcontent
へのポイントといっしょに格納する。<navPoint>
はドキュメントの階層構造を表現するためにネストされてもよい(May)。<navMap>
、<navPoint>
、<pageList>
、<pageTarget>
、<navList>
または<navTarget>
を識別するラベルを格納する。<navPoint>
に適用される場合、一般的にドキュメントの参照されるセクションの見出しを格納している。ラベルは繰り返すことができるため、複数の言語で提供することができる。
<!ELEMENT navLabel (((text, audio?) | audio), img?)>
<navLabel
...属性...>
...内容...</navLabel>
<navMap>
、<navPoint>
、<pageList>
、<pageTarget>
、<navList>
、<navTarget>
<navMap>
、<pageList>
または <navList>
について参考情報となるコメントを格納する。複数の言語で提供可能にするために、コメントは繰り返すことができる。
<!ELEMENT navInfo (((text, audio?) | audio), img?)>
<navInfo
...属性...>
...内容...</navInfo>
<navMap>
、<pageList>
、<navList>
navLabel
はnavMap
、pageList
、navList
を識別する簡潔なラベルを格納するが、navInfo
は、これらのナビゲーション機能の構造や内容について、より長く、説明的な、または参考情報的なテキストを提示するために使用される。navPoint
またはnavTarget
によって参照されるSMILファイルのアイテムの開始点へのポインタ。
<!ELEMENT content EMPTY>
<content
...属性... />
<navPoint>
、<navTarget>
<!ELEMENT pageList (navInfo*, navLabel*, pageTarget+)>
<pageList
...属性...>
...内容...</pageList>
<ncx>
pageList
要素はpageTarget
内のページのナビゲーション情報を格納する。本の中のナビゲート可能な各ページは、pageList内の pageTargetによって表現されるだろう。<!ELEMENT pageTarget (navLabel+, content)>
<pageTarget
...属性...>
...内容...</pageTarget>
type
属性とvalue
属性の値の組み合わせは一意でなければならない(Must)。セクション8.4.5 「ページナビゲーションを有効にする
」を参照すること。pageTarget
によって表わさられるページの種類を記述する。値は次のうちの1つでなければならない(Must)。: "front" (本の開始がローマ数字のページ用)、"normal" (アラビア数字で識別されるページ用)、または "special" (その他の全てのページ用)。 pageTarget
のコンテンツの位置を示す正整数。セクション8.4.3 「playOrder属性」を参照すること。<pageList>
<!ELEMENT navList (navInfo*, navLabel+, navTarget+)>
<navList
...属性...>
...内容...</navList>
<ncx>
navList
要素は、navTarget
内の二次的なナビゲーション情報を格納する。 navTarget
はネストできないが、 navPoint
は可能である点を除いて、navMap
と同様である。ユーザー(User)が直接アクセスすることを望むかもしれないが、一次的なナビゲーション情報で提供するとごちゃごちゃする可能性があるフットノート、図、表などの要素のリストとして使用される。<!ELEMENT navTarget (navLabel+, content)>
<navTarget
...属性...>
...内容...</navTarget>
navTarget
に関係付けられた数値を表す正の整数。navList
内のアイテムの整数の値を提供することに有用である。navTarget
のコンテンツの位置を示す正整数。セクション8.4.3 「playOrder Attribute」を参照すること。<navList>
navTarget
要素はcontent
へのポインタともに、フットノートなどのドキュメントの参照される部分を表す1つ以上のnavLabel
を格納する。
このセクションでは、DTDによって強制できないNCXファイルのその他の規範的な要件をまとめている。
(このセクションは規範的である(Normative)。)
メタデータは、 meta
要素を使用して、NCX内の head
要素の中に含まれなくてはならない(Shall)。コンテンツの製作者は、必要に応じて以下に列挙したもの以外のメタデータを導入してもよい(May)。しかし、この規格で定義されていない限り、メタデータ名は接頭辞"dtb:"で始まってはならない(Shall Not) 。プレイヤー(Player)は、未知のメタデータに遭遇した時も処理を失敗してはならない(Must Not)。少なくともそれを無視しなければならない(Must)。
package
要素のunique-identifier
属性によって参照される dc:Identifier
要素のそれと同じである。セクション3.1「パッケージの識別」を参照すること。pageList
にあるpageTargets
の番号を示す負でない整数。ナビゲート可能なページがない場合は、dtb:totalPageCountの値は 0でなければならない(Must)。pageList
にある pageTarget
上の最大のvalue
属性を示す負でない整数。ナビゲート可能なページがない場合は、dtb:maxPageNumberの値は 0でなければならない(Must)。(このセクションは規範的である(Normative)。)
DTBが複数の配布メディア(例えば、複数のCD-ROMなど)にまたがる場合、NCXに直接参照される全ての音声クリップと画像とともに、完全なNCXがが全てのメディアユニット(Media Unit)に含まれていなければならない(Must)。これは、NCX全体がメディアの各部分で適切に機能することを保証する。
(このセクションは規範的である(Normative)。)
playOrder
属性はpageTarget
、navTarget
、そしてnavPoint
のそれぞれで求められる。playOrder
属性は、spine
とSMILファイルで表現されるように、本の通常の再生(Playback)の順序に反映する1つの正しい順序で全てのpageTarget
、 navTarget
及びnavPoint
を集める手段を提供する。playOrder
は正の整数である。ドキュメントの最初のplayOrder
の値は1でなければならない(Shall)。 pageTarget
、navTarget
、または navPoint
のcontent
要素が同じSMIL時間コンテナを参照する場合、同じplayOrder
の値を保持しなければならない(Must)。playOrder
は、pageTarget
、navTarget
またはnavPoint
によって参照されるそれぞれの一意のSMIL時間コンテナごとに1つずつ増えなければならない(Must)。
(このセクションは規範的である(Normative)。)
1つ以上のSMILファイルに現れ、かつ少なくとも1度は customTest
属性に参照されるそれぞれの一意のcustomTest
要素は、NCX内のhead
にあるsmilCustomTest
要素内に複製された3つの属性( id
、 override
、およびdefaultState
)を保持しなければならない(Must)。また、SMIL内の customTest
要素が以下で定義される本の構造の1つを保持する時間コンテナに適用される時には、対応するsmilCustomTest
にbookStruct
属性が適用され、以下のリストの適切な値を格納しなくてはならない(Must)。
以下の特別な語彙は、列挙されたスキップ可能な要素のセマンティクスを識別するために提供される。製作者は、全てのスキップ可能な要素用にリソースファイルのエントリを提供することが求められる。セクション7.4.3「スキップ可能な構造」と例10.1を参照すること。リソースファイルを使用することができないプレイヤー(Player)は、(サポートされているなら)テキストとここで一覧されているアイテムごとの音声ラベルを提供しなければならない(Must)。リソースファイルを利用可能なプレイヤー(Player)は、プレイヤー(Player)で埋め込まれたラベルに優先して、DTBといっしょに提供されるリソースをレンダリングしなければならない(Must)。
(このセクションは規範的である(Normative)。)
ページへの数値による直接のアクセスを可能にするために、全てのpageTarget
にvalue
属性が適用されることが強く推奨される。 value
は正の整数である。value
属性が存在する場合、type
属性とvalue
属性の値の組み合わせは、一意でなければならない(Must)。
ページ番号が、オリジナルのドキュメント内に存在する場合は、pageTarget
に対応するnavLabel
内のtext
要素がページ番号のテキストの表現を格納することを強く推奨する。英数字のページ番号が存在しているドキュメント内では、プレイヤー(Player)はページに直接アクセスするために、pageTarget
に関連したnavLabel
のtext
要素の内容を使用してもよい(May)。navLabel
は、ページ識別子の権威あるレンダリングとして扱われるべきである(Should)。
(このセクションは参考情報である(Informative)。)
DTBを開くと、プレーヤー(Player)は通常、ナビゲーションについてユーザー(User)の選択肢を定義するため、NCXのnavMap
を使用する。navMap
は、ドキュメントの主要な区分を表すネストされたnavPoint
を格納する。例えば、セクション 8.6で示されるNCXを持つ例8.1の本の構造は以下のようになる。
ForewordとStandardsは、このケースでは同じレベルで、もっとも高いレベルであるLevel 1である。 navPoint
のネストによって、ユーザー(User)は、最も低いレベルの区分を経由することなく、これらのオブジェクトの間を直接移動することができる。Forewordからユーザー(User)は Level 2 に移動し、 Forewordのどのセクションにも移動することができる。 Foreword下には Level 3がないため、NCXからより小さな区分に移動することはできない。そのようなより小さな区分が存在するかもしれないが、ローカルナビゲーション(Local navigation)を通してのみアクセスができる。Standards の区分は Level 4が"a"でマークされ、"1 Core Services" と"1.1."を通して到達することができる。
また、例えば、ページ、フットノート、サイドバーなど、ドキュメントの階層構造に容易に収まらないアイテムにユーザー(User)はナビゲートするオプションも持つ。この機能は、pageList
(ページ用)とnavList
(他の全ての非階層オブジェクト用)によって提供される。navMap
と異なり、pageList
とnavList
はネストできない。例8.1は、ページ番号を表す3つのpageTarget
を格納するpageList
と、ノートを表す3つのnavTarget
を格納するnavList
を示している。
navInfo
要素で、製作者はnavMap
、 pageList
、そして、navList
の内容、目的、使用方法についてある程度詳細に説明することができる。以下の例8.1のnavList
を参照すること。
それぞれのnavPoint
、pageTarget
まはたnavTarget
が章、見出し、節番号、ページ番号、図などのドキュメントの一部についてのナビゲーション情報を提供する。navLabel
要素は、複数のメディアで見出し、ページ番号、図タイトルなどの内容を提供する。navLabel
内で、text
要素は、視覚的プレゼンテーション、点字によるプレゼンテーション、またはテキスト音声合成のプレゼンテーションのために実際の見出し、ページ番号などを格納する。 audio
要素は、同じ情報の音声プレゼンテーションを格納するクリップを指し示すためにSMIL2.0構文を使用する。1つまたは両方は、ユーザー(User)への位置フィードバックを与えるために使用される。content
要素は、DTBの参照された部分の開始点をマークするSMILファイル内のIDへのポインタを提供する。
pageTarget
、 navTarget
とnavPoint
で求められるplayOrder
属性によって、navMap
内でのpageList
とnavList
の同期が可能になる。ユーザー(User)からの「ここはどこ?」(現在位置の確認)という要求に対して何と言うべきかを決定する際に、プレーヤー(Player)は、最も最近スキャンされたnavPoint
、pageTarget
またはnavTarget
のplayOrder
属性値と同じかより小さいもののうち、最も大きなplayOrder
属性値を持つnavPoint
を見つけることによって現在のnavMap
の位置を見つけることができる。同様に、プレーヤー(Player)は、最も最近スキャンされたnavPoint
、pageTarget
またはnavTarget
のplayOrder
属性の値と同じかより小さいplayOrder
属性値を持つpageTarget
を探すことによって現在のページを決定することができる。
この規格は、製作者に SMILファイルにある全てのスキップ可能な要素に関する情報をNCXのhead
に集約する機能を提供している。(セクション7.4.3 「スキップ可能な構造」を参照すること。)。 smilCustomTest
要素は、全てのスキップ可能な要素とそのdefaultStatesを一覧するために繰り返されてもよい。再生システム(Playback System)は、スキップ可能な構造のためのオプションや現在の設定を読者(Reader)に知らせるためにこの情報を使用してもよい。
(この例は、参考情報である(Informative)。)
例 8.1:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> <ncx version="2005-1" xml:lang="en" xmlns="http://www.daisy.org/z3986/2005/ncx/"> <head> <smilCustomTest id="pagenum" defaultState="false" override="visible" bookStruct="PAGE_NUMBER"/> <smilCustomTest id="note" defaultState="true" override="visible" bookStruct="NOTE"/> <meta name="dtb:uid" content="us-nls-00001"/> <meta name="dtb:depth" content="6"/> <meta name="dtb:generator" content="NLSv001"/> <meta name="dtb:totalPageCount" content="53"/> <meta name="dtb:maxPageNumber" content="49"/> </head> <docTitle> <text>Revised Standards and Guidelines of Service for the Library of Congress Network of Libraries for the Blind and Physically Handicapped 1995</text> <audio src="rs_title.mp3" clipBegin="00:00.00" clipEnd="00:09.04"/> <img src="rs_title.png" /> </docTitle> <docAuthor> <text>Association of Specialized and Cooperative Library Agencies</text> <audio src="rs_title.mp3" clipBegin="00:09.50" clipEnd="00:14.70"/> </docAuthor> <navMap> <navPoint class="chapter" id="lvl1_3" playOrder="2"> <navLabel> <text>Foreword</text> <audio src="rs_fwdx.mp3" clipBegin="00:01.50" clipEnd="00:02.00" /> </navLabel> <content src="sample.smil#h1_3" /> <navPoint class="section" id="lvl2_1" playOrder="3"> <navLabel> <text>History</text> <audio src="rs_fwdx.mp3" clipBegin="00:03.40" clipEnd="00:03.90" /> </navLabel> <content src="sample.smil#h2_1" /> </navPoint> <navPoint class="section" id="lvl2_2" playOrder="5"> <navLabel> <text>Development of Standards</text> <audio src="rs_fwdx.mp3" clipBegin="00:56.30" clipEnd="00:57.70" /> </navLabel> <content src="sample.smil#h2_2" /> </navPoint> </navPoint> <navPoint class="chapter" id="lvl1_7" playOrder="10"> <navLabel> <text>Standards</text> <audio src="rs_stdx.mp3" clipBegin="00:01.30" clipEnd="00:02.10" /> </navLabel> <content src="sample.smil#h1_7" /> <navPoint class="section" id="lvl2_11" playOrder="11"> <navLabel> <text>1 Core Services</text> <audio src="rs_stdx.mp3" clipBegin="00:02.90" clipEnd="00:04.90" /> </navLabel> <content src="sample.smil#h2_10" /> <navPoint class="subsection" id="lvl3_1" playOrder="12"> <navLabel> <text>1.1</text> <audio src="rs_stdx.mp3" clipBegin="00:05.70" clipEnd="00:06.70" /> </navLabel> <content src="sample.smil#h3_1" /> <navPoint class="sub-subsection" id="lvl4_1" playOrder="13"> <navLabel> <text>a.</text> <audio src="rs_stdx.mp3" clipBegin="00:18.70" clipEnd="00:19.10" /> </navLabel> <content src="sample.smil#h4_1" /> </navPoint> </navPoint> <navPoint class="subsection" id="lvl3_2" playOrder="14"> <navLabel> <text>1.2</text> <audio src="rs_stdx.mp3" clipBegin="00:50.50" clipEnd="00:51.40" /> </navLabel> <content src="sample.smil#h3_2" /> </navPoint> </navPoint> </navPoint> . . . </navMap> <pageList id="pages"> <navLabel> <text>Pages</text> <audio src="navlabels.mp3" clipBegin="00:00.00" clipEnd="00:01.10" /> </navLabel> <pageTarget class="pagenum" type="normal" id="p1" value="1" playOrder="1"> <navLabel> <text>1</text> <audio src="rs_fwdx.mp3" clipBegin="00:00.00" clipEnd="00:00.90" /> </navLabel> <content src="sample.smil#p1" /> </pageTarget> <pageTarget class="pagenum" type="normal" id="p2" value="2" playOrder="4"> <navLabel> <text>2</text> <audio src="rs_fwdx.mp3" clipBegin="00:53.90" clipEnd="00:54.60" /> </navLabel> <content src="sample.smil#p2" /> </pageTarget> <pageTarget class="pagenum" type="normal" id="p3" value="3" playOrder="9"> <navLabel> <text>3</text> <audio src="rs_stdx.mp3" clipBegin="00:00.00" clipEnd="00:00.70" /> </navLabel> <content src="sample.smil#p3" /> </pageTarget> . . . </pageList> <navList id="notes" class="note"> <navInfo> <text>This list contains the three notes found in this book. Each entry in the list, numbered 1 through 3, points to a note reference. </text> <audio src="rs_info.mp3" clipBegin="00:00.00" clipEnd="00:05.592" /> </navInfo> <navLabel> <text>Notes</text> <audio src="navlabels.mp3" clipBegin="00:01.50" clipEnd="00:02.60" /> </navLabel> <navTarget class="note" id="nref_1" playOrder="6"> <navLabel> <text>1</text> <audio src="rs_fwdx.mp3" clipBegin="01:22.60" clipEnd="01:23.50" /> </navLabel> <content src="sample.smil#nref_1" /> </navTarget> <navTarget class="note" id="nref_2" playOrder="7"> <navLabel> <text>2</text> <audio src="rs_fwdx.mp3" clipBegin="02:00.60" clipEnd="02:01.40" /> </navLabel> <content src="sample.smil#nref_2" /> </navTarget> <navTarget class="note" id="nref_3" playOrder="8"> <navLabel> <text>3</text> <audio src="rs_fwdx.mp3" clipBegin="03:13.30" clipEnd="03:14.10" /> </navLabel> <content src="sample.smil#nref_3" /> </navTarget> </navList> </ncx>
(このセクションは規範的である(Normative)。)
この規格は、ブックマークとハイライトのエキスポートとインポートをサポートするために明確なXMLファイルフォーマットを定める。再生システム(Playback System)は、読者(Reader)が、ブックマークの設定、ドキュメント内である一節のハイライト、マークされたセクションへのテキストや音声ノートでのラベルを付与、そして、結果として生じたマークやノートのコレクションの準拠した他の再生(Playback)デバイスへのエクスポートをできるようにしてもよい(May)。
この規格は、準拠したプレーヤー(Player)に上記の機能全てのサポートを求めてはいない。また、この規格は、ブックマークファイルの情報を保存または操作するための再生システム(Playback System)の内部システムについて制約を設けていない。しかし、もしプレーヤー(Player)がブックマークとハイライトとそれに関係付けられたノートのエクスポートをサポートするのであれば、そのプレーヤー(Player)はその情報をbookmark-2005-1.dtdに準拠した妥当な XMLファイルとしてフォーマットしなければならない(Must)。(付録 1"DTD for Portable Bookmarks/Highlights"を参照すること)。同様に、ブックマーク/ハイライトのインポート機能を持つプレイヤー(Player)は、bookmark-2005-1.dtdに従ってフォーマットされたブックマークとハイライトとそれに関係付けられたノートを正しく処理しなければならない(Must)。
エクスポートして持ち出すことが可能なプレーヤー(Player)は、の位置が音声プレゼンテーション内かテキストコンテンツファイル(Textual Content File)内にあるかに関わらず、DTBの任意の場所でブックマークとハイライトの開始点と終点を設定できなければならない(Must)。つまり、プレイヤー(Player)は要素境界のみに位置情報の取得が限定されていはならない(Shall Not)。音声プレゼンテーション内の要素境界からのオフセットは、URIで参照されるSMIL時間コンテナの開始点と相対的なクロック値を持つ<timeOffset>
で識別されなければならない(Shall)。値の構文は、SMIL 2.0 Timing and Synchronization Module[SMIL]
で定義されている。 セクション7.7「メディアクリッピングとクロック値
」を参照すること。テキストコンテンツファイル(Textual Content File)内の要素境界からのオフセットは、参照された要素の内容の先頭から数え上げた文字数で測定された<charOffset>
によって識別されなければならない(Shall)。start- と end-タグはカウントされない。空白は正規化される(1文字に置き換えられる)。
再生(Playback)デバイスが、エクスポートされてもよい(May)ブックマークやハイライトの音声ノートのユーザー(User)録音をサポートする場合、その録音はこの規格でサポートされている任意の形式で行われてもよい(May)。ノートのファイル名を生成する時、再生(Playback)デバイスは、録音形式に適切なファイル名の拡張子を生成しなければならない(Must)。(対応している形式については、セクション5「音声ファイル形式」、ファイル名の拡張子の要件については、セクション3.3「Manifest」を参照すること。 )
ブックマークファイルは、初期設定ではブックマークの要素uid
の値と拡張子 ".bmk"と一緒に名付けられなければならない(Shall)。例えば、"SE-TPB-14339.bmk"である。プレイヤー(Player)は、ユーザー(User)が他のファイルシステムでの文字制限に適用させたり、ファイル名の衝突を防ぐために独自のファイル名を採用することを認めてもよい(May)。ユーザー(User)が指定する名前に適用するために、ブックマークのインポート機能を備えたプレーヤー(Player)は、正しいブックマークファイルをDTBとマッチさせるためにブックマークファイルを開き、uid
を読み取ることができなければならない(Must)。1つのDTBに1つ以上のブックマークファイルが存在する場合は、プレーヤー(Player)はユーザー(User)がそれらのうちから1つを選択できるようにすることが推奨される。
ユーザー(User)がステップ実行したり、それらのグループから選択することができるようにするために、プレイヤー(Player)は、ナンバリンク、ブックマークの識別、またはある部分のハイライトのために様々なシステムを実装してもよい(May)。しかし、エクスポート用のブックマークファイルを作成する時に、プレイヤー(Player)はブックマークとハイライトをドキュメントの順番にソートし、その順番でそれらを記述しなければならない(Must)。
(このセクションは参考情報である(Informative)。)
次はブックマーク/ハイライト要素の簡潔な説明である。それぞれの要素の説明には、適用可能な属性の説明とともに、Bookmark DTD(付録 1を参照すること)より抜粋した要素宣言が含まれている。
<!ELEMENT bookmarkSet (title, uid, lastmark?, (bookmark | hilite)*) >
<bookmarkSet>
...内容...</bookmarkSet>
<!ELEMENT title (text, audio?) >
<title>
...内容...</title>
<bookmarkSet>
<!ELEMENT text (#PCDATA)>
<text>
...内容...</text>
<title>
、 <note>
<!ELEMENT audio EMPTY >
<audio
...属性... />
clipBegin
属性はメディアオブジェクトファイルの開始点からの時間オフセットとして連続的なメディアオブジェクトファイルの区分の開始点を指定する。値の構文は、SMIL 2.0 Timing and Synchronization Module[SMIL]によって定義される。
セクション7.7「メディアクリッピングとクロック値」を参照すること。clipEnd
属性はメディアオブジェクトファイルの開始点からの時間オフセットとして連続的なメディアオブジェクトファイルの区分の終点を指定する。clipBegin
と同じ属性値の構文を使用する。<title>
、 <note>
package
要素の"unique-identifier"属性によって参照されるdc:Identifier
と一致する。セクション3.1「パッケージの識別」を参照すること。<!ELEMENT uid (#PCDATA) >
<uid>
...内容...</uid>
<bookmarkSet>
<par>
要素または<seq>
要素のid属性を指し示す1つのURIで構成される。<!ELEMENT lastmark (ncxRef, URI, ((timeOffset, charOffset?)| charOffset)) >
<lastmark>
...内容...</lastmark>
<bookmarkSet>
<lastmark>
が自動的にセットされる。navPoint
のid)を取り込む。ユーザー(User)によって発行されたグローバルナビゲーション(Global navigation)コマンドが現在の位置から開始するようにするため、ラストマーク、ブックマーク、ハイライトに移動後、NCXとSMILにおける現在の位置が同期することを保証する。<!ELEMENT ncxRef (#PCDATA)>
<ncxRef>
...内容...</ncxRef>
<lastmark>
、<bookmark>
、<hiliteStart>
、<hiliteEnd>
<lastmark>
、<bookmark>
、<hiliteStart>
または<hiliteEnd>
を格納するSMIL内の<par>
または<seq>
のidへのポインタ。<!ELEMENT URI (#PCDATA)>
<URI>
...内容...</URI>
<lastmark>
、<bookmark>
、<hiliteStart>
,
<hiliteEnd>
<lastmark>
、<bookmark>
、<hiliteStart>
または<hiliteEnd>
の正確な位置(URIで参照されるSMIL時間コンテナの開始点と関連する負でないクロック値)。値の構文はSMIL 2.0 Timing and Synchronization Module [SMIL]
によって定義される。 セクション7.7「クロック値」を参照すること。<!ELEMENT timeOffset (#PCDATA) >
<timeOffset>
...内容 (構文については、セクション7.7「クロック値」を参照すること)...</timeOffset>
<lastmark>
、<bookmark>
、<hiliteStart>
、<hiliteEnd>
bookmark
、lastmark
、hiliteStart
またはhiliteEnd
の正確な位置。<charOffset>
の値の計算に関する情報については、セクション9.1 「はじめに」を参照すること。<!ELEMENT charOffset (#PCDATA) >
<charOffset>
...内容...</charOffset>
<lastmark>
、<bookmark>
、<hiliteStart>
、<hiliteEnd>
<par>
要素または<seq>
要素のid属性を指し示す1つのURIで構成される。<!ELEMENT bookmark (ncxRef, URI, ((timeOffset, charOffset?)| charOffset)), note?) >
<bookmark>
...内容...</bookmark>
<bookmarkSet>
<!ELEMENT note (text?, audio?) >
<note>
...内容...</note>
<hilite>
、<bookmark>
<notes>
の録音をサポートする再生(Playback)デバイスが、この規格で認められた全てのコーデックによる録音をサポートする必要はない。<!ELEMENT hilite (hiliteStart, hiliteEnd, note?) >
<hilite>
...内容...</hilite>
<bookmarkSet>
<par>
要素または<seq>
要素のid属性を指し示す1つのURIで構成される。<!ELEMENT hiliteStart (ncxRef, URI, ((timeOffset, charOffset?)| charOffset)) >
<hiliteStart>
...内容...</hiliteStart>
<hilite>
<par>
要素または<seq>
要素のid属性を指し示す1つのURIで構成される。<!ELEMENT hiliteEnd (ncxRef, URI, ((timeOffset, charOffset?)| charOffset)) >
<hiliteEnd>
...内容...</hiliteEnd>
<hilite>
(このセクションは参考情報である(Informative)。)
例9.1では、読者(Reader)は、2つのブックマークをセットしている。1つは第1章のパラグラフ8の開始から22秒後、もう1つは第3章のパラグラフ12の開始から1分28秒である。読者(Reader)は、2番目のブックマークにテキストノート"Atlanta burns"を追加している。ユーザー(User)は、パラグラフ1の開始点に始まりパラグラフ6の開始後4分6秒に終わる第4章冒頭の一節に、10秒間の音声コメントによるラベルを付けてハイライトもしている。読者(Reader)は、最後に( <lastmark>
によって示されているように)第5章パラグラフ23で読書をやめている。このブックマークファイルの初期設定でのファイル名は "us-rfbd-JT065.bmk"になる。
例9.1:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE bookmarkSet PUBLIC "-//NISO//DTD bookmark 2005-1//EN" "http://www.daisy.org/z3986/2005/bookmark-2005-1.dtd"> <bookmarkSet xmlns="http://www.daisy.org/z3986/2005/bookmark/"> <title> <text>Gone with the Wind</text> <audio src="gwtw_title.mp3" /> </title> <uid>us-rfbd-JT065</uid> <lastmark> <ncxRef>gwtw.ncx#lvl1_5</ncxRef> <URI>gwtw_ch5.smil#para023</URI> <timeOffset>03:52.00</timeOffset> </lastmark> <bookmark> <ncxRef>gwtw.ncx#lvl1_1</ncxRef> <URI>gwtw_ch1.smil#para008</URI> <timeOffset>00:22.00</timeOffset> </bookmark> <bookmark> <ncxRef>gwtw.ncx#lvl1_3</ncxRef> <URI>gwtw_ch3.smil#para012</URI> <timeOffset>01:28.00</timeOffset> <note> <text>Atlanta burns.</text> </note> </bookmark> <hilite> <hiliteStart> <ncxRef>gwtw.ncx#lvl1_4</ncxRef> <URI>gwtw_ch4.smil#para001</URI> <timeOffset>00:00.00</timeOffset> </hiliteStart> <hiliteEnd> <ncxRef>gwtw.ncx#lvl1_4</ncxRef> <URI>gwtw_ch4.smil#para006</URI> <timeOffset>04:06.00</timeOffset> </hiliteEnd> <note> <audio src="us-rfbd-JT065.wav" clipBegin="00:00.00" clipEnd="00:10.00" /> </note> </hilite> </bookmarkSet>
例9.2は、読者(Reader)が最後にパラグラフ297の開始点から130文字のところで読書をやめたテキストのみのファイルを示している。
例 9.2:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE bookmarkSet PUBLIC "-//NISO//DTD bookmark 2005-1//EN" "http://www.daisy.org/z3986/2005/bookmark-2005-1.dtd"> <bookmarkSet xmlns="http://www.daisy.org/z3986/2005/bookmark/"> <title> <text>Chemistry Today</text> </title> <uid>uk-rnib-MM499</uid> <lastmark> <ncxRef>chemtd.ncx#lvl1_3</ncxRef> <URI>chemtd.smil#para297</URI> <charOffset>130</charOffset> </lastmark> </bookmarkSet>
例9.3はtimeOffsetとcharOffsetとの両方でテキストやオーディオブックのラストマークを示している。
例 9.3:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE bookmarkSet PUBLIC "-//NISO//DTD bookmark 2005-1//EN" "http://www.daisy.org/z3986/2005/bookmark-2005-1.dtd"> <bookmarkSet xmlns="http://www.daisy.org/z3986/2005/bookmark/"> <title> <text>Physics Yesterday</text> </title> <uid>uk-rnib-MM498</uid> <lastmark> <ncxRef>physyd.ncx#lvl1_5</ncxRef> <URI>physyd.smil#para_573</URI> <timeOffset>02:01.00</timeOffset> <charOffset>250</charOffset> </lastmark> </bookmarkSet>
(このセクションは参考情報である(Informative)。)
リソースファイルは、読者(Reader)がDTBを使用する際にその読者(Reader)を支援することができるテキスト及び/または音声セグメントと任意の画像を提供する。そのDTBで回避可能な構造またはスキップ可能な構造が使用可能でない限り、その使用は任意である(セクション7.4,1と7.4.3を参照すること)。これらのメディアオブジェクトまたは「リソース」は、ドキュメントから失われた情報、または読者(Reader)がアクセス可能でない形式でのみ存在する情報を提供する。リソースは、一般的に重要で意味的に豊富な情報から構成されている。リソースは、プレーヤー(Player)やユーザー(User)がどの言語でリソースをレンダリングするべきかを決定できるようにするため、複数の言語で同時に供給することができる。以下はその適用例である。
リソースファイルは、DTBファイルセットにある任意の要素のセットとリソースを関係付けるために、W3C XPath 1.0([XPath10]を参照すること)のサブセットを使用している。専用のXPathプロセッサを持たないプレーヤー(Player)のために、サブセットは関連付けを確立するために連結された文字列マッチングの使用を可能にするのに十分に厳格である。
リソースは、適切な場合にのみ呼び出される。つまり、明示的なユーザー(User)要件/設定に対するレスポンス、そして、必要に応じてである。
(このセクションは参考情報である(Informative)。)
以下は、リソース要素の簡潔な説明である。それぞれの要素の説明には、適用可能な属性の説明とともに、Resouce DTDからより抜粋した要素宣言が含まれている。
<!ELEMENT resources (head?, scope+) >
<resources
...属性...>
...内容...</resources>
<!ELEMENT head (meta*) >
<head>
...内容...</head>
<resources>
<!ELEMENT meta EMPTY >
<meta
...属性.../>
<head>
<!ELEMENT scope (nodeSet+)>
<scope
...属性...>
...内容...</scope>
<scope>
要素の子孫 <resource>
がどの名前空間が適用されるかを定義する名前空間 URI。<resources>
scope
の親によって定義された名前空間内の要素のセットのセレクタ。<!ELEMENT nodeSet (resource+)>
<nodeSet
...属性...>
...内容...</nodeSet>
<scope>
<!ELEMENT resource (((text, audio?) | audio), img?)>
<resource
...属性...>
...内容...</resource>
<nodeSet>
<!ELEMENT text (#PCDATA) >
<text>
...内容...</text>
<resource>
<!ELEMENT audio EMPTY >
<audio
...属性...
/>
clipBegin
と同じ属性値の構文を使用する。<resource>
<!ELEMENT img EMPTY >
<img
...属性.../>
<resource>
(このセクションは規範的である(Normative)。)
リソースファイルが実装されている場合、次の要件を満たしていなければならない(Must)。リソースファイルは、文書型定義 resource-2005-1.dtd( 付録1"DTD for Resource File"を参照すること)に準拠したXML1.0ファイルである。resources
要素上の version
属性とxmlns
属性は、上記のDTDに記載されている値を使用して明示的にドキュメントインスタンス内で指定されなければならない(Must)。エンティティ宣言は、内部のDTDサブセットになければならない(Must)。詳細は、セクション16.1 「一般的なファイルの適合性要件」を参照すること。 DTBが、複数のメディアユニット(Media Unit)にまたがっている場合、DTBから直接参照されるリソースファイルと全ての音声及び画像ファイルの同一の複製物は、DTBの各メディアユニット(Media Unit)ごとに配布されなければならない(Shall)。
<resource>
要素の子である様々なメディアは、提供する情報が同等でなければならない(Must)。ある特定の<nodeSet>
要素の子である<resource>
は、異なる言語でも提供する情報が同等でなければならない(Must)。指定された<nodeSet>
のいずれかの中で 、同じ言語を持つ2つのリソースがあってはならない(Must Not)。名前空間URI(nsuri
属性の値)は、各<scope> 要素で一意でなければならない(Must)。
select
属性で使用されるW3C XPath 1.0([XPath10]を参照すること)サブセット文字列は次の規則に従わなければならない(Must)。文字列は、妥当なXPath 1.0の文字列でなければならない(Must)し、XPath 1.0の省略構文のみを使用しなければならない(Must)。認められた唯一のロケーションパスは /descendant-or-self::node()/
であり、省略構文では、//
として表現される。ノードテストは要素名のみを選択してもよい(May)。ワイルドカードは、述語内ではなく、ノードテスト内の要素セレクタとして認められている。0以上の複数の述語が認められている。述語は属性のみを選択することができる。そして、属性名と属性の値を明示的に使用しなければならない(Must)。
述部の属性値は、ダブルクォーテーションまたはシングルクォーテーション(" または ')で区切られる。ダブルクォーテーションを含む属性値は、シングルクォーテーションで区切られなければならず(Must)、シングルクォーテーションを含む属性値は、ダブルクォーテーションで区切られなければならない(Must)。ダブルクォーテーションとシングルクォーテーションの両方を含む属性値は認められない。述語はシングルトンでなければならない(Must)。つまり、述語ではand
もor
のステートメントは認められない。要素と属性の選択は、qnameのローカル部分のみを使用しなければならない(Must)( [XML-Namespaces])を参照すること)。
以下は、EBNF形式で定義されているXPath1.0サブセットである。
DTBLocationPath ::= '//' Step Step ::= NodeTest Predicate* NodeTest ::= '*' | QNameLocalPart Predicate ::= '[' PredicateExpr ']' PredicateExpr ::= Expr Expr ::= EqualityExpr EqualityExpr ::= AttrSpecifier '=' Literal AttrSpecifier ::= '@' QNameLocalPart Literal ::= '"' [^"]* '"' | "'" [^']* "'" QNameLocalPart ::= NCName NCName ::= (Letter | '_') (NCNameChar) NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender
Letter、Digit、CombiningChar、ExtenderはXML 1.0 仕様で定義されている (http://www.w3.org/TR/REC-xml#NT-Letter を参照すること)。
(scope
要素によって定義される)特定の語彙内で、任意の要素は、それに関係付けられた 0個以上のリソースを有してもよい(May)。しかし、複数同時に関係付けられる場合、リソースファイルのサポートを実装するプレイヤー(Player)は、これらのリソースのうち、(ドキュメント順で)最初に一致する関連する<scope>要素の子の<nodeSet>
、1つだけを選択することが求められる。
ドキュメントの作成者は、順次、<nodeSet>
要素を順序づけるため、明示的にリソースの優先順位を表現する方法でこのプレーヤー(Player)の要件を利用する。次はオーサリングツールによって実装される順序付けアルゴリズムなどの有益な例である。
<nodeSet>
要素はワイルドカードに一致する<nodeSet>
要素の前に出現する。<nodeSet>
要素がより述語の少ない<nodeSet>
要素の前に出現する。id
属性が一致するリソースを、他の一致する可能性があるものより優先させるため、シーケンスの先頭に移動することになる。次は、プレイヤー(Player)の視点からの典型的なリソース選択プロセスである。
nsuri
属性値がそのアクティブな要素の名前空間URIとマッチするそのリソースファイル<scope>
要素を検索する。<scope>
要素が見つかった場合、select
属性に与えられたものとしてのXPathステートメントがそのアクティブ要素とマッチする最初の<nodeSet>
を検索する。(一部のXPathプロセッサは実行前に、要素のselect文節にqname接頭辞を追加する必要があることに注意すること。)<nodeSet>
要素が見つかった場合、言語設定に基づいて、このセットの子である1つのリソースを選択する。(プレイヤー(Player)は、通常、アクティブな要素の言語と一致する言語のリソースを選択する。プレイヤー(Player)は、初期設定の言語及び/またはユーザー(User)優先言語設定も実装してもよい(May)。それは、プレゼンテーションのためのリソースが選択された際にアクティブ要素の言語に優先するだろう。プレイヤー(Player)は、マッチする<nodeSet>
が発見され、しかし、その子のリソースに望ましい言語が使用されていない場合のフォールバック動作を実装してもよい(May)し、しなくてもよい(may not)。(このセクションは参考情報である(Informative)。)
例10.1では、リソースファイルが、NCXとDTBookの名前空間のために英語のリソースのみを格納している。
NCXの名前空間(最初の<scope>
要素)内で、2つのリソースがNCX <smilCustomTest>
要素の選択を経由してスキップ可能な要素に提供される。最初の<nodeSet>
が、 "PAGE_NUMBER"の値を持つ属性bookStruct
を持つ1つの<smilCustomTest>
要素にマッピングされる。2番目の<nodeSet>
が、"foo"の値を持つ属性id
を持つ<smilCustomTest>
にマッピングされる。3番目の <nodeSet>
が、"chapter"の値を持つ class
属性を持つ<navPoint>
要素にマッピングされる。
DTBookの名前空間(2番目の<scope>
要素)内で、2つのリソースが次のとおり与えられている。1つが要素 <td>
、もう1つが "optional"の値を持つrender
属性を持つ要素 <prodnote>
である。
例 10.1:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE resources PUBLIC "-//NISO//DTD resource 2005-1//EN" "http://www.daisy.org/z3986/2005/resource-2005-1.dtd"> <resources xmlns="http://www.daisy.org/z3986/2005/resource/" version="2005-1"> <scope nsuri="http://www.daisy.org/z3986/2005/ncx/"> <nodeSet id="ns001" select="//smilCustomTest[@bookStruct='PAGE_NUMBER']"> <resource xml:lang="en" id="r001"> <text>page</text> <audio src="res_en.mp3" clipBegin="0.2s" clipEnd="0.4s"/> </resource> </nodeSet> <nodeSet id="ns002" select="//smilCustomTest[@id='foo']"> <resource xml:lang="en" id="r002"> <text>verse</text> <audio src="res_en.mp3" clipBegin="0.8s" clipEnd="1.0s"/> </resource> </nodeSet> <nodeSet id="ns003" select="//navPoint[@class='chapter']"> <resource xml:lang="en" id="r003"> <text>chapter</text> <audio src="chapter.mp3" clipBegin="2.8s" clipEnd="3.0s"/> <img src="chapter.png" /> </resource > </nodeSet> </scope> <scope nsuri="http://www.daisy.org/z3986/2005/dtbook/"> <nodeSet id="ns004" select="//prodnote[@render='optional']"> <resource xml:lang="en" id="r004"> <text>optional producers note</text> <audio src="res_en.mp3" clipBegin="2.8s" clipEnd="3.0s"/> </resource> </nodeSet> <nodeSet id="ns005" select="//td"> <resource xml:lang="en" id="r005"> <text>table cell</text> <audio src="res_en.mp3" clipBegin="1.2s" clipEnd="1.4s"/> </resource> </nodeSet> </scope> </resources>
例10.2では、3つの複数の言語リソースが、DTBookの名前空間に与えられている。そして、1つのリソースは、SMILの名前空間に与えられている。
DTBookの名前空間(最初の<scope>
要素)内で、リソースがimageのclass
属性値を持つ<prodnote>
要素、属性指定のない<prodnote>
要素、そして、最後にimage
のclass
属性値を持つ任意の要素に与えられる。
SMILの名前空間(2番目の<scope>
要素)内で、リソースが「回避可能な」要素に与えられている。この場合、そのリソースは、任意のclass
属性値を経由してマッピングされる。
例 10.2:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE resources PUBLIC "-//NISO//DTD resource 2005-1//EN" "http://www.daisy.org/z3986/2005/resource-2005-1.dtd"> <resources xmlns="http://www.daisy.org/z3986/2005/resource/" version="2005-1"> <scope nsuri="http://www.daisy.org/z3986/2005/dtbook/"> <nodeSet id="ns001" select="//prodnote[@class='image']"> <resource xml:lang="en" id="r001">[...]</resource> <resource xml:lang="da" id="r002">[...]</resource> <resource xml:lang="ja" id="r003">[...]</resource> </nodeSet> <nodeSet id="ns002" select="//prodnote"> <resource xml:lang="en" id="r004">[...]</resource> <resource xml:lang="da" id="r005">[...]</resource> <resource xml:lang="ja" id="r006">[...]</resource> </nodeSet> <nodeSet id="ns003" select="//*[@class='image']"> <resource xml:lang="en" id="r007">[...]</resource> <resource xml:lang="da" id="r008">[...]</resource> <resource xml:lang="ja" id="r009">[...]</resource> </nodeSet> </scope> <scope nsuri="http://www.w3.org/2001/SMIL20/"> <nodeSet id="ns004" select="//*[@class='table']"> <resource xml:lang="en" id="r010">[...]</resource> <resource xml:lang="da" id="r011">[...]</resource> <resource xml:lang="ja" id="r012">[...]</resource> </nodeSet> </scope> </resources>
(このセクションは参考情報である(Informative)。)
DTBが、CD-ROMなどの物理媒体によって配布される場合、製作者は、1つのディスクに1つ以上の本を入れたり、また、1つの本を格納するために1枚以上のディスクを使用するだろう。複数のDTBが単一の配布媒体(「メディアユニット(Media Unit)」)に格納される場合、読者(Reader)に本の「本棚」を提示するために、プレーヤー(Player)が簡単にアクセスできるようにこの情報を格納する簡単な方法が必要である。単一のDTBが複数のメディアにまたがっている場合、プレーヤー(Player)は、例えば、必要に応じて「ディスク2を挿入してください」などの正しい指示を読者に提供するために特定の情報にアクセスする必要がある。"Distribution Information File" (または "distInfo File") はこれらの目的を満たすためのデータを持つ。
次のシナリオでは、プレイヤー(Player)は、適切に対応をするために正確な「配信情報」が必要になる。
Lastmark
"は別のディスクを指すだろう。その他のDTBファイルはDTBの配布方法に応じた変更はされないが、distInfo ファイルは、通常、配布メディアのそれぞれのタイプにあわせて作成される。
(このセクションは規範的である(Normative)。)
メディアユニット(Media Unit)ごとに1つのDTBを配布する場合、パッケージファイル(Package File )は、メディアユニット(Media Unit)のファイルシステムのルートに配置されなければならない(Must)。メディアユニット(Media Unit)ごとに複数のDTBを配布する場合は、distinfoファイルのみがメディアユニット(Media Unit)のファイルシステムのルートに配置されなければならない(Must)。ハードディスクドライブなどのリムーバルではない記憶媒体にDTBが格納されている場合、これらの制限は適用されない。
ある1つのDTBが1つ以上の配布メディアにまたがる時または複数のDTBが1つのメディアユニット(Media Unit)に格納される時、distInfo ファイルはその DTBの全てのメディアユニット(Media Unit)で求められる。それ以外の場合は、distinfoにファイルは任意である。1つのメディアユニット(Media Unit)(例えば、CD-ROMディスク)につき、ただ1つのdistinfoにファイルがなければならない(Shall)。
distInfoファイルが存在するなら、そのdistInfoファイルは distInfo-2005-1.dtd((付録 1, "Distribution Information DTD"を参照すること)に準拠した妥当なXML
1.0 ファイルでなければならない(Must)。そして、distInfoファイルのファイル名は"distInfo.dinf"にしなければならない(Shall)。distInfo
要素のversion
属性とxmlns
属性は、上記のDTDに記載されている値を使用して、明示的にドキュメントインスタンスで指定されなければならない(Must)。エンティティ宣言は内部のDTBサブセット内で出現しなくてはならない(Must)。さらなる詳細については、セクション16.1 「一般的なファイルの適合性要件」を参照すること。
複数のメディアユニット(Media Unit)による配布はNCXとSMILの作成に密接に関係がある。NCXについては、セクション8.4.2 「複数のメディアユニット(Media Unit)にまたがるDTB」を参照すること。SMILについては、セクション7.4.4「複数のメディアユニット(Media Unit)をまたぐファイルのパッケージング 」を参照すること。
読書を続けるために別のメディアユニット(Media Unit)が必要になる時に、ユーザー(User)に読書を継続する方法を指示する目的でカスタマイズされたメッセージを与えるために任意でchangeMsg
を使用してもよい(May)。そのようなchangeMsg
を使用することで、テキストまたは音声のいずれかの方式でのメッセージのプレゼンテーションが可能になる。もしchangeMsg
が存在せず、別のメディアユニット(Media Unit)が必要な場合、プレーヤー(Player)は、(例えば、ディスク2を挿入してくださいなどの)初期設定の音声またはテキストメッセージをレンダリングするしなければならない(Must)。
distinfoにファイルは、<fileSet>
要素を経由したディストリビューション内の全てのファイルのリストを含んでもよい(May)。これは任意であり、再生システム(Playback System)が、任意の特定の方法でこれを処理することは期待されない。使用された場合は、<fileSet>
は、非DTBファイル、distInfoファイルそのものなど通常はDTBのパッケージファイル(Package File)で一覧にされないアイテムを含めて、ディストリビューションのメディアにある全てのファイルを一覧にしなければならない(Must)。
<book>
要素のmedia
属性の値とsmilRef
要素、changeMsg
要素、file
要素のmediaRef
属性の値は、 "x:y"形式でなければならない(Shall)。x はこのメディアユニット(Media Unit)の配列番号で、y はこの本のディストリビューションでのメディアユニット(Media Unit)の総数である。本は2つ以上のメディアユニット(Media Unit)にまたがっている場合、<book>
のmedia
属性は存在して値を格納しなくてはならない(Must)。
(このセクションは参考情報である(Informative)。)
<!ELEMENT distInfo (book+, fileSet?) >
<distInfo
...属性...>
...内容...</distInfo>
<!ELEMENT book (docTitle, docAuthor*, distMap?, changeMsg*)>
<book
...属性...>
...内容...</book>
package
要素のunique-identifier属性に参照されるdc:Identifier
要素とのそれと同じである。セクション3.1 「パッケージの識別
」を参照すること。media
属性は進行中のメディアユニット(Media Unit)を "x:y"形式で識別する。x はこのメディアユニット(Media Unit)の配列番号で、y はこの本のディストリビューションでのメディアユニット(Media Unit)の総数である。<distInfo>
distMap
と0個以上のchangeMsg
を格納する。<!ELEMENT distMap (smilRef+) >
<distMap>
...内容...</distMap>
<book>
smilRef
を格納する。1つの本が複数のメディアにまたがる時のみdistMap
は必要である。<!ELEMENT smilRef EMPTY >
<smilRef
...属性.../>
<distMap>
<!ELEMENT docTitle (text, audio?, img?)>
<docTitle
...属性... >
...内容... </docTitle>
<book>
<!ELEMENT docAuthor (text, audio?, img?)>
<docAuthor
...属性...>
...内容...</docAuthor>
<book>
<!ELEMENT changeMsg ((text, audio?) | audio)>
<changeMsg
...属性...>
...内容...</changeMsg>
mediaRef
属性と選択された<smilRef>
のmediaRef
のマッチングによって正しい<changeMsg>
を呼び出す。"x:y"形式。x はこのメディアユニット(Media Unit)の配列番号で、y はこの本のディストリビューションでのメディアユニット(Media Unit)の総数である。<book>
<!ELEMENT fileSet (file+) >
<fileSet>
...内容...</fileSet>
<distInfo>
<!ELEMENT file EMPTY >
<file
...属性.../>
<fileSet>
<!ELEMENT text (#PCDATA) >
<text>
...内容...</text>
<changeMsg>
、<docTitle>
、<docAuthor>
<!ELEMENT audio EMPTY>
<audio
...属性.../>
clipBegin
と同じ属性値の構文を使用する。<changeMsg>
、<docTitle>
、<docAuthor>
<docTitle>
または<docAuthor>
と関係付けられたグラフィカルなコンテンツへのポインタを格納する。
<!ELEMENT img EMPTY>
<img
...属性... />
<docTitle>
、<docAuthor>
(このセクションは参考情報である(Informative)。)
例 11.1は3枚のCD-ROMにまたがる1冊の本の最初のディスクのdistInfo ファイルを示している。book
要素はpkgRef
経由でパッケージファイル(Package File)を指し示す uid
属性を通してその本を識別している。そして、このディスクが3枚のうちの1枚目であることをmedia
属性で指し示している。プレーヤー(Player)は本のメタデータなどを取得するためにパッケージファイル(Package File)をパースする。distMap
要素はその本の各SMILファイルごとに1つのsmilRef
を格納する(この例にあるのケースでは10個ある。)。file
属性はそれぞれ個々のSMILの名前を提供する。mediaRef
属性は、その特定のSMILファイル(とそれに参照される全ての音声/テキスト/画像ファイル)がどのディスクに存在するかを指し示している。
プレーヤー(Player)は特定のSMILファイルが再生(Playback)のターゲットになった時にこのマップを参照するだろう。もしファイルが現在のディスクに存在しない場合は、選択されたsmilRef
要素のmediaRef
属性と一致するmediaRef
属性を持つchangeMsg
が再生されるだろう。
例11.1:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE distInfo PUBLIC "-//NISO//DTD distInfo 2005-1//EN" "http://www.daisy.org/z3986/2005/distInfo-2005-1.dtd"> <distInfo version="2005-1" xmlns="http://www.daisy.org/z3986/2005/distInfo/"> <book uid="us-rfbd-tbfz284" pkgRef="./FZ284.opf" media="1:3"> <docTitle> <text>Development through the lifespan</text> <audio src="FZ284_1098.mp3" clipBegin="0s" clipEnd="3.087s" /> </docTitle> <docAuthor> <text>Laura E. Berk</text> <audio src="FZ284_1098.mp3" clipBegin="3.5s" clipEnd="5.28s" /> </docAuthor> <distMap> <smilRef file="FZ284_0001d.smil" mediaRef="1:3"/> <smilRef file="FZ284_0002d.smil" mediaRef="1:3"/> <smilRef file="FZ284_0003d.smil" mediaRef="1:3"/> <smilRef file="FZ284_0004d.smil" mediaRef="1:3"/> <smilRef file="FZ284_0005d.smil" mediaRef="2:3"/> <smilRef file="FZ284_0006d.smil" mediaRef="2:3"/> <smilRef file="FZ284_0007d.smil" mediaRef="2:3"/> <smilRef file="FZ284_0008d.smil" mediaRef="2:3"/> <smilRef file="FZ284_0009d.smil" mediaRef="2:3"/> <smilRef file="FZ284_0010d.smil" mediaRef="3:3"/> </distMap> <changeMsg mediaRef="1:3"> <text>Insert disc one.</text> <audio src="insert.wav" clipBegin="0s" clipEnd="2.256s" /> </changeMsg> <changeMsg mediaRef="2:3"> <text>Insert disc two.</text> <audio src="insert.wav" clipBegin="3s" clipEnd="5.881s" /> </changeMsg> <changeMsg mediaRef="3:3"> <text>Insert disc three.</text> <audio src="insert.wav" clipBegin="6.901s" clipEnd="10s" /> </changeMsg> </book> </distInfo>
例11.2では、2つの本が1枚のCD-ROMに格納されている場合の1つのdistInfoファイルがサンプルとして提示されている。そのファイルは2つの本のパッケージファイル(Package File)へのポインタを格納している。両方の本は、この1つのメディアユニット(Media Unit)で完結しているため、media
属性が省略されている。このdistInfoファイルは、任意で<fileSet>
要素も格納している。これは、非DTBの "extras"に加えて、2つの本の全てのファイルを一覧している。
例11.2:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE distInfo PUBLIC "-//NISO//DTD distInfo 2005-1//EN" "http://www.daisy.org/z3986/2005/distInfo-2005-1.dtd"> <distInfo version="2005-1" xmlns="http://www.daisy.org/z3986/2005/distInfo/"> <book uid="us-nls-db00001" pkgRef="./book1/AllAboutDogs.opf" > <docTitle> <text>All About Dogs: Everything you wanted to know about canines, but were afraid to ask</text> <audio src="distAudioClips.mp3" clipBegin="00:00" clipEnd="00:09.632" /> <img src="./book1/cover.jpg" /> </docTitle> <docAuthor> <text>George Kerscher</text> <audio src="distAudioClips.mp3" clipBegin="00:10" clipEnd="00:13.109" /> </docAuthor> <docAuthor> <text>Nesbit Kerscher</text> <audio src="distAudioClips.mp3" clipBegin="00:14" clipEnd="00:15.53" /> </docAuthor> </book> <book uid="us-nls-db98765" pkgRef="./book2/AllAboutCats.opf" > <docTitle> <text>All About Cats: Everything you wanted to know about felines, but were afraid to ask</text> <audio src="distAudioClips.mp3" clipBegin="00:20" clipEnd="00:24.87" /> <img src="./book2/cover.jpg" /> </docTitle> <docAuthor> <text>Frances White</text> <audio src="distAudioClips.mp3" clipBegin="00:26" clipEnd="00:27.45" /> </docAuthor> <docAuthor> <text>Isabel White</text> <audio src="distAudioClips.mp3" clipBegin="00:28" clipEnd="00:29.71" /> </docAuthor> </book> <fileSet> <file fileRef="./book1/AllAboutDogs.opf" /> <file fileRef="./book1/AllAboutDogs.ncx" /> <file fileRef="./book1/AllAboutDogs.smil" /> <file fileRef="./book1/db00001_1.mp4" /> <file fileRef="./book1/db00001_2.mp4" /> <file fileRef="./book1/db00001_3.mp4" /> <file fileRef="./book1/cover.jpg" /> <file fileRef="./book1/NLS.res" /> <file fileRef="./book1/NLSres.mp4" /> <file fileRef="./book2/AllAboutCats.opf" /> <file fileRef="./book2/AllAboutCats.ncx" /> <file fileRef="./book2/AllAboutCats.smil" /> <file fileRef="./book1/db98765_1.mp4" /> <file fileRef="./book1/db98765_2.mp4" /> <file fileRef="./book1/db98765_3.mp4" /> <file fileRef="./book1/db98765_4.mp4" /> <file fileRef="./book2/cover.jpg" /> <file fileRef="./book2/NLS.res" /> <file fileRef="./book2/NLSres.mp4" /> <file fileRef="./extras/Guide_Dogs.mov" /> <file fileRef="./extras/Attack_Cats.mov" /> <file fileRef="distAudioClips.mp3" /> <file fileRef="distInfo.dinf" /> </fileSet> </distInfo>
(このセクションは参考情報である(Informative)。)
W3Cは、プレゼンテーションからコンテンツを分離するために、Cascading Style Sheet [CSS]およびExtensible Style Language [XSL] と呼ばれるメカニズムを定義している。CSS( Level 1 [CSS1]とLevel 2 [CSS2]の2つのレベルの機能が現在、定義されている。)とXSLによって、マークアップのための特定の書式ルールを定義し、独立したコンテンツとして格納することができる。初期設定のルールは、通常、特定の再生(Playback)またはレンダリングシステムによって適用される。CSS Cascadeは、ユーザー(User)によってだけではなく、コンテンツ製作者によってもスタイル規則を適用させることができる定義されたメカニズムを提供する。製作者が提供するスタイルシートは、プレーヤー(Player)やユーザー(User)の初期設定のスタイルでは満たせない書式設定やプレゼンテーション上の要件を持つ複雑なドキュメントには特に重要である。
視覚的表示を組み込み、CSSまたはXSLのサポートしているシステム上でDTBが再生される時に、コンテンツ製作者は、テキストコンテンツの視覚的書式設定を制御するためにCSSまたはXSLファイルを提供してもよい(May)
点字ディスプレイがDTBプレーヤー(Player)に接続されているならば、点字用のスタイルシートはドキュメントをよりナビゲートしやすいようにするため、書式を制御することができる。
Audio CSS( ACSS、CSS2の一部)とXSLも視覚的書式設定と同等の聴覚のそれをサポートし、テキストコンテンツのマークアップに関係付けるオーディオキューを可能にする。例えば、章の開始や改ページで特定のオーディオキューで示すことができる。
(このセクションは規範的である(Normative)。)
スタイルシートはDTBとDTB配布システムの任意の構成要素である。DTBの製作者は、初期設定で視覚的スタイルシート、点字用のスタイルシート、音声用のスタイルシートを与えることを選択してもよい(May)。
スタイルシートは、ユーザー(User)による上書きを妨げるような方法で書かれてはならない(Must Not)。スタイルシートを参照するDTBは、XMLソースとそのスタイルシート([XML-Style]を参照すること)を関係付けさせる標準的なW3Cのメカニズムを使用しなければならない(Must)。指示を処理する全てのスタイルシートは、どのメディアに適用するスタイルシートであるかを指定するmedia属性が含まれていなければならない(Must)。 適用できる値は次の通りである。: all (全てのメディアに対して)、 aural (音声プレゼンテーションに対して)、braille (点字ディスプレイに対して)、 embossed (エンボス加工された点字に対して)、handheld (小さなモノクロスクリーンを持つデバイスに対して)、 print(印刷出力された視覚的形式に対して)、そして、screen((カラーのコンピュータースクリーンに対して)。 例えば、次のとおりである。
<?xml-stylesheet href="brstyle.css" type="text/css" media="braille"?>
一般的なPCベースのブラウザを使用する再生システム(Playback System)は、少なくともそのブラウザ自体が行う程度のプレゼンテーションスタイルをサポートするべきである(Should)。しかし、視覚ディスプレイを組み込んだあらゆるDTBプレーヤー(Player)は、少なくともCSS1を実装することが強く推奨される。ポータブルプレーヤー(Player)は一般的にスタイルシートの完全なサポートを提供してはいないが、DTBでの利用とプレーヤー(Player)上で表示されるメディアに十分なCSS またはXSLのサブセットを実装してもよい(May)。例えば、テキストコンテンツを認識している音声のみのプレイヤー(Player)は、上記の音声スタイルのみをサポートするかもしれない。
再生システム(Playback System)の開発者は、スタイルシートのローカル制御をサポートするユーザーインターフェイス機能を実装してもよい(May)。それによってユーザー(User)は、プレーヤー(Player)または製作者が初期設定で定義したスタイルを上書きするスタイルを定義することが可能になる。スタイルシートを実装するプレーヤー(Player)はプレゼンテーションスタイルのユーザー(User)制御をサポートすることが強く推奨される。
複数のスタイルシートがレンダリングされるコンテンツのために存在し、ユーザー(User)が定義したスタイルが存在する場合は、ユーザー(User)が定義したスタイルが優先され、その後に製作者が定義したもの、続いてプレーヤー(Player)が定義したものという順序で優先されなければならない(Shall)。
(このセクションは規範的である(Normative)。)
プレイヤー(Player)は、現行のファイルのタイプからコンテンツをレンダリングする方法を決定しなければならない(Must)。テキストコンテンツファイル(Textual Content File)のみである場合は、ユーザー(User)の設定と再生システム(Playback System)が提供する機能に従って、合成音声のレンダリング、点字ディスプレイへのアウトプット及び/または視覚的表示が提示されてもよい(May)。音声ファイルのみである場合、連続した音声の再生(Playback)が開始されなければならない(Shall)。DTBに格納されているメディアのサブセットのみをサポートしているプレイヤー(Player)がサポートしていないメディアに出会ったら、サポートしていないファイルを無視し、サポートしているファイルを正しくレンダリングしなければならない(Must)。さらに、再生システム(Playback System)がDTBにあるどのメディアもレンダリングできない場合は、パッケージファイル(Package File)のメタデータにあるdtb:multimediaContent
の値を元に、ユーザー(User)にその事実を伝えなくてはならない(Must)。
(このセクションは参考情報である(Informative)。)
知的財産の保護は、プリントディスアビリティのある者にサービスを提供する国立図書館や他の機関にとって重要な問題であり続けるだろう。しかし、この責任をデジタル録音図書(Digital Talking Book)の配布プログラムでどう満たしていくかは、代替フォーマット資料の配布に取り巻く法的な環境が国ごとに異なってくるだろう。また、アイテムが著作権の保護期間中のものか、パブリックドメインにあるものかでも異なってくる。しかし、アイテムが著作権の保護期間中である場合、著作権者の権利を保護するためにエージェンシーは合理的な管理と技術的な対策をとることが重要である。もっとも、エージェンシーが、彼らの目標母集団(Target population)による代替フォーマット資料へのアクセスを保証することも同様に重要である。DRMシステムを実装するDTB製作者とディストリビューターは、資格のあるユーザー(User)が準拠したDTBにアクセスすることを制限したり、妨げたりしない方法で、それを行わなくてはならない。
(このセクションは規範的である(Normative)。)
ユーザー(User)が再生(Playback)速度を制御できるようにするために再生システム(Playback System)はタイムスケールの調整機能(Time-Scale Modification : TSM)を実装することを強く推奨する。3分の1から3倍速までの連続可変再生(Playback)速度が推奨される。また、プレイヤー(Player)は、TSM作動中はピッチ補正を無効にするオプションをユーザー(User)が選択できることを推奨する。
DTBの全ての時間オフセット(例えば、SMILおよびNCXの clipBegin
/ clipEnd
、ブックマークのtimeOffset
など)は、通常の再生速度に基づいる。同期を維持するために、プレイヤー(Player)は実際の再生(Playback)速度の時間オフセットを独立して処理しなければならない(Must)。
(このセクションは規範的である(Normative)。)
この規格は、ファイルの適合性とプレーヤー(Player)の適合性の2種類の適合性を定義する。準拠したデジタル録音図書(Digital Talking Book)とDTB再生システム(Playback System)は、この規格の規範的なセクションで規定された適用可能な要件を全て満たしていなければならない(Must)。要件は、DTBに含まれるメディアとDTBプレーヤー(Player)によってサポートされる機能によって異なってくるだろう。ファイルの適合性の多くは、この規格に含まれているDTDを通じて強制的に守らせることができるが、他はすることができない。できないところは、他の手段を介して強制的に守らせなければならない(Must)ことに留意すべきである(Should)。
(このセクションは規範的である(Normative)。)
この仕様は、DTB再生(Playback)デバイスが妥当性を検証するXMLプロセッサと検証しないXMLプロセッサを使用することを認める。DTBファイルセット内の全てのXMLドキュメントは、次の文法規則とファイルの適合性要件がこの柔軟性を可能にするために組み込まれている。
id
で名付けられた属性を使用する。この規格は次の規格、勧告、およびガイドラインを参照している。
(このセクションは規範的である(Normative)。)
(このセクションは参考情報である(Informative)。)
(このセクションは規範的である(Normative)。)
次のDTDは 保守機関(http://www.daisy.org/z3986/)からプレーンテキストで入手することができる。
(この付録は、米国国家規格 Z39.86-2005、デジタル録音図書(Digital Talking Book)の仕様の一部ではない。情報提供のみを目的に掲載されている。)
セクション1.7で規定された保守機関として指定された機能は、DAISYコンソーシアムによって管理されるだろう。この規格の実装に関する質問と情報提供の要求は、http://www.daisy.org/の "Contact Us"フォームを使用し、"Z3986 Standard"とうい件名を指定してDAISYコンソーシアムのスタッフに送るべきである。