CINXE.COM

Open Packaging Format (OPF) 2.0.1 v1.0

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content="HTML Tidy for Mac OS X (vers 1st December 2004), see www.w3.org" /> <title> Open Packaging Format (OPF) 2.0.1 v1.0 </title> <link href="http://www.idpf.org/2007/SpecificationProduction/idpfdocument.css" rel="stylesheet" media="all" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> /*<![CDATA[*/ del {display:none} ins {text-decoration:none} /*]]>*/ /* <![CDATA[ del {color: red} ins {color: red} ]]> */ </style> </head> <body> <div class="Head"> <p class="Logo"> <a href="http://www.idpf.org/"><img class="Head" src="http://www.idpf.org/2007/SpecificationProduction/idpflogo_web_125.jpg" alt="IDPF Logo" title="International Digital Publishing Forum" height="56" width="125" /></a> </p> <p class="Title"> Open Packaging Format (OPF) 2.0<ins>.1</ins> <del>v1.0</del><ins>v1.0.1</ins> </p> <p class="Status"> <del>Draft Document September 11, 2007</del><ins>Recommended Specification September 4, 2010</ins> </p> <ins> <div class="DefinitionList"> <p class="DefinitionName"> This version </p> <p class="DefinitionCopy"> <a href= "http://www.idpf.org/doc_library/epub/OPF_2.0.1_draft.htm" target="_blank" title="This OPF Specification">http://www.idpf.org/doc_library/epub/OPF_2.0.1_draft.htm</a> </p> <p class="DefinitionName"> Latest version </p> <p class="DefinitionCopy"> <a href= "http://www.idpf.org/doc_library/epub/OPF_2.0_latest.htm" target="_blank" title="Latest OPF 2.0 Specification">http://www.idpf.org/doc_library/epub/OPF_2.0_latest.htm</a> </p> <p class="DefinitionName"> Previous version </p> <p class="DefinitionCopy"> <a href= "http://www.openebook.org/2007/opf/OPF_2.0_final_spec.html" target="_blank" title="Previous OPS 2.0 Specification">http://www.openebook.org/2007/opf/OPF_2.0_final_spec.html</a> </p> <p class="DefinitionName"> Diffs to previous version </p> <p class="DefinitionCopy"> <a href= "http://www.idpf.org/doc_library/epub/OPF_2.0.1_diffs_to_2.0.htm" target="_blank" title="OPF Diffs to Previous">http://www.idpf.org/doc_library/epub/OPF_2.0.1_diffs_to_2.0.htm</a> </p> </div> </ins> <p class="Copyright"> Copyright © <del>2007</del><ins>2010</ins> by International Digital Publishing Forum™. </p> <p class="Copyright"> All rights reserved. This work is protected under Title 17 of the United States Code. Reproduction and dissemination of this work with changes is prohibited except with the written permission of the International Digital Publishing Forum. </p> </div> <div class="TOC"> <p class="TOCTitle"> Table of Contents </p> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#Section1.0" id="TOC1.0" name="TOC1.0">1.0: Overview</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section1.1" id="TOC1.1" name="TOC1.1">1.1: Purpose and Scope</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section1.2" id="TOC1.2" name="TOC1.2">1.2: Definitions</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section1.3" id="TOC1.3" name="TOC1.3">1.3: Relationship to Other Specifications</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.3.1" id="TOC1.3.1" name="TOC1.3.1">1.3.1: Relationship to XML</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.3.2" id="TOC1.3.2" name="TOC1.3.2">1.3.2: Relationship to XML Namespaces</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.3.3" id="TOC1.3.3" name="TOC1.3.3">1.3.3: Relationship to Dublin Core</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.3.4" id="TOC1.3.4" name="TOC1.3.4">1.3.4: Relationship to Unicode</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section1.4" id="TOC1.4" name="TOC1.4">1.4: Conformance</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.4.1" id="TOC1.4.1" name="TOC1.4.1">1.4.1: Package Conformance</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section1.4.1.1" id="TOC1.4.1.1" name="TOC1.4.1.1">1.4.1.1: Package Conformance</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section1.4.1.2" id="TOC1.4.1.2" name="TOC1.4.1.2">1.4.1.2: Publication Conformance</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.4.2" id="TOC1.4.2" name="TOC1.4.2">1.4.2: Reading System Conformance</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section1.4.3" id="TOC1.4.3" name="TOC1.4.3">1.4.3: Compatibility of OPF Version 2.0</a> </p> </div> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#Section2.0" id="TOC2.0" name="TOC2.0">2.0: The OPF Package Document</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.1" id="TOC2.1" name="TOC2.1">2.1: Package Identity</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.2" id="TOC2.2" name="TOC2.2">2.2: Publication Metadata</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.1" id="TOC2.2.1" name="TOC2.2.1">2.2.1: <span class="Element">&lt;title&gt; &lt;/title&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.2" id="TOC2.2.2" name="TOC2.2.2">2.2.2: <span class="Element">&lt;creator&gt; &lt;/creator&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.3" id="TOC2.2.3" name="TOC2.2.3">2.2.3: <span class="Element">&lt;subject&gt; &lt;/subject&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.4" id="TOC2.2.4" name="TOC2.2.4">2.2.4: <span class="Element">&lt;description&gt; &lt;/description&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.5" id="TOC2.2.5" name="TOC2.2.5">2.2.5: <span class="Element">&lt;publisher&gt; &lt;/publisher&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.6" id="TOC2.2.6" name="TOC2.2.6">2.2.6: <span class="Element">&lt;contributor&gt; &lt;/contributor&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.7" id="TOC2.2.7" name="TOC2.2.7">2.2.7: <span class="Element">&lt;date&gt; &lt;/date&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.8" id="TOC2.2.8" name="TOC2.2.8">2.2.8: <span class="Element">&lt;type&gt; &lt;/type&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.9" id="TOC2.2.9" name="TOC2.2.9">2.2.9: <span class="Element">&lt;format&gt; &lt;/format&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.10" id="TOC2.2.10" name="TOC2.2.10">2.2.10: <span class="Element">&lt;identifier&gt; &lt;/identifier&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.11" id="TOC2.2.11" name="TOC2.2.11">2.2.11: <span class="Element">&lt;source&gt; &lt;/source&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.12" id="TOC2.2.12" name="TOC2.2.12">2.2.12: <span class="Element">&lt;language&gt; &lt;/language&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.13" id="TOC2.2.13" name="TOC2.2.13">2.2.13: <span class="Element">&lt;relation&gt; &lt;/relation&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.14" id="TOC2.2.14" name="TOC2.2.14">2.2.14: <span class="Element">&lt;coverage&gt; &lt;/coverage&gt;</span></a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.2.15" id="TOC2.2.15" name="TOC2.2.15">2.2.15: <span class="Element">&lt;rights&gt; &lt;/rights&gt;</span></a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.3" id="TOC2.3" name="TOC2.3">2.3: Manifest</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.3.1" id="TOC2.3.1" name="TOC2.3.1">2.3.1: Fallback Items</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section2.3.1.1" id="TOC2.3.1.1" name="TOC2.3.1.1">2.3.1.1: Items That Are Not OPS Core Media Types</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section2.3.1.2" id="TOC2.3.1.2" name="TOC2.3.1.2">2.3.1.2: Items That Are Out-Of-Line XML Islands</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.4" id="TOC2.4" name="TOC2.4">2.4: Spine</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.4.1" id="TOC2.4.1" name="TOC2.4.1">2.4.1: Declarative <del>Table of Contents</del><ins>Global Navigation</ins> — the NCX</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section2.4.1.1" id="TOC2.4.1.1" name="TOC2.4.1.1">2.4.1.1: Introduction</a> </p> <p class="TOCItem4"> <a class="TOC" href="#Section2.4.1.2" id="TOC2.4.1.2" name="TOC2.4.1.2">2.4.1.2: Key NCX Requirements</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.4.2" id="TOC2.4.2" name="TOC2.4.2">2.4.2: NCX Exceptions in Usage for Publications</a> </p> <p class="TOCItem3"> <a class="TOC" href="#Section2.4.3" id="TOC2.4.3" name="TOC2.4.3">2.4.3: XML Islands in the Spine</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.5" id="TOC2.5" name="TOC2.5">2.5: Tours [Deprecated]</a> </p> <p class="TOCItem2"> <a class="TOC" href="#Section2.6" id="TOC2.6" name="TOC2.6">2.6: Guide</a> </p> </div> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#AppendixA" id="AppendixTOCA" name="AppendixTOCA">Appendix A: The OPF Package Schema</a> </p> </div> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#AppendixB" id="AppendixTOCB" name="AppendixTOCB">Appendix B: Contributors</a> </p> </div> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#AppendixC" id="AppendixTOCC" name="AppendixTOCC">Appendix C: Acknowledgements</a> </p> </div> <div class="TOCSection"> <p class="TOCItem"> <a class="TOC" href="#AppendixD" id="AppendixTOCD" name="AppendixTOCD">Appendix D: Supporting Information &amp; Errata</a> </p> </div> </div> <div class="Body"> <div class="Section"> <h1 class="SectionTitle"> <a class="SectionTitle" href="#TOC1.0" id="Section1.0" name="Section1.0">1.0: Overview</a> </h1> <ins> <p class="Copy"> This specification, the Open Packaging Format (OPF), is one third of a triumvirate of modular specifications that make up the EPUB publication format. EPUB enables the creation and transport of reflowable digital books and other types of content as single-file digital publications that are interoperable between disparate EPUB-compliant reading devices and applications. EPUB encompasses a content markup standard (Open Publication Structure – OPS), a container standard (Open Container Format – OCF), and this specification, a packaging standard. </p> </div></ins> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC1.1" id="Section1.1" name="Section1.1">1.1: Purpose and Scope</a> </h2> <p class="Copy"> In order for electronic-book technology to achieve widespread success in the marketplace, Reading Systems need to have convenient access to a large number and variety of titles. Another related specification, the Open Publication Structure (OPS) Specification, describes a standard for representing the content of electronic publications and is meant to reduce barriers to the proliferation of content. Specifically, the specification is intended to: </p> <ul> <li>Give publication tool providers and content providers (e.g. publishers, authors, and others who have content to be displayed) minimal and common guidelines that ensure fidelity, accuracy, accessibility, and adequate presentation of electronic content over various Reading Systems; and </li> <li>Build on established content format standards; and </li> <li>Define a standard means of content description in order for electronic books to move smoothly through the distribution chain. </li> </ul> <p class="Copy"> This document, the Open Packaging Format (OPF) Specification, defines the mechanism by which the various components of an OPS publication are tied together and provides additional structure and semantics to the electronic publication. Specifically, OPF: </p> <ul> <li>Describes and references all components of the electronic publication (e.g. markup files, images, navigation structures). </li> <li>Provides publication-level metadata. </li> <li>Specifies the linear reading-order of the publication. </li> <li>Provides fallback information to use when unsupported extensions to OPS are employed. </li> <li>Provides a mechanism to specify a declarative <del>table of contents</del><ins>global navigation structure</ins> (the NCX). </li> </ul> <p class="Copy"> This OPF specification is separate from the OPS markup specification to modularize the described packaging methodology and the described content. This will help facilitate the use of this packaging technology by other standards bodies (e.g. DAISY) in non-OPS contexts. </p> <p class="Copy"> A third specification, the <del>OEBPS</del><ins>Open</ins> Container Format (OCF) Specification, defines the standard mechanism by which all components of an electronic publication can be packaged together into a single file for transmission, delivery and archival. </p> <ins><p class="Copy"> Together, these three standards constitute EPUB. </p></ins> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC1.2" id="Section1.2" name="Section1.2">1.2: Definitions</a> </h2> <div class="DefinitionList"> <p class="DefinitionName"> Content Provider </p> <p class="DefinitionCopy"> A publisher, author, or other information provider who provides a publication to one or more Reading Systems in the form described in this specification and the OPS specification. </p> <p class="DefinitionName"> Deprecated </p> <p class="DefinitionCopy"> A feature that is permitted, but not <span class="RFC">recommended</span>, by this specification. Such features might be removed in future revisions. Conformant Reading Systems <span class="RFC">must</span> support deprecated features. </p> <ins><p class="DefinitionName"> EPUB </p> <p class="DefinitionCopy"> The publication format as defined by the OCF 2.0.1, OPF 2.0.1, and OPF 2.0.1 specifications. </p> <p class="DefinitionName"> EPUB Publication </p> <p class="DefinitionCopy"> A collection of OPS Documents, an OPF Package file, and other files, typically in a variety of media types, including structured text and graphics, packaged in an OCF container that constitute a cohesive unit for publication, as defined by the EPUB standards. </p> <p class="DefinitionName"> EPUB Reading System (or Reading System) </p> <p class="DefinitionCopy"> A combination of hardware and/or software that accepts EPUB Publications and makes them available to consumers of the content. Great variety is possible in the architecture of Reading Systems. A Reading System <span class="RFC">may</span> be implemented entirely on one device, or it <span class="RFC">may</span> be split among several computers. In particular, a reading device that is a component of a Reading System need not directly accept OCF-Packaged EPUB Publications, but all Reading Systems <span class="RFC">must</span> do so. Reading Systems <span class="RFC">may</span> include additional processing functions, such as compression, indexing, encryption, rights management, and distribution. </p></ins> <p class="DefinitionName"> Extended Module </p> <p class="DefinitionCopy"> A module of a modularized XML vocabulary (i.e. a set of named modules is defined in its specification) that is not mandated to be supported by its specification (e.g. the XHTML ruby or forms modules in the OPS context). </p> <p class="DefinitionName"> Inline XML Island </p> <p class="DefinitionCopy"> An inline XML Island is an XML document fragment using a non-Preferred Vocabulary or using an Extended Module that exists within an XHTML Preferred Vocabulary document within an OPS Publication. </p> <p class="DefinitionName"> NCX </p> <p class="DefinitionCopy"> A declarative <del>table of contents</del><ins>global navigation definition</ins> (the Navigation Center eXtended or NCX). </p> <p class="DefinitionName"> OCF </p> <p class="DefinitionCopy"> The <del>OEBPS</del><ins>Open</ins> Container Format defines a mechanism by which all components of an OPS Publication can be combined into a single file-system entity.<ins> OCF is defined by the <a href= "http://www.idpf.org/doc_library/epub/OCF_2.0.1_draft.htm" target="_blank" title="The OCF Specification">OCF Specification</a>.</ins> </p> <p class="DefinitionName"> OEBPS </p> <p class="DefinitionCopy"> The Open Publication Structure. Previous versions of this specification (OPF) and its related specification, OPS, were unified into the single OEBPS specification. For this version, OEBPS was broken into separate OPF and OPS specifications to aid modular adoption of the specifications. OEBPS 1.2 was the highest version of the previous unified specification. </p> <p class="DefinitionName"> OPF </p> <p class="DefinitionCopy"> The Open Packaging Format — this standard — defines the mechanism by which all components of a published work conforming to the OPS standard including metadata, reading order and navigational information are packaged into an OPS Publication. </p> <p class="DefinitionName"> OPF Package Document </p> <p class="DefinitionCopy"> An XML Document that describes an OPS Publication and references all files used by the OPS Publication that are not part of the OPF Package Document itself. It identifies all other files in the Publication and provides descriptive information about them. The OPF Package Document is defined by this specification and is valid to the OPF Package Schema defined herein. </p> <p class="DefinitionCopy"> The "root file" of the OPF Package Document <span class="RFC">should</span> use the <span class="File">.opf</span> extension. This XML file <span class="RFC">may</span> refer to other XML files via XML’s general entity mechanism, but those files <span class="RFC">must not</span> use the <span class="File">.opf</span> file extension. This construction could be used to simplify the creation of OPF Package Documents for very large Publications. However, the most common case is for the OPF Package Document to be a single XML file using the <span class="File">.opf</span> extension. </p> <p class="DefinitionName"> OPS </p> <p class="DefinitionCopy"> The Open Publication Structure — the sister-standard to this standard — defines the markup necessary to construct OPS Content Documents.<ins> OPS is defined by the <a href= "http://www.idpf.org/doc_library/epub/OPS_2.0.1_draft.htm" target="_blank" title="The OPS Specification">OPS Specification</a>.</ins> </p> <p class="DefinitionName"> OPS Content Document </p> <p class="DefinitionCopy"> An XHTML, DTBook, or out-of-line XML document that conforms to the OPS specification that can legally appear in the OPF Package Document <span class= "Element">spine</span>. </p> <p class="DefinitionName"> OPS Core Media Type </p> <p class="DefinitionCopy"> A MIME media type, defined in the OPS Specification, that all Reading Systems <span class="RFC">must</span> support. </p> <p class="DefinitionName"> OPS Publication </p> <p class="DefinitionCopy"> A collection of OPS Content Documents, an OPF Package Document, and other files, typically in a variety of media types, including structured text and graphics, that constitute a cohesive unit for publication. </p> <p class="DefinitionName"> Out-of-Line XML Island </p> <p class="DefinitionCopy"> An Out-Of-Line XML Island is an XML document that exists within an OPS Publication and is either not authored using a Preferred Vocabulary or is authored using a Preferred Vocabulary but uses Extended Modules. It is an entirely separate, complete, and valid XML document. </p> <p class="DefinitionName"> Preferred Vocabulary </p> <p class="DefinitionCopy"> XML consisting only of OPS-supported XHTML markup and/or DTBook markup. </p> <p class="DefinitionName"> Reader </p> <p class="DefinitionCopy"> A person who reads a publication. </p> <p class="DefinitionName"> Reading System </p> <p class="DefinitionCopy"> <del>A combination of hardware and/or software that accepts OPS Publications (likely packaged in an OCF Container) and makes them available to consumers of the content. Great variety is possible in the architecture of Reading Systems. A Reading System <span class="RFC">may</span> be implemented entirely on one device, or it <span class="RFC">may</span> be split among several computers. In particular, a Reading Device that is a component of a Reading System <span class="RFC">need not</span> directly accept OPS Publications, but all Reading Systems <span class= "RFC">must</span> do so. Reading Systems <span class="RFC">may</span> include additional processing functions, such as compression, indexing, encryption, rights management, and distribution.</del> <ins>See EPUB Reading System.</ins> </p> <p class="DefinitionName"> XML Document </p> <p class="DefinitionCopy"> <del>An XML Document is a complete and valid XML document as defined in XML 1.1 (<a href= "http://www.w3.org/TR/xml11/" target="_blank" title="The XML 1.1 specification.">http://www.w3.org/TR/xml11/</a>).</del> <ins>An XML Document is a complete and valid XML document as defined in XML 1.0 (Fourth Edition) (<a href= "http://www.w3.org/TR/2006/REC-xml-20060816/" target="_blank" title="The XML 1.0 specification.">http://www.w3.org/TR/2006/REC-xml-20060816/</a>).</ins> </p> <p class="DefinitionName"> XML Document Fragment </p> <p class="DefinitionCopy"> Referred to as either a document fragment or as an XML Document Fragment, as defined in Document Object Model Level 1 (<a href="http://www.w3.org/TR/REC-DOM-Level-1/" target="_blank" title="DOM Level 1 specification.">http://www.w3.org/TR/REC-DOM-Level-1/</a>) but with the additional requirement that they be well-formed. </p> <p class="DefinitionName"> XML Island </p> <p class="DefinitionCopy"> An Inline XML Island or an Out-of-Line XML island. </p> <p class="DefinitionName"> XML Namespaces </p> <p class="DefinitionCopy"> Referred to as XML namespaces, or just namespaces, these must conform to XML Namespaces <del>(<a href="http://www.w3.org/TR/xml-names11/" target="_blank" title="XML Namespaces specification.">http://www.w3.org/TR/xml-names11/</a>).</del> <ins>(<a href="http://www.w3.org/TR/2006/REC-xml-names-20060816/" target="_blank" title="XML Namespaces specification.">http://www.w3.org/TR/2006/REC-xml-names-20060816/</a>).</ins> </p> </div> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC1.3" id="Section1.3" name="Section1.3">1.3: Relationship to Other Specifications</a> </h2> <p class="Copy"> This specification combines subsets and applications of other specifications. Together, these facilitate the construction, organization, presentation, and unambiguous interchange of electronic documents: </p> <ol> <li> <span class="FormalName">Extensible Markup Language (XML) 1.<del>1</del><ins>0</ins> (<del>Second</del><ins>Fourth</ins> Edition)</span> specification <del>(<a href="http://www.w3.org/TR/xml11/" target="_blank" title="The XML 1.1 specification.">http://www.w3.org/TR/xml11/</a>); and</del> <ins>(<a href="http://www.w3.org/TR/2006/REC-xml-20060816/" target="_blank" title="The XML 1.1 specification.">http://www.w3.org/TR/2006/REC-xml-20060816/</a>); and</ins> </li> <li> <span class="FormalName">Namespaces in XML 1.0 (Second Edition)</span> <del>(<a href= "http://www.w3.org/TR/xml-names11/" target="_blank" title="The XML Namespaces specification.">http://www.w3.org/TR/xml-names11/</a>);</del> <ins>(<a href="http://www.w3.org/TR/2006/REC-xml-20060816/" target="_blank" title="The XML Namespaces specification.">http://www.w3.org/TR/2006/REC-xml-20060816/</a>);</ins> and </li> <li>The OPS Specification (<a href="http://www.idpf.org/doc_library/epub/OPS_2.0.1_draft.htm" target="_blank" title= "The OPS specification.">http://www.idpf.org/<del>ops/ops2.0/download/</del><ins>doc_library/epub/OPS_2.0.1_draft.htm</a>); and </li> <li> <span class="FormalName">XHTML™ 1.1 - Module-based XHTML - Second Edition</span> specification (<a href="http://www.w3.org/TR/xhtml11/" target="_blank" title="The XHTML 1.1 specification.">http://www.w3.org/TR/xhtml11/</a>); and </li> <li> <span class="FormalName">Specifications for the Digital Talking Book (DTB)</span> (<a href="http://www.niso.org/standards/resources/Z39-86-2005.html" target="_blank" title= "The DTB specification.">http://www.niso.org/standards/resources/Z39-86-2005.html</a>); and </li> <li> <span class="FormalName">Dublin Core Metadata Element Set, Version 1.1</span> specification (<a href="http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "The Dublin Core Metadata Element Set specification.">http://dublincore.org/documents/2004/12/20/dces/</a>) and the MARC relator code list (<a href="http://www.loc.gov/marc/relators/" target="_blank" title="MARC Relator codes.">http://www.loc.gov/marc/relators/</a>); and </li> <li> <span class="FormalName">Unicode Standard, Version 4.0. Reading, Mass.: Addison-Wesley, 2003</span>, as updated from time to time by the publication of new versions. (See <a href="http://www.unicode.org/unicode/standard/versions/" target="_blank" title= "The Unicode Standard.">http://www.unicode.org/unicode/standard/versions</a> for the latest version and additional information on versions of the standard and of the Unicode Character Database); and </li> <li>Particular MIME media types (<a href="http://www.ietf.org/rfc/rfc4288.txt" target="_blank" title= "Media Type Specifications and Registration Procedures RFC.">http://www.ietf.org/rfc/rfc4288.txt</a> and <a href="http://www.iana.org/assignments/media-types/index.html" target="_blank" title= "IANA MIME media types document.">http://www.iana.org/assignments/media-types/index.html</a>); and </li> <li> <span class="FormalName">Web Content Accessibility Guidelines 1.0</span> (<a href= "http://www.w3.org/TR/WCAG10/" target="_blank" title="WAI Guidelines.">http://www.w3.org/TR/WCAG10/</a>); and </li> <li> <span class="FormalName">RFC 2119: Key words for use in RFCs to Indicate Requirement Levels.</span> (<a href="http://www.ietf.org/rfc/rfc2119.txt" target="_blank" title="RFC 2119">http://www.ietf.org/rfc/rfc2119.txt</a>). </li> </ol> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.3.1" id="Section1.3.1" name="Section1.3.1">1.3.1: Relationship to XML</a> </h3> <p class="Copy"> OPF is based on XML because of XML’s generality and simplicity, and because XML documents are likely to adapt well to future technologies and uses. XML also provides well-defined rules for the syntax of documents, which decreases the cost to implementers and reduces incompatibility across systems. Further, XML is extensible: it is not tied to any particular type of document or set of element types, it supports internationalization, and it encourages document markup that can represent a document’s internal parts more directly, making them amenable to automated formatting and other types of computer processing. </p> <ul> <li>Reading Systems <span class="RFC">must</span> be XML processors as defined in XML 1.<del>1</del><ins>0</ins>. All OPF Package Documents <span class="RFC">must</span> be valid XML documents according to the OPF Package Schema. </li> </ul> <ins><p class="Copy"> Reading Systems <span class="RFC">may</span> support XML 1.1, but this feature is deprecated in version 2.0.1 (in favor of XML 1.0). Support for XML 1.1 will be removed in the next version of the specification. </p></ins> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.3.2" id="Section1.3.2" name="Section1.3.2">1.3.2: Relationship to XML Namespaces</a> </h3> <p class="Copy"> Reading Systems <span class="RFC">must</span> process XML namespaces according to the XML Namespaces Recommendation at <a href="http://www.w3.org/TR/2006/REC-xml-names-20060816/" target="_blank" title="The XML Namespaces specification."><del>http://www.w3.org/TR/xml-names11/</del><ins>http://www.w3.org/TR/2006/REC-xml-names-20060816/</ins></a>. </p> <p class="Copy"> Namespace prefixes distinguish identical names that are drawn from different XML vocabularies. An XML namespace declaration in an XML document associates a namespace prefix with a unique URI. The prefix can then be employed on element or attribute names in the document. Alternatively, a namespace declaration in an XML document <span class="RFC">may</span> identify a URI as the default namespace, applicable to elements lacking a namespace prefix. The XML namespace prefix is separated from the suffix element or attribute name by a colon. </p> <p class="Copy"> The namespace for the OPF Package Document is <span class= "Namespace">http://www.idpf.org/2007/opf</span>, and <span class="RFC">must</span> be declared at the root of all OPF Package Documents. In addition, to be processed as an OPF 2.0 package, a <span class="Attribute">version</span> attribute with a value of <span class="AttributeValue">2.0</span> must be specified on the <span class="Element">package</span> element. A <span class="Element">package</span> element that omits the <span class="Attribute">version</span> attribute <span class="RFC">must</span> be processed as an OEBPS 1.2 package. </p> <p class="Copy"> Example: </p> <pre class="Example"> &lt;package version="2.0" xmlns="http://www.idpf.org/2007/opf"&gt; ... &lt;/package&gt; </pre> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.3.3" id="Section1.3.3" name="Section1.3.3">1.3.3: Relationship to Dublin Core</a> </h3> <p class="Copy"> Dublin Core metadata is designed to minimize the cataloging burden on authors and publishers, while providing enough metadata to be useful. This specification supports the set of Dublin Core 1.1 metadata elements (<a href= "http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "Dublin Core metadata elements specification.">http://dublincore.org/documents/2004/12/20/dces/</a>), supplemented with a small set of additional attributes addressing areas where more specific information is useful. For example, the OPF <span class="Attribute">role</span> attribute added to the Dublin Core <span class="Element">creator</span> and <span class= "Element">contributor</span> elements allows for much more detailed specification of contributors to a publication, including their roles expressed via relator codes. </p> <p class="Copy"> Content providers <span class="RFC">must</span> include a minimum set of metadata elements, defined in <a href="#Section2.2" title="Publication Metadata">Section 2.2</a>, and <span class="RFC">should</span> incorporate additional metadata to enable readers to discover publications of interest. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.3.4" id="Section1.3.4" name="Section1.3.4">1.3.4: Relationship to Unicode</a> </h3> <p class="Copy"> OPF Package Documents <span class="RFC">may</span> use the entire Unicode character set, in UTF-8 or UTF-16 encodings, as defined by Unicode (see <a href= "http://www.unicode.org/unicode/standard/versions" target="_blank" title= "The Unicode Standard.">http://www.unicode.org/unicode/standard/versions</a>). The use of Unicode facilitates internationalization and multilingual documents. However, Reading Systems are <span class="RFC">not required</span> to provide glyphs for all Unicode characters. </p> <p class="Copy"> Reading Systems <span class="RFC">must</span> parse all UTF-8 and UTF-16 characters properly (as required by XML). Reading Systems <span class="RFC">may</span> decline to display some characters, but <span class="RFC">must</span> be capable of signaling in some fashion that undisplayable characters are present. Reading Systems <span class="RFC">must not</span> display Unicode characters merely as if they were 8-bit characters. For example, the biohazard symbol (0x2623) <span class="RFC">need not</span> be supported by including the correct glyph, but <span class="RFC">must not</span> be parsed or displayed as if its component bytes were the two characters "&amp;#" (0x0026 0x0023). </p> <p class="Copy"> To aid Reading Systems in implementing consistent searching and sorting behavior it is <span class="RFC">required</span> that Unicode Normalization Form C (NFC) be used (See <a href="http://www.w3.org/TR/charmod-norm/" target="_blank" title="Unicode Normalization Form C.">http://www.w3.org/TR/charmod-norm/</a>). </p> </div> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC1.4" id="Section1.4" name="Section1.4">1.4: Conformance</a> </h2> <p class="Copy"> The keywords "<span class="RFC">must</span>", "<span class="RFC">must not</span>", "<span class="RFC">required</span>", "<span class="RFC">shall</span>", "<span class= "RFC">shall not</span>", "<span class="RFC">should</span>", "<span class= "RFC">recommended</span>", "<span class="RFC">may</span>", and "<span class= "RFC">optional</span>" in this document <span class="RFC">must</span> be interpreted as described in <a href="http://www.ietf.org/rfc/rfc2119.txt" target="_blank" title="RFC 2119.">RFC 2119</a>. </p> <p class="Copy"> This section defines conformance for OPF Package Documents, and Reading Systems that process those Documents. </p> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.4.1" id="Section1.4.1" name="Section1.4.1">1.4.1: Package Conformance</a> </h3> <p class="Copy"> This specification defines conformance for both individual OPF Package Documents and for a collection of files including exactly one OPF Package Document that collectively are referred to as an OPS Publication. </p> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.4.1.1" id="Section1.4.1.1" name="Section1.4.1.1">1.4.1.1: Package Conformance</a> </h4> <p class="Copy"> Each conformant OPF Package Document <span class="RFC">must</span> meet these necessary conditions: </p> <ol class="BulletStyle_lower-roman"> <li>it is a well-formed XML document (as defined in XML 1.<del>1</del><ins>0</ins>); and </li> <li>it is encoded in UTF-8 or UTF-16; and </li> <li>it is a valid XML document according to the OPF Package Schema defined in <a href="#AppendixA" title="The OPF Package Schema.">Appendix A</a>; and </li> <li>it <span class="RFC">may</span> consist of one or more XML files, but only one <span class="RFC">may</span> use the file extension <span class="File">.opf</span>. </li> </ol> </div> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.4.1.2" id="Section1.4.1.2" name="Section1.4.1.2">1.4.1.2: Publication Conformance</a> </h4> <p class="Copy"> A collection of files is a conforming OPS Publication if: </p> <ol class="BulletStyle_lower-roman"> <li>it includes a single OPF Package Document that obeys the Package Conformance Requirements listed above; and </li> <li> only one file in the Publication <span class="RFC">may</span> use the file extension <span class="File">.opf</span>. If such a file is present, it <span class="RFC">must</span> be the "root file" of the OPF Package Document; and </li> <li>the OPF Package Document includes one and only one manifest entry corresponding to each other file in the OPS Publication excluding the file or files that make up the OPF Package Document itself; and </li> <li>the manifest entry for each file in the publication specifies a MIME media type for the file (see <a href="http://www.ietf.org/rfc/rfc2046.txt" target="_blank" title="MIME Part 2: Media Types.">http://www.ietf.org/rfc/rfc2046.txt</a>); and </li> <li>each file whose manifest entry identifies it as being in one of the OPS Core Media Types conforms as defined for those MIME media types; and </li> <li>each file listed in the spine of the OPF Package Document <span class= "RFC">must</span> conform to the OPS Content Document requirements defined in the OPS specification; and </li> <li> <del>an</del><ins>the <span class="RFC">required</span></ins> NCX<ins>, encoded in either UTF-8 or UTF-16, is</ins> <del><span class="RFC">must</span> be</del> included; and </li> <li>the <span class="Element">metadata</span> element or deprecated <span class= "Element">dc-metadata</span> element contains at least one <span class= "Element">identifier</span> element, at least one <span class= "Element">title</span> element, and at least one <span class= "Element">language</span> element drawn from the Dublin Core tag set; and </li> <li>the <span class="Attribute">unique-identifier</span> attribute of the <span class="Element">package</span> element is a correct XML <span class= "Element">IDREF</span> to a Dublin Core <span class="Element">identifier</span> element; and </li> <li>any extended values specified for the Dublin Core <span class= "Element">creator</span> and <span class="Element">contributor</span> elements' OPF <span class="Attribute">role</span> attribute <span class="RFC">must</span> be taken from the registered MARC Relator Code list or <span class="RFC">must</span> begin with <span class="AttributeValue">oth.</span>; and </li> <li>any extended values specified for the <span class="Element">guide</span> element's <span class="Attribute">type</span> attribute begin with <span class= "AttributeValue">other.</span>; and </li> <li>the <span class="Attribute">version</span> attribute of the <span class= "Element">package</span> element is specified with a value of <span class= "AttributeValue">2.0</span>; and </li> <li>the <span class="Element">package</span> element's namespace <del>must</del><ins>is</ins> be <span class="Namespace">http://www.idpf.org/2007/opf</span><ins>; and</ins> </li> <ins><li>any required fallbacks are included per <a href="#Section2.3.1" title="Fallback Items">Section 2.3.1</a>. </li></ins> </ol> <p class="Copy"> This specification and the OPS specification impose additional conformance constraints on the Package Document and on OPS Content Documents. </p> </div> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.4.2" id="Section1.4.2" name="Section1.4.2">1.4.2: Reading System Conformance</a> </h3> <p class="Copy"> This specification defines conformance for a Reading System when presented with an OPS Publication. OPS Content documents have further conformance requirements that can be found in the OPS specification. A Reading System is conformant if and only if it processes documents as follows: </p> <ol class="BulletStyle_upper-alpha"> <li>When presented with an OPF Package Document the Reading System <span class="RFC"> must</span> <ol class="BulletStyle_lower-roman"> <li>process all elements and attributes as described in <a href="#Section2" title="The OPF Package Document.">Section 2</a> of this specification; and </li> <li>ignore all elements and attributes not described in <a href="#Section2" title="The OPF Package Document.">Section 2</a> of this specification; and </li> <li>verify the existence of the appropriate namespace specifications, as defined in the <a href="#Section1.3.2" title="Relationship to XML Namespaces">Relationship to XML Namespaces</a> section above. </li> </ol> </li> <li>When providing navigation via the OPF spine, the Reading System <span class= "RFC">must not</span> render content that is not an OPS Content Document. </li> <li>When presented with an OEBPS 1.2 Package, the Reading System <span class= "RFC">must</span> process it as a conformant OEBPS 1.2 Reading System would. Note that only the OEBPS 1.2 Package <span class="RFC">must</span> be processed as an OEBPS 1.2 Reading System would, not the content documents referred to in the Package. </li> <li>When presented with an OEBPS 1.2 Publication, a Reading System <span class="RFC"> should</span> process it as a conformant OEBPS 1.2 Reading System would. Such a Reading System can claim an optional level of Reading System conformance, "Backward Compatibility Conformance." </li> </ol> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC1.4.3" id="Section1.4.3" name="Section1.4.3">1.4.3: Compatibility of OPF Version 2.0</a> </h3> <p class="Copy"> Version 2.0 of OPF is not meant to be a substantially "new" specification. However, version 2.0 does add one significant functional enhancement in addition to a number of other changes from OEBPS version 1.2. Specifically, the following are the most substantive additions: </p> <ul> <del><li>XML 1.1 is incorporated. </li></del> <li>XML namespace processing is now <span class= "RFC">required</span>. </li> <li>Support for DAISY’s Navigation Center eXtended (NCX) has been added to enhance ease of navigation and accessibility of publications. </li> <li> Dublin Core element names <span class= "RFC">must</span> now be lower case to conform to Dublin Core’s XML implementation recommendations. </li> <li>The <span class="Element">tours</span> element has been deprecated. </li> </ul> <p class="Copy"> While most changes from version OEBPS 1.2 to OPF 2.0 have been done via deprecation rather than removal of previous functionality, the OEBPS 1.2 Package is not a fully compatible subset of OPF 2.0 (e.g. new namespace processing requirements). </p> </div> </div> </div> <div class="Section"> <h1 class="SectionTitle"> <a class="SectionTitle" href="#TOC2.0" id="Section2.0" name="Section2.0">2.0: The OPF Package Document</a> </h1> <p class="Copy"> A publication conforming to this specification <span class="RFC">must</span> include exactly one XML OPF Package Document, which specifies the OPS Content Documents, images, and other objects that make up the OPS Publication and how they relate to each other. </p> <p class="Copy"> The OPF Package Document <span class="RFC">should</span> be named ending in the extension "<span class= "File">.opf</span>", in order to make it readily identifiable within the group of files making up the publication. The OPS Package Document is of MIME media type <span class="MIMEType">application/oebps-package+xml</span>. This specification does not define means for physically bundling files together to make one data transfer object (such as using zip or tar); the <del>OEBPS</del><ins>Open<ins> Container Format (OCF) specifies this functionality. </p> <p class="Copy"> This specification neither precludes nor requires the inclusion of the OPF Package Schema in a Publication. </p> <p class="Copy"> The major parts of the OPF Package Document are: </p> <div class="InlineDefinitionList"> <p class="DefinitionName"> Package Name </p> <p class="DefinitionCopy"> A unique identifier for the OPS Publication as a whole. </p> <p class="DefinitionName"> Metadata </p> <p class="DefinitionCopy"> Publication metadata (title, author, publisher, etc.). </p> <p class="DefinitionName"> Manifest </p> <p class="DefinitionCopy"> A list of files (documents, images, style sheets, etc.) that make up the publication. The manifest also includes fallback declarations for files of types not supported by this specification. </p> <p class="DefinitionName"> Spine </p> <p class="DefinitionCopy"> An arrangement of documents providing a linear reading order. </p> <p class="DefinitionName"> Tours (Deprecated) </p> <p class="DefinitionCopy"> A set of alternate reading sequences through the publication, such as selective views for various reading purposes, reader expertise levels, etc. </p> <p class="DefinitionName"> Guide </p> <p class="DefinitionCopy"> A set of references to fundamental structural features of the publication, such as table of contents, foreword, bibliography, etc. </p> </div> <p class="Copy"> An OPF Package Document <span class="RFC">must</span> be a valid XML document conforming to the OPF Package schema (<a href="#AppendixA" title="The OPF Package Schema.">Appendix A</a>). An informal outline of the package is as follows: </p> <pre class="Example"> &lt;?xml version="1.0"?&gt; &lt;package version="2.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId"&gt; metadata manifest spine guide &lt;/package&gt; </pre> <p class="Copy"> The following sections describe the parts of the OPF Package Document. </p> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.1" id="Section2.1" name="Section2.1">2.1: Package Identity</a> </h2> <p class="Copy"> The <span class="Element">package</span> element is the root element in an OPF Package Document; all other elements are nested within it. </p> <p class="Copy"> The <span class="Element">package</span> element <span class= "RFC">must</span> specify a value for its <span class= "Attribute">unique-identifier</span> attribute. The <span class= "Attribute">unique-identifier</span> attribute's value specifies which Dublin Core <span class="Element">identifier</span> element, described in <a href="#Section2.2.10" target="_blank" title="&lt;identifier&gt;&lt;/identifier&gt;">Section 2.2.10</a>, provides the package's preferred, or primary, identifier. The OPF Package Document's author is responsible for choosing a primary identifier that is unique to one and only one particular package (i.e., the set of files referenced from the package document's <span class="Element">manifest</span>). </p> <p class="Copy"> Notwithstanding the requirement for uniqueness, Reading Systems <span class="RFC">must not</span> fail catastrophically if they encounter two distinct packages with the same purportedly unique primary identifier. </p> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.2" id="Section2.2" name="Section2.2">2.2: Publication Metadata</a> </h2> <p class="Copy"> The <span class="RFC">required</span> <span class="Element">metadata</span> element is used to provide information about the publication as a whole. It <span class= "RFC">may</span> contain Dublin Core <span class="Element">metadata</span> elements directly or within a (now deprecated) <span class="Element">dc-metadata</span> sub-element. Supplemental metadata can also be specified directly or within a (now deprecated) <span class="Element">x-metadata</span> sub-element. </p> <p class="Copy"> Reading Systems <span class="RFC">must</span> allow the specification of the deprecated <span class="Element">dc-metadata</span> and <span class="Element">x-metadata</span> elements. Newly created OPS 2.0 packages <span class="RFC">should not</span> create <span class="Element">dc-metadata</span> or <span class="Element">x-metadata</span> elements. If the <span class="Element">dc-metadata</span> element is used, all <span class="Element">dc</span> elements <span class="RFC">must</span> go in <span class="Element">dc-metadata</span> and all other <span class= "Element">metadata</span> elements, if any, <span class="RFC">must</span> go into <span class="Element">x-metadata</span>. If the <span class= "Element">dc-metadata</span> element is not used, all metadata elements <span class= "RFC">must</span> go directly in the <span class="Element">metadata</span> element. </p> <p class="Copy"> The <span class="RFC">required</span> <span class="Element">metadata</span> or <span class="Element">dc-metadata</span> (deprecated) elements contain specific publication-level metadata as defined by the Dublin Core Metadata Initiative (<a href= "http://www.dublincore.org/" target="_blank" title="Dublin Core website,">http://www.dublincore.org/</a>). The descriptions below are included for convenience, and the Dublin Core's own definitions take precedence (see <a href="http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "Dublin Core metadata definitions.">http://dublincore.org/documents/2004/12/20/dces/</a>). </p> <p class="Copy"> One or more <span class="RFC">optional</span> instances of a <span class= "Element">meta</span> element, analogous to the XHTML 1.1 <span class= "Element">meta</span> element but applicable to the publication as a whole, <span class="RFC">may</span> be placed within the <span class="Element">metadata</span> element or within the deprecated <span class="Element">x-metadata</span> element. This allows content providers to express arbitrary metadata beyond the data described by the Dublin Core specification. Individual OPS Content Documents <span class= "RFC">may</span> include the <span class="Element">meta</span> element directly (as in XHTML 1.1) for document-specific metadata. This specification uses the OPF Package Document alone as the basis for expressing publication-level Dublin Core metadata. </p> <p class="Copy"> For example: </p> <pre class="Example"> &lt;metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf"&gt; &lt;dc:title&gt;Tale of Two Cities&lt;/dc:title&gt; &lt;dc:creator opf:role="aut"&gt;Charles Dickens&lt;/dc:creator&gt; ... &lt;meta name="price" content="USD 19.99" /&gt; &lt;/metadata&gt; </pre> <p class="Copy"> The XML namespace mechanism (see <a href="http://www.w3.org/TR/2006/REC-xml-names-20060816/" target="_blank" title="XML Namespaces specification."><del>http://www.w3.org/TR/REC-xml-names11/</del><ins>http://www.w3.org/TR/2006/REC-xml-names-20060816/</ins></a>) is used to identify the elements used for Dublin Core metadata without conflict. The <span class="Element">metadata</span> or <span class="Element">dc-metadata</span> (deprecated) elements may contain any number of instances of any Dublin Core elements. Dublin Core metadata elements may occur in any order; in fact, multiple instances of the same element type (e.g. multiple Dublin Core <span class= "Element">creator</span> elements) can be interspersed with other metadata elements without change of meaning. </p> <p class="Copy"> Each Dublin Core field is represented by an element whose content is the field's value. At least one of each of Dublin Core <span class="Element">title</span>, <span class= "Element">identifier</span> and <span class="Element">language</span> <span class= "RFC">must</span> be included in the <span class="Element">metadata</span> element. Dublin Core elements, like any other elements in the OPF Package Document, <span class= "RFC">may</span> have an <span class="Attribute">id</span> attribute specified. At least one Dublin Core <span class="Element">identifier</span>, which is referenced from the package <span class="Attribute">unique-identifier</span> attribute, <span class= "RFC">must</span> have an <span class="Attribute">id</span> specified. </p> <p class="Copy"> Because the Dublin Core metadata fields for <span class="Element">creator</span> and <span class="Element">contributor</span> do not distinguish roles of specific contributors (such as author, editor, and illustrator), this specification adds an optional <span class="Attribute">role</span> attribute for this purpose. See <a href= "#Section2.2.6" title="Role">Section 2.2.6</a> for a discussion of <span class= "Attribute">role</span>. </p> <p class="Copy"> To facilitate machine processing of Dublin Core <span class="Element">creator</span> and <span class="Element">contributor</span> fields, this specification adds the <span class="RFC">optional</span> <span class="Attribute">file-as</span> attribute for those elements. This attribute is used to specify a normalized form of the contents. See <a href="#Section2.2.2" title="File-As">Section 2.2.2</a> for a discussion of <span class= "Attribute">file-as</span>. </p> <p class="Copy"> This specification also adds a <span class="Attribute">scheme</span> attribute to the Dublin Core <span class="Element">identifier</span> element to provide a structural mechanism to separate an identifier value from the system or authority that generated or defined that <span class="Element">identifier</span> value. See <a href= "#Section2.2.10" title="Scheme.">Section 2.2.10</a> for a discussion of <span class= "Attribute">scheme</span>. </p> <p class="Copy"> This specification also adds an <span class="Attribute">event</span> attribute to the Dublin Core <span class="Element">date</span> element to enable content providers to distinguish various publication specific dates (for example, creation, publication, modification). See <a href="#Section2.2.7" title="Event.">Section 2.2.7</a> for a discussion of <span class= "Attribute">event</span>. For example: </p> <pre class="Example"> &lt;package version="2.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId"&gt; &lt;metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf"&gt; &lt;dc:title&gt;Alice in Wonderland&lt;/dc:title&gt; &lt;dc:language&gt;en&lt;/dc:language&gt; &lt;dc:identifier id="BookId" opf:scheme="ISBN"&gt; 123456789X &lt;/dc:identifier&gt; &lt;dc:creator opf:role="aut"&gt;Lewis Carroll&lt;/dc:creator&gt; &lt;/metadata&gt; ... &lt;/package&gt; </pre> <p class="Copy"> There are no attributes for the elements within metadata defined by Dublin Core — only the elements' contents are so defined. In the above example, the specification of the OPF namespace on the <span class="Element">metadata</span> element is present to resolve the <span class="Attribute">scheme</span> and <span class= "Attribute">role</span> attributes used in the <span class="Element">identifier</span> and <span class="Element">creator</span> elements, respectively. </p> <p class="Copy"> For compatibility with Guidelines for implementing Dublin Core in XML (<a href= "http://dublincore.org/documents/dc-xml-guidelines/" target="_blank" title= "Guidelines for implementing Dublin Core in XML">http://dublincore.org/documents/dc-xml-guidelines/</a>) this specification allows xsi:type attribute for metadata items that can be given using some sort of encoding scheme and xml:lang attribute when an item can be given using human-readable text. Elements that allow xsi:type attribute are identifier, language, date, format and type. Elements that allow xml:lang attribute are: title, contributor, coverage, creator, description, publisher, relation, rights, source, and subject. This specification does not impose any specific rules for these attributes (with possible exception of heuristics that use xml:lang described below). </p> <p class="Copy"> The following subsections describe the individual Dublin Core metadata elements. </p> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.1" id="Section2.2.1" name="Section2.2.1">2.2.1: <span class="Element">&lt;title&gt; &lt;/title&gt;</span></a> </h3> <p class="Copy"> The title of the publication. An OPF Package Document <span class="RFC">must</span> include at least one instance of this element type, however multiple instances are permitted. Any Reading System that displays title metadata <span class= "RFC">should</span> display the content of the most appropriate <span class= "Element">title</span> element(s). Determination of the most appropriate titles is not defined by this specification, but <span class="RFC">may</span> include the available fonts, an examination of <span class="Attribute">xml:lang</span> attributes, or other heuristics. In the absence of such an algorithm, conforming Reading Systems <span class="RFC">should</span> consider either the first <span class="Element">title</span> element or all the <span class= "Element">title</span> elements as the most appropriate. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.2" id="Section2.2.2" name="Section2.2.2">2.2.2: <span class="Element">&lt;creator&gt; &lt;/creator&gt;</span></a> </h3> <p class="Copy"> A primary creator or author of the publication. Additional contributors whose contributions are secondary to those listed in <span class="Element">creator</span> elements <span class="RFC">should</span> be named in <span class= "Element">contributor</span> elements. </p> <p class="Copy"> Publications with multiple co-authors <span class="RFC">should</span> provide multiple <span class="Element">creator</span> elements, each containing one author. The order of <span class="Element">creator</span> elements is presumed to define the order in which the creators' names <span class="RFC">should</span> be presented by the Reading System. </p> <p class="Copy"> This specification recommends that the content of the <span class= "Element">creator</span> elements hold the text for a single name as it would be presented to the Reader. </p> <p class="Copy"> This specification adds to the <span class="Element">creator</span> element two <span class="RFC">optional</span> attributes: <span class="Attribute">role</span> and <span class="Attribute">file-as</span>. The set of values for <span class= "Attribute">role</span> are identical to those defined in <a href="#Section2.2.6" title="Contributor">Section 2.2.6</a> for the <span class= "Element">contributor</span> element. The <span class="Attribute">file-as</span> attribute <span class="RFC">should</span> be used to specify a normalized form of the contents, suitable for machine processing. For example, one might find </p> <pre class="Example"> &lt;dc:creator opf:file-as="King, Martin Luther Jr." opf:role="aut"&gt; Rev. Dr. Martin Luther King Jr. &lt;/dc:creator&gt; </pre> <p class="Copy"> Any Reading System that displays creator metadata <span class="RFC">should</span> display the content of the most appropriate <span class="Element">creator</span> element(s). Determination of the most appropriate creators is not defined by this specification, but <span class="RFC">may</span> include the available fonts, an examination of <span class="Attribute">xml:lang</span> attributes, or other heuristics. In the absence of such an algorithm, conforming Reading Systems <span class="RFC">should</span> display the contents of all <span class= "Element">creator</span> elements, in the order provided, with appropriate separating spacing and/or punctuation. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.3" id="Section2.2.3" name="Section2.2.3">2.2.3: <span class="Element">&lt;subject&gt; &lt;/subject&gt;</span></a> </h3> <p class="Copy"> Multiple instances of the <span class="Element">subject</span> element are supported, each including an arbitrary phrase or keyword. This specification makes no attempt to standardize subject naming schemes, such as the Library of Congress Subject Heading System. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.4" id="Section2.2.4" name="Section2.2.4">2.2.4: <span class="Element">&lt;description&gt; &lt;/description&gt;</span></a> </h3> <p class="Copy"> Description of the publication's content. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.5" id="Section2.2.5" name="Section2.2.5">2.2.5: <span class="Element">&lt;publisher&gt; &lt;/publisher&gt;</span></a> </h3> <p class="Copy"> The publisher as defined by the Dublin Core Metadata Element Set (<a href= "http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "Dublin Core Metadata Element Set.">http://dublincore.org/documents/2004/12/20/dces/</a>). </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.6" id="Section2.2.6" name="Section2.2.6">2.2.6: <span class="Element">&lt;contributor&gt; &lt;/contributor&gt;</span></a> </h3> <p class="Copy"> A party whose contribution to the publication is secondary to those named in <span class="Element">creator</span> elements. </p> <p class="Copy"> Other than significance of contribution, the semantics of this element are identical to those of <span class="Element">creator</span>. Reading Systems are free to choose to display creator information without accompanying contributor information. </p> <p class="Copy"> This specification adds to the <span class="Element">contributor</span> element two <span class="RFC">optional</span> attributes: <span class="Attribute">role</span> and <span class="Attribute">file-as</span>. The <span class="Attribute">file-as</span> attribute is defined as for <span class="Element">creator</span>, and is documented in <a href="#Section2.2.2" title="Creator">Section 2.2.2</a>. </p> <p class="Copy"> The normative list of values used for the <span class="Attribute">role</span> attribute is defined by the MARC relator code list (<a href= "http://www.loc.gov/marc/relators/" target="_blank" title="MARC relator code list.">http://www.loc.gov/marc/relators/</a>). When roles are specified, the 3-character registered MARC values <span class= "RFC">must</span> be used when applicable. Although that list is extensive, other values may be added if a desired role is not covered by those predefined values. Such values must begin with <span class="AttributeValue">oth.</span>, and shall be considered subdivisions of the <span class="AttributeValue">other</span> relator code. Like other constructs in this specification, these values are case-sensitive and <span class="RFC">must</span> be coded entirely in lower-case. </p> <p class="Copy"> For convenience, some relator code values are listed here as examples. Consult the MARC code list cited above for the complete list. </p> <table summary="MARC Relator Codes"> <tr> <td class="MarcName"> Adapter [adp] </td> <td class="MarcValue"> Use for a person who 1) reworks a musical composition, usually for a different medium, or 2) rewrites novels or stories for motion pictures or other audiovisual medium. </td> </tr> <tr> <td class="MarcName"> Annotator [ann] </td> <td class="MarcValue"> Use for a person who writes manuscript annotations on a printed item. </td> </tr> <tr> <td class="MarcName"> Arranger [arr] </td> <td class="MarcValue"> Use for a person who transcribes a musical composition, usually for a different medium from that of the original; in an arrangement the musical substance remains essentially unchanged. </td> </tr> <tr> <td class="MarcName"> Artist [art] </td> <td class="MarcValue"> Use for a person (e.g., a painter) who conceives, and perhaps also implements, an original graphic design or work of art, if specific codes (e.g., [egr], [etr]) are not desired. For book illustrators, prefer Illustrator [ill]. </td> </tr> <tr> <td class="MarcName"> Associated name [asn] </td> <td class="MarcValue"> Use as a general relator for a name associated with or found in an item or collection, or which cannot be determined to be that of a Former owner [fmo] or other designated relator indicative of provenance. </td> </tr> <tr> <td class="MarcName"> Author [aut] </td> <td class="MarcValue"> Use for a person or corporate body chiefly responsible for the intellectual or artistic content of a work. This term may also be used when more than one person or body bears such responsibility. </td> </tr> <tr> <td class="MarcName"> Author in quotations or text extracts [aqt] </td> <td class="MarcValue"> Use for a person whose work is largely quoted or extracted in a works to which he or she did not contribute directly. Such quotations are found particularly in exhibition catalogs, collections of photographs, etc. </td> </tr> <tr> <td class="MarcName"> Author of afterword, colophon, etc. [aft] </td> <td class="MarcValue"> Use for a person or corporate body responsible for an afterword, postface, colophon, etc. but who is not the chief author of a work. </td> </tr> <tr> <td class="MarcName"> Author of introduction, etc. [aui] </td> <td class="MarcValue"> Use for a person or corporate body responsible for an introduction, preface, foreword, or other critical matter, but who is not the chief author. </td> </tr> <tr> <td class="MarcName"> Bibliographic antecedent [ant] </td> <td class="MarcValue"> Use for the author responsible for a work upon which the work represented by the catalog record is based. This can be appropriate for adaptations, sequels, continuations, indexes, etc. </td> </tr> <tr> <td class="MarcName"> Book producer [bkp] </td> <td class="MarcValue"> Use for the person or firm responsible for the production of books and other print media, if specific codes (e.g., [bkd], [egr], [tyd], [prt]) are not desired. </td> </tr> <tr> <td class="MarcName"> Collaborator [clb] </td> <td class="MarcValue"> Use for a person or corporate body that takes a limited part in the elaboration of a work of another author or that brings complements (e.g., appendices, notes) to the work of another author. </td> </tr> <tr> <td class="MarcName"> Commentator [cmm] </td> <td class="MarcValue"> Use for a person who provides interpretation, analysis, or a discussion of the subject matter on a recording, motion picture, or other audiovisual medium. Compiler [com] Use for a person who produces a work or publication by selecting and putting together material from the works of various persons or bodies. </td> </tr> <tr> <td class="MarcName"> Designer [dsr] </td> <td class="MarcValue"> Use for a person or organization responsible for design if specific codes (e.g., [bkd], [tyd]) are not desired. </td> </tr> <tr> <td class="MarcName"> Editor [edt] </td> <td class="MarcValue"> Use for a person who prepares for publication a work not primarily his/her own, such as by elucidating text, adding introductory or other critical matter, or technically directing an editorial staff. </td> </tr> <tr> <td class="MarcName"> Illustrator [ill] </td> <td class="MarcValue"> Use for the person who conceives, and perhaps also implements, a design or illustration, usually to accompany a written text. </td> </tr> <tr> <td class="MarcName"> Lyricist [lyr] </td> <td class="MarcValue"> Use for the writer of the text of a song. </td> </tr> <tr> <td class="MarcName"> Metadata contact [mdc] </td> <td class="MarcValue"> Use for the person or organization primarily responsible for compiling and maintaining the original description of a metadata set (e.g., geospatial metadata set). </td> </tr> <tr> <td class="MarcName"> Musician [mus] </td> <td class="MarcValue"> Use for the person who performs music or contributes to the musical content of a work when it is not possible or desirable to identify the function more precisely. </td> </tr> <tr> <td class="MarcName"> Narrator [nrt] </td> <td class="MarcValue"> Use for the speaker who relates the particulars of an act, occurrence, or course of events. </td> </tr> <tr> <td class="MarcName"> Other [oth] </td> <td class="MarcValue"> Use for relator codes from other lists which have no equivalent in the MARC list or for terms which have not been assigned a code. </td> </tr> <tr> <td class="MarcName"> Photographer [pht] </td> <td class="MarcValue"> Use for the person or organization responsible for taking photographs, whether they are used in their original form or as reproductions. </td> </tr> <tr> <td class="MarcName"> Printer [prt] </td> <td class="MarcValue"> Use for the person or organization who prints texts, whether from type or plates. </td> </tr> <tr> <td class="MarcName"> Redactor [red] </td> <td class="MarcValue"> Use for a person who writes or develops the framework for an item without being intellectually responsible for its content. </td> </tr> <tr> <td class="MarcName"> Reviewer [rev] </td> <td class="MarcValue"> Use for a person or corporate body responsible for the review of book, motion picture, performance, etc. </td> </tr> <tr> <td class="MarcName"> Sponsor [spn] </td> <td class="MarcValue"> Use for the person or agency that issued a contract, or under whose auspices a work has been written, printed, published, etc. </td> </tr> <tr> <td class="MarcName"> Thesis advisor [ths] </td> <td class="MarcValue"> Use for the person under whose supervision a degree candidate develops and presents a thesis, memoir, or text of a dissertation. </td> </tr> <tr> <td class="MarcName"> Transcriber [trc] </td> <td class="MarcValue"> Use for a person who prepares a handwritten or typewritten copy from original material, including from dictated or orally recorded material. </td> </tr> <tr> <td class="MarcName"> Translator [trl] </td> <td class="MarcValue"> Use for a person who renders a text from one language into another, or from an older form of a language into the modern form. </td> </tr> </table> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.7" id="Section2.2.7" name="Section2.2.7">2.2.7: <span class="Element">&lt;date&gt; &lt;/date&gt;</span></a> </h3> <p class="Copy"> Date of publication, in the format defined by "Date and Time Formats" at <a href= "http://www.w3.org/TR/NOTE-datetime" target="_blank" title="W3C Note on dates and times.">http://www.w3.org/TR/NOTE-datetime</a> and by ISO 8601 on which it is based. In particular, dates without times are represented in the form YYYY[-MM[-DD]]: a <span class="RFC">required</span> 4-digit year, an <span class="RFC">optional</span> 2-digit month, and if the month is given, an <span class="RFC">optional</span> 2-digit day of month. </p> <p class="Copy"> The <span class="Element">date</span> element has one <span class= "RFC">optional</span> OPF <span class="Attribute">event</span> attribute. The set of values for event are not defined by this specification; possible values <span class= "RFC">may</span> include: <span class="AttributeValue">creation</span>, <span class= "AttributeValue">publication</span>, and <span class= "AttributeValue">modification</span>. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.8" id="Section2.2.8" name="Section2.2.8">2.2.8: <span class="Element">&lt;type&gt; &lt;/type&gt;</span></a> </h3> <p class="Copy"> <span class="Element">type</span> includes terms describing general categories, functions, genres, or aggregation levels for content. The advised best practice is to select a value from a controlled vocabulary. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.9" id="Section2.2.9" name="Section2.2.9">2.2.9: <span class="Element">&lt;format&gt; &lt;/format&gt;</span></a> </h3> <p class="Copy"> The media type or dimensions of the resource. Best practice is to use a value from a controlled vocabulary (e.g. MIME media types). </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.10" id="Section2.2.10" name="Section2.2.10">2.2.10: <span class="Element">&lt;identifier&gt; &lt;/identifier&gt;</span></a> </h3> <p class="Copy"> A string or number used to uniquely identify the resource. An OPF Package Document <span class="RFC">must</span> include at least one instance of this element type, however multiple instances are permitted. </p> <p class="Copy"> At least one <span class="Element">identifier</span> <span class="RFC">must</span> have an <span class="Attribute">id</span> specified (the value being of the XML "ID" data type), so it can be referenced from the package <span class= "Attribute">unique-identifier</span> attribute described in <a href="#Section2.1" title="Package Identity">Section 2.1</a>. </p> <p class="Copy"> The <span class="Element">identifier</span> element has an <span class= "RFC">optional</span> OPF <span class="Attribute">scheme</span> attribute defined by this specification. The <span class="Attribute">scheme</span> attribute names the system or authority that generated or assigned the text contained within the identifier element, for example "ISBN" or "DOI." The values of the <span class= "Attribute">scheme</span> attribute are case sensitive only when the particular scheme requires it. </p> <p class="Copy"> This specification does not standardize or endorse any particular publication identifier scheme. Specific uses of URLs or ISBNs are not yet addressed by this specification. Identifier schemes are not currently defined by Dublin Core. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.11" id="Section2.2.11" name="Section2.2.11">2.2.11: <span class="Element">&lt;source&gt; &lt;/source&gt;</span></a> </h3> <p class="Copy"> Information regarding a prior resource from which the publication was derived; see the Dublin Core Metadata Element Set (<a href= "http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "Dublin Core Metadata Element Set">http://dublincore.org/documents/2004/12/20/dces/</a>). </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.12" id="Section2.2.12" name="Section2.2.12">2.2.12: <span class="Element">&lt;language&gt; &lt;/language&gt;</span></a> </h3> <p class="Copy"> Identifies a language of the intellectual content of the Publication. An OPF Package Document <span class="RFC">must</span> include at least one instance of this element type, however multiple instances are permitted. The content of this element <span class="RFC">must</span> comply with RFC 3066 (see <a href= "http://www.ietf.org/rfc/rfc3066.txt" target="_blank" title="RFC 3066.">http://www.ietf.org/rfc/rfc3066.txt</a>), or its successor on the IETF Standards Track. The Dublin Core permits other descriptions as well; this specification does not. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.13" id="Section2.2.13" name="Section2.2.13">2.2.13: <span class="Element">&lt;relation&gt; &lt;/relation&gt;</span></a> </h3> <p class="Copy"> An identifier of an auxiliary resource and its relationship to the publication. </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.14" id="Section2.2.14" name="Section2.2.14">2.2.14: <span class="Element">&lt;coverage&gt; &lt;/coverage&gt;</span></a> </h3> <p class="Copy"> The extent or scope of the publication’s content. The advised best practice is to select a value from a controlled vocabulary; see the Dublin Core Metadata Element Set (<a href="http://dublincore.org/documents/2004/12/20/dces/" target="_blank" title= "Dublin Core Metadata Element Set">http://dublincore.org/documents/2004/12/20/dces/</a>). </p> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.2.15" id="Section2.2.15" name="Section2.2.15">2.2.15: <span class="Element">&lt;rights&gt; &lt;/rights&gt;</span></a> </h3> <p class="Copy"> A statement about rights, or a reference to one. In this specification, the copyright notice and any further rights description <span class="RFC">should</span> appear directly. </p> <p class="Copy"> This specification does not address the manner in which a Content Provider specifies to a secure distributor any licensing terms under which readership rights or copies of the content could be sold. </p> </div> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.3" id="Section2.3" name="Section2.3">2.3: Manifest</a> </h2> <p class="Copy"> The <span class="RFC">required</span> <span class="Element">manifest</span> <span class="RFC">must</span> provide a list of all the files that are part of the publication (e.g. Content Documents, style sheets, image files, any embedded font files, any included schemas). </p> <ins><p class="Copy"> All DTDs and external entities (including, but not limited to, external DTD references) referenced by XML documents listed in the package <span class="Element">manifest</span> are considered part of the publication and thus <span class="RFC">must</span> also be listed in the <span class="Element">manifest</span>. As an exception to that rule, DTDs of certain core document types do not need to be included. The list of DTDs that do need to be included in the <span class="Element">manifest</span> is: </p> <ol> <li> SVG 1.1 DTD (<a href= "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" target="_blank" title= "SVG 1.1 DTD">www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd</a>) </li> <li> XHTML 1.1 DTD (<a href= "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" target="_blank" title= "XHTML 1.1. DTD">www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>) </li> <li> DTBook DTD (<a href= "http://www.daisy.org/z3986/2005/dtbook-2005-2.dtd" target="_blank" title= "DTBook DTD">www.daisy.org/z3986/2005/dtbook-2005-2.dtd</a>) </li> <li> NCX DTD (<a href= "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd" target="_blank" title= "NCX DTD">www.daisy.org/z3986/2005/ncx-2005-1.dtd</a>) </li> </ol></ins> <p class="Copy"> The <span class= "Element">manifest</span> element <span class="RFC">must</span> contain one or more <span class="Element">item</span> elements. Each <span class="Element">item</span> describes a document, an image file, a style sheet, or other component that is considered part of the publication. The <span class="Element">manifest</span> <span class="RFC">must not</span> include <span class="Element">item</span> elements referring to the file or files that make up the OPF Package Document. </p> <p class="Copy"> Each <span class="Element">item</span> element contained within a <span class= "Element">manifest</span> element must have the attributes <span class= "Attribute">id</span>, <span class="Attribute">href</span> (a URI; if relative, the URI is interpreted as relative to the OPF Package Document file containing the reference), and <span class="Attribute">media-type</span> (specifying the item’s MIME media type). </p> <p class="Copy"> The order of <span class="Attribute">item</span> elements in the manifest is not significant. </p> <p class="Copy"> For example: </p> <pre class="Example"> &lt;manifest&gt; &lt;item id="intro" href="introduction.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c1" href="chapter-1.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c2" href="chapter-2.html" media-type=<ins>"</ins>application/xhtml+xml" /&gt; &lt;item id="toc" href="contents.xml" media-type="application/xhtml+xml" /&gt; &lt;item id="oview" href="arch.png" media-type="image/png" /&gt; &lt;/manifest&gt; </pre> <p class="Copy"> The URIs in <span class="Attribute">href</span> attributes of <span class= "Element">item</span> elements in the <span class="Element">manifest</span> <span class="RFC">must not</span> use fragment identifiers. </p> <p class="Copy"> A single resource (<span class="Attribute">href</span>) <span class="RFC">must not</span> be listed in the <span class="Element">manifest</span> more than once. </p> <p class="Copy"> A Content Document’s root element <span class="RFC">must</span> be consistent with the <span class="Attribute">media-type</span> of the associated <span class= "Element">item</span> element within the <span class="Element">manifest</span>. </p> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.3.1" id="Section2.3.1" name="Section2.3.1">2.3.1: Fallback Items</a> </h3> <p class="Copy"> The OPS specification defines a set of OPS Core Media Types that all conforming Reading Systems <span class="RFC">must</span> support (e.g. XHTML, PNG, SVG). For a publication that uses only those media types, the <span class= "Element">manifest</span> merely lists the publication's component files directly. However, content providers <span class="RFC">may</span> construct publications that reference items of additional media types. In order for such publications to be read by all conforming Reading Systems, content providers <span class="RFC">must</span> provide alternative "fallback" items for each such item. For every item that is not an OPS Core Media Type, at least one of its associated fallback items <span class= "RFC">must</span> either be of a type drawn from the set of OPS Core Media Types or, in some cases, CSS styling <span class="RFC">may</span> be provided for documents containing non-preferred XML vocabularies. </p> <p class="Copy"> This specification and the OPS specification jointly define <del>four</del><ins>five</ins> different mechanisms for specifying OPS Core Media Type fallbacks. These are as follows: </p> <ol> <li>For inline "replaced" resources referenced via the <span class= "Element">object</span> element, this specification relies on that element’s inherent replacement capabilities, described in <a href= "http://www.idpf.org/ops/ops2.0/download/OPS2.0.html#Section2.3.6" target="_blank" title="object and param Elements">Section 2.3.6</a> of the OPS specification. </li> <li>For inline "replaced" resources referenced via the <span class= "Element">img</span> element, the text value of the <span class= "Attribute">alt</span> or <span class="Attribute">title</span> attributes provide a valid fallback, described in <a href= "http://www.idpf.org/ops/ops2.0/download/OPS2.0.html#Section2.3.4" target="_blank" title="img Element">Section 2.3.4</a> of the OPS specification. </li> <li>For Inline XML Islands a switch-based fallback mechanism is provided, described in <a href="http://www.idpf.org/ops/ops2.0/download/OPS2.0.html#Section2.6.3.1" target="_blank" title="The switch Element and Contained Elements">Section 2.6.3.1</a> of the OPS specification. </li> <ins><li>For fonts embedded using the @font-face mechanism, when using such fonts, the basic rules of CSS are used to provide fallback information. There is no requirement to add fallback data to <span class="Element">manifest</span> <span class="element">item<span>'s for embedded fonts. As an informative example, the following CSS is considered to have sufficient fallback information <pre class="Example"> @font-face { font-family: "My Font"; src: url(fonts/MyFont.otf) } p { font-family: "My Font", serif } </pre> </li></ins> <li>For non-inline destinations, whether referenced from a document or a package, and for inline "replaced" resources referenced via the <span class="Element">img</span> element, the various attributes of the package <span class="Element">item</span> element are used to provide fallback information. This is defined in <del>this</del> <a href="#Section2.3.1.1" title="Items That Are Not OPS Core Media Types">Section <ins>2.3.1.1</ins></a> of this specification. </li> </ol> <p class="Copy"> For the purpose of fallback specification, <del>the</del><ins>a</ins> file with the media type <span class= "MIMEType">application/x-dtbncx+xml</span> that specifies the publication’s NCX (see below) <span class="RFC">should</span> be considered a Core Media Type, thus fallback information <span class="RFC">must not</span> be provided for this file. </p> <ins><p class="Copy"> Following from #4, above, for the purpose of fallback specification, a file with the media type <span class= "MIMEType">application/vnd.ms-opentype</span> that specifies an embedded OpenType font <span class="RFC">should</span> be considered a Core Media Type, thus fallback information <span class="RFC">must not</span> be provided for this file. The media type <span class= "MIMEType">application/vnd.ms-opentype</span> <span class="RFC">should</span> be specified as the <span class="Attribute">media-type</span> value in the <span class="Element">item</span> of the <span class="Element">manifest</span> that references an OpenType font. </p></ins> <ins><p class="Copy"> For the purpose of fallback specification, schema definition files with media types of supported schema languages <span class="RFC">should</span> be considered as Core Media Types, thus fallback information <span class="RFC">must not</span> be provided for these files. These schema languages are: </p> <ol> <li>DTD, including DTD fragments, (*.net, *.mod): <span class="MIMEType">application/xml-dtd</span> </li> <li>RelaxNG XML syntax and NVDL: <span class="MIMEType">application/xml</span> </li> <li>RelaxNG Compact Syntax: <span class="MIMEType">application/relax-ng-compact-syntax</span> </li> </ol></ins> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.3.1.1" id="Section2.3.1.1" name="Section2.3.1.1">2.3.1.1: Items That Are Not OPS Core Media Types</a> </h4> <p class="Copy"> An <span class="Element">item</span> that specifies a resource that is not an OPS Core Media Type (e.g. a non-core image type, a text file, a PDF file) <span class="RFC">must</span> have a fallback specified <ins>(excepting those with inherent or exempted fallbacks as detailed above in <a href="#Section2.3.1" title="Fallback Items">Section 2.3.1</a>)</ins>. In this case, its fallback must be identified with a <span class="Element">fallback</span> attribute pointing to another <span class= "Element">item</span>. See <a href="#Section2.3.1.2" title="Out-of-Line XML Islands Fallbacks">Section 2.3.1.2</a> for fallback requirements for Out-of-Line XML Islands. </p> <p class="Copy"> An <span class="Element">item</span> identifies a fallback <span class= "Element">item</span> using its <span class="Attribute">fallback</span> attribute, which <span class="RFC">must</span> specify the <span class="Attribute">ID</span> of the <span class="Element">item</span> element that identifies the fallback. Items referenced from <span class="Attribute">fallback</span> attributes <span class="RFC">may</span> each specify a <span class="Attribute">fallback</span> attribute in turn, forming a multi-level fallback chain. For example: </p> <pre class="Example"> &lt;manifest&gt; &lt;item id="item1" href="FunDoc.txt" media-type="text/plain" fallback="fall1" /&gt; &lt;item id="fall1" fallback="fall2" href="FunDoc.pdf" media-type="application/pdf" /&gt; &lt;item id="fall2" href="FunDoc.html" media-type="application/xhtml+xml" /&gt; &lt;item ...&gt; &lt;/manifest&gt; </pre> <p class="Copy"> If a <span class="Attribute">fallback</span> attribute points to an <span class= "Element">item</span> that also has a <span class="Attribute">fallback</span> attribute, a Reading System <span class="RFC">must</span> continue down the fallback chain until it reaches a reference to an <span class="Element">item</span> with a media type it can display (or as specified below, it reaches an <span class= "Element">item</span> with a <span class="Attribute">fallback-style</span> attribute). A Reading System <span class="RFC">may</span> continue further, and <span class="RFC">may</span> display any <span class="Element">item</span> from the chain. In the absence of element-specific (i.e. <span class="Element">img</span> and <span class="Element">object</span>) fallback information, every <span class= "Element">item</span> in a publication that does not have one of the OPS Core Media Types <span class="RFC">must</span>, directly or indirectly, specify a fallback to an <span class="Element">item</span> that does have one of the OPS Core Media Types (or as specified below, an <span class="Element">item</span> with a <span class= "Attribute">fallback-style</span> attribute). </p> <p class="Copy"> Fallback chains <span class="RFC">must</span> terminate; circular references are not permitted. Nevertheless, Reading Systems <span class="RFC">should not</span> fail catastrophically if they encounter such a loop. </p> </div> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.3.1.2" id="Section2.3.1.2" name="Section2.3.1.2">2.3.1.2: Items That Are Out-Of-Line XML Islands</a> </h4> <p class="Copy"> An <span class="Element">item</span> that specifies a resource that is an Out-Of-Line XML Island (an XML document that is not authored in a Preferred Vocabulary). An <span class="Element">item</span> is an Out-Of-Line XML Island if: </p> <ol class="BulletStyle_lower-roman"> <li>It specifies a resource that is an XML document not authored in a Preferred Vocabulary (i.e. an XML document with a <span class="Attribute">media-type</span> that is neither <span class="MIMEType">application/xhtml+xml</span>, <span class= "MIMEType">application/x-dtbook+xml</span> nor the deprecated <span class= "MIMEType">text/x-eob1-document</span>); or </li> <li>It specifies a resource that is an XML document authored in a Preferred Vocabulary and incorporates the use of Extended Modules. </li> </ol> <p class="Copy"> More information is needed, and more freedom is provided, for fallback determination and processing of Out-Of-Line XML Islands. The namespace of an Out-Of-Line XML Island <span class="Element">item</span> <span class= "RFC">must</span> be specified with the <span class= "Attribute">required-namespace</span> attribute and its fallback <span class= "RFC">must</span> be identified with either a <span class= "Attribute">fallback</span> attribute pointing to another <span class= "Element">item</span> or by providing CSS styling that can be used to render the island via the <span class="Attribute">fallback-style</span> attribute. </p> <p class="Copy"> If the <span class="Attribute">fallback</span> attribute is specified, Reading System processing is identical to the Non-OPS Core Media Types handling described above. </p> <p class="Copy"> If the <span class="Attribute">fallback-style</span> attribute is specified, a Reading System <span class="RFC">may</span> choose to process the Out-Of-Line XML Island (even though it can not natively process the vocabulary or Extended Modules used in the island) using the stylesheet specified by the <span class= "Attribute">fallback-style</span> attribute's value which <span class= "RFC">must</span> contain a reference to the <span class="Attribute">id</span> of the <span class="Element">item</span> containing an <span class= "Attribute">href</span> to the stylesheet desired for the island. </p> <p class="Copy"> Both <span class="Attribute">fallback</span> and <span class= "Attribute">fallback-style</span> attributes <span class="RFC">may</span> be specified, in which case the Reading System <span class="RFC">may</span> choose to either follow the fallback chain or to process the Out-Of-Line XML Island with the supplied CSS stylesheet. </p> <p class="Copy"> An Out-Of-Line XML Island authored in a Preferred Vocabulary by definition incorporates the use of Extended Modules. In this case, and with non-Preferred Vocabulary islands utilizing Extended Modules, the <span class= "Attribute">required-modules</span> attribute <span class="RFC">must</span> be present along with the <span class="Attribute">required-namespace</span> attribute. </p> <p class="Copy"> The attribute value for <span class="Attribute">required-modules</span> <span class="RFC">must</span> be a comma-separated list containing the name(s) of the Extended Modules used in the Out-of-Line XML Island. The names of the modules are not case-sensitive, unless specifically defined otherwise in the XML vocabulary specification. Spaces in module names <span class="RFC">must</span> be replaced with "-" for listing in the <span class="Attribute">required-modules</span> attribute value. For XHTML, in the context of OPS, the Extended Modules include <span class="AttributeValue">ruby</span>, <span class= "AttributeValue">forms</span>, <span class= "AttributeValue">server-side-image-map</span>, and <span class= "AttributeValue">intrinsic-events</span>. </p> <p class="Copy"> Note that listing the names of non-Extended Modules in a <span class= "Attribute">required-modules</span> attribute value is also allowed; such modules are always considered to be supported if the XML vocabulary is supported. This can be useful both for clarity and in the case where there is a possibility that some modules could become <span class="RFC">optional</span> in the later revisions of the specification (e.g. the currently deprecated Style Attribute XHTML module in OPS). </p> <p class="Copy"> It is allowed, and sometimes useful, to provide a <span class= "Attribute">required-modules</span> attribute on an item specifying a non-Preferred Vocabulary Out-Of-Line XML Island — either for clarity or to specify Extended Modules needed from the non-Preferred Vocabulary. </p> <p class="Copy"> Most importantly, a Reading System that can natively process the non-Preferred Vocabulary (or Extended Modules) used for an Out-Of-Line XML Island <span class= "RFC">may</span> choose to use its integral understanding to natively process the document. However, fallback information <span class="RFC">must</span> be provided for Reading Systems that do not have such native processing ability. </p> <p class="Copy"> For example: </p> <pre class="Example"> &lt;manifest&gt; &lt;item id="item1" href="Doc1.hpy" media-type="text/happy+xml" required-namespace="http://happy.com/ns/happy1/" fallback="item2" /&gt; &lt;item id="item2" href="Doc1.less-hpy" media-type="text/less-happy+xml" required-namespace="http://happy.com/ns/happy2/" fallback="item2.5" fallback-style="css1" /&gt; &lt;item id="item2.5" href="Doc1.htm" media-type="application/xhtml+xml" required-namespace="http://www.w3.org/1999/xhtml" required-modules="ruby, server-side-image-map" fallback="item3" /&gt; &lt;item id="item3" href="Doc1.dtb" media-type="application/x-dtbook+xml" /&gt; &lt;item id="item4" href="Doc2.hpy" media-type="text/happy+xml" required-namespace="http://happy.com/ns/happy1/" fallback-style="css1" /&gt; &lt;item id="css1" href="happy.css" media-type="text/css" /&gt; &lt;/manifest&gt; </pre> <p class="Copy"> In the above example when processing <span class="AttributeValue">item1</span>, a Reading System could choose to render <span class="AttributeValue">item1</span> natively, <span class="AttributeValue">item2</span> natively, <span class= "AttributeValue">item2</span> with only styling from <span class= "AttributeValue">css1</span>, <span class="AttributeValue">item2.5</span> natively (assuming the Ruby and Server Side Image Map XHTML Extended Modules are supported by the Reading System), or <span class="AttributeValue">item3</span> natively. When processing <span class="AttributeValue">item4</span>, a Reading System could choose to render <span class="AttributeValue">item4</span> natively or <span class= "AttributeValue">item4</span> with only styling from <span class= "AttributeValue">css1</span>. </p> <p class="Copy"> Inclusion of the <span class="Attribute">required-namespace</span> attribute is <span class="RFC">not required</span> in <span class="Element">item</span> elements referring to XML documents authored in Preferred Vocabularies unless Extended Modules are used, in which case both <span class= "Attribute">required-namespace</span> and <span class= "Attribute">required-modules</span> attributes <span class="RFC">must</span> be provided. </p> </div> </div> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.4" id="Section2.4" name="Section2.4">2.4: Spine</a> </h2> <p class="Copy"> Following <span class="Element">manifest</span>, there <span class= "RFC">must</span> be one and only one <span class="Element">spine</span> element, which contains one or more <span class="Element">itemref</span> elements. Each <span class= "Element">itemref</span> references an OPS Content Document designated in the <span class="Element">manifest</span>. The order of the <span class= "Element">itemref</span> elements organizes the associated OPS Content Documents into the linear reading order of the publication. </p> <p class="Copy"> Each <span class="Element">itemref</span> in <span class="Element">spine</span> <span class="RFC">must not</span> reference media types other than OPS Content Documents (or documents whose fallback chain includes an OPS Content Document). An OPS Content Document <span class="RFC">must</span> be of one of the following media types: <span class="MIMEType">application/xhtml+xml</span>, <span class= "MIMEType">application/x-dtbook+xml</span>, the deprecated <span class= "MIMEType">text/x-oeb1-document</span>, and Out-Of-Line XML Island (with <span class= "RFC">required</span> <span class="Attribute">fallback</span>.) When a document with a media type not from this list (or a document whose fallback chain doesn't include a document with a media type from this list) is referenced in <span class= "Element">spine</span>, Reading Systems <span class="RFC">must not</span> include it as part of the <span class="Element">spine</span>. </p> <p class="Copy"> As items appearing in the <span class="Element">spine</span> must either be OPS Content Documents or items with a fallback chain that includes an OPS Content, it is possible to have a fallback chain for a <span class="Element">spine</span> item that "falls over" another OPS Core Media type. For example, a <span class= "Element">spine</span> <span class="Element">itemref</span> could reference a PDF document, that falls back to a PNG image, that in turn falls back to a OPS XHTML Content Document. It is valid for this item to appear in the <span class= "Element">spine</span> because the fallback chain includes (in this case terminates with) an OPS Content Document. </p> <p class="Copy"> In addition, a specific <span class="Element">spine</span> item (from the perspective of its <span class="Attribute">id</span> attribute value in <span class= "Element">manifest</span>) must not appear more than once in <span class= "Element">spine</span>. </p> <p class="Copy"> All OPS Content Documents that are part of the publication (i.e. are listed in the manifest) which are potentially reachable by any reference mechanism allowed in this specification <span class="RFC">must</span> be included in the <span class= "Element">spine</span>. Such reference mechanisms include, as a partial list, hypertext links within OPS Content Documents, and references by the NCX, Tours and Guide. </p> <p class="Copy"> Should a Reading System encounter, by such reference, an OPS Content Document not listed in <span class="Element">spine</span> as required in this specification, the Reading System <span class="RFC">should</span> add it to <span class= "Element">spine</span> (the placement at the discretion of the Reading System) and assign the value of the <span class="Attribute">linear</span> attribute to <span class= "AttributeValue">no</span> (see next.) </p> <p class="Copy"> For each <span class="Element">itemref</span>, the publication author <span class= "RFC">may</span> specify the optional <span class="Attribute">linear</span> attribute to designate whether the associated OPS Content Document is primary (<span class= "Attribute">linear="yes"</span>, which is the default when <span class= "Attribute">linear</span> is not present) or auxiliary (<span class= "Attribute">linear="no"</span>.) It is important that the publication author include some kind of internal reference, such as a hypertext link, to any OPS Content Document that is declared to be auxiliary; it is <span class="RFC">recommended</span> that references be added to NCX for all auxiliary content. At least one <span class= "Element">itemref</span> in <span class="Element">spine</span> <span class= "RFC">must</span> be declared primary. </p> <p class="Copy"> Specifying whether an OPS Content Document is primary or auxiliary is useful for Reading Systems which opt to present auxiliary content differently than primary content. For example, a Reading System might opt to render auxiliary content in a popup window apart from the main window which presents the primary content. (For an example of the types of content that may be considered auxiliary, refer to the example below and the subsequent discussion.) </p> <p class="Copy"> Reading Systems are <span class="RFC">not required</span> to differentiate between primary and auxiliary content, and for the requirements and recommendations given in this section <span class="RFC">may</span> consider all OPS Content Documents in <span class="Element">spine</span> to be primary, regardless of the value of the <span class="Attribute">linear</span> attribute. </p> <p class="Copy"> The <span class="Attribute">linear</span> attribute also maintains compatibility with OEBPS 1.x, where not all reachable OEBPS content documents were required to be listed in the <span class="Element">spine</span>. For upgrading an OEBPS Publication to OPS, every unlisted, reachable content document in the OEBPS 1.x Publication <span class="RFC">should</span> be assigned <span class= "Attribute">linear="no"</span>. </p> <p class="Copy"> Reading Systems are to use the ordered <span class="Element">itemref</span> information in <span class="Element">spine</span> to present the publication during reading. Reading Systems <span class="RFC">must</span> recognize the first primary OPS Content Document in <span class="Element">spine</span> to be the beginning of the main reading order of the publication. Successive primary OPS Content Documents form the remainder of the main reading order in the same order given in <span class= "Element">spine</span>. Reading Systems <span class="RFC">may</span> use "next-page" style functionality when moving from one primary OPS Content Document to the next primary one in <span class="Element">spine</span>. </p> <p class="Copy"> The <span class="Element">spine</span> element <span class="RFC">must</span> include the <span class="Attribute">toc</span> attribute, whose value is the the <span class="Attribute">id</span> attribute value of the <span class= "RFC">required</span> NCX document declared in <span class="Element">manifest</span> (see Section 2.4.1.) </p> <p class="Copy"> Example illustrating <span class="Element">spine</span> and the optional <span class="Attribute">linear</span> attribute: </p> <pre class="Example"> &lt;manifest&gt; &lt;item id="intro" href="intro.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c1" href="chap1.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c1-answerkey" href="chap1-answerkey.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c2" href="chap2.dtb" media-type="application/x-dtbook+xml" /&gt; &lt;item id="c2-answerkey" href="chap2-answerkey.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c3" href="chap3.html" media-type="application/xhtml+xml" /&gt; &lt;item id="c3-answerkey" href="chap3-answerkey.html" media-type="application/xhtml+xml" /&gt; &lt;item id="note" href="note.html" media-type="application/xhtml+xml" /&gt; &lt;item id="f1" href="fig1.jpg" media-type="image/jpeg" /&gt; &lt;item id="f2" href="fig2.jpg" media-type="image/jpeg" /&gt; &lt;item id="f3" href="fig3.jpg" media-type="image/jpeg" /&gt; &lt;item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" /&gt; &lt;/manifest&gt; &lt;spine toc="ncx"&gt; &lt;itemref idref="intro" /&gt; &lt;itemref idref="c1" /&gt; &lt;itemref idref="c1-answerkey" linear="no" /&gt; &lt;itemref idref="c2" /&gt; &lt;itemref idref="c2-answerkey" linear="no" /&gt; &lt;itemref idref="c3" /&gt; &lt;itemref idref="c3-answerkey" linear="no" /&gt; &lt;itemref idref="note" linear="no" /&gt; &lt;/spine&gt; </pre> <p class="Copy"> In the above example, the publication author set <span class= "Attribute">linear="no"</span> on four of the eight OPS Content Documents listed in <span class="Element">spine</span>, designating these content documents to be auxiliary. Three of the four are "answer keys," and the fourth is a note of some sort; all four are auxiliary to the main flow of the book and may be viewed separately from the main flow. </p> <p class="Copy"> Reading Systems which recognize and render auxiliary content separate from primary content will set the main reading order to be the four primary OPS Content Documents: <span class="AttributeValue">intro</span>, <span class="AttributeValue">c1</span>, <span class="AttributeValue">c2</span> and <span class="AttributeValue">c3</span>. The auxiliary content documents will be rendered by such Reading Systems, upon activation (such as through a hypertext link or entry in NCX), in some manner distinct from the main reading order. It is important that the publication author provide the necessary references to the auxiliary content documents, otherwise this content might not be reachable in some auxiliary-aware Reading Systems. </p> <p class="Copy"> Reading Systems which opt to ignore <span class="Attribute">linear="no"</span> and set all <span class="Element">itemref</span> to be primary, as allowed in this specification, will assign all eight OPS Content Documents to the main reading order in the order given. This is especially useful for Reading Systems which provide print output, where it is important that all the information in the OPS Content Documents be printed in an author-determined linear order. </p> <p class="Copy"> A Reading System <span class="RFC">may</span>, at its discretion, provide both rendering options to the user. </p> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.4.1" id="Section2.4.1" name="Section2.4.1">2.4.1: Declarative <del>Table of Contents</del><ins>Global Navigation</ins> — the NCX</a> </h3> <p class="Copy"> In order to enable ease of navigation and provide greater accessibility, the OPF Package Document supports a "Navigation Center eXtended," the NCX. This is a concept and implementation that has been standardized by the DAISY Consortium. </p> <p class="Copy"> This specification uses the NCX defined in the DAISY/NISO Standard, formally the <span class="FormalName">ANSI/NISO Z39.86-2005, Specifications for the Digital Talking Book</span>. The NCX is a portion (Section 8) of this comprehensive multimedia standard. The DAISY Consortium maintains the NCX DTD. <del>No modifications to the DTD are necessary for use with OPF.</del> In the future the DAISY/NISO Advisory Committee will consider modularizing the NCX and changing terminology to be more in line with ebooks, multimedia publications and other electronic document usage. </p> <p class="Copy"> Some <span class="RFC">optional</span> elements and metadata items are not needed to implement the NCX for this specification. The sections below have been changed to normatively reference the DAISY/NISO standard for the NCX rather than duplicating it here. All "exceptions" are described in <a href="#Section2.4.2" title="NCX Exceptions in Usage for eBooks">Section 2.4.2</a>, below. </p> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.4.1.1" id="Section2.4.1.1" name="Section2.4.1.1">2.4.1.1: Introduction</a> </h4> <p class="Copy"> The Navigation Control file for XML applications (NCX) exposes the hierarchical structure of a Publication to allow the user to navigate through it. The NCX is similar to a table of contents in that it enables the reader to jump directly to any of the major structural elements of the document, i.e. part, chapter, or section, but it will often contain more elements of the document than the publisher chooses to include in the original print table of contents. It can be visualized as a collapsible tree familiar to PC users. Its development was motivated by the need to provide quick access to the main structural elements of a document without the need to parse the entire documents. Other elements such as pages, footnotes, figures, tables, etc. can be included in separate, nonhierarchical lists <del>and can be accessed by the user as well</del><ins>(see the below informative example)</ins>. </p> <p class="Copy"> It is important to emphasize that these navigation features are intended as a convenience for users who want them, and not a burden to those who do not. The alternative <span class="Element">guide</span> to the book may be provided for those users not requiring the navigation features of the NCX. </p> </div> <div class="Section"> <h4 class="SubsubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.4.1.2" id="Section2.4.1.2" name="Section2.4.1.2">2.4.1.2: Key NCX Requirements</a> </h4> <del><p class="Copy"> Reading Systems <span class="RFC">must</span> support NCX. </p> <p class="Copy"> OPS Publications <span class="RFC">must</span> include an NCX. </p></del> <ins><p class="Copy"> OPS Publications <span class="RFC">must</span> include an NCX. </p> <p class="Copy"> Reading Systems <span class="RFC">should</span> support the NCX. </p> <p class="Copy"> A Reading System <span class="RFC">should</span> have the ability to, at user selection, provide access to the NCX <span class="Element">navMap</span> in a fashion that allows the user to activate the links provided in the <span class="Element">navMap</span>, thus relocating the application's current reading position to the destination described by the selected NCX <span class="Element">navPoint</span>. </p> <p class="Copy"> The behavioral expectations described above apply to the NCX <span class="Element">pageList</span> and <span class="Element">navList</span> as well, if the given NCX contains said elements. </p> <p class="Copy"> Reading System implementors should be aware that in a forthcoming major revision of the EPUB specification, it likely will become a compliance criteria for Reading Systems to support the NCX <span class="Element">navMap</span>, <span class="Element">pageList</span> and <span class="Element">navList</span> as described above. </p></ins> <p class="Copy"> Like all other Publication components, the NCX <span class="RFC">must</span> be included as an <span class="Element">item</span> in the <span class= "Element">manifest</span> (with <span class="Attribute">media-type</span> of <span class="MIMEType">application/x-dtbncx+xml</span>). The NCX-referencing <span class="Element">item</span> <span class="RFC">must not</span> contain any fallback information (<span class="Attribute">required-namespace</span>, <span class="Attribute">fallback</span> or <span class= "Attribute">fallback-style</span> attributes). </p> <p class="Copy"> <del>If a Publication includes an NCX, the</del><ins>The</ins> <span class="Element">item</span> that describes the NCX <span class="RFC">must</span> be referenced by the <span class= "Element">spine</span> <span class="Attribute">toc</span> attribute. </p> <p class="Copy"> The NCX file <span class="RFC">must</span> be a valid XML document conforming to <a href="http://www.daisy.org/z3986/2005/ncx-2005-1.dtd" target="_blank" title="The NCX Document Type Definition."><span class= "File">ncx-2005-1.dtd</span></a><del> and comply with the additional normative requirements defined in <a href= "http://www.niso.org/standards/resources/Z39-86-2005.html" target="_blank" title= "The DTB specification.">http://www.niso.org/standards/resources/Z39-86-2005.html</a></del> <ins>, with the exception of the <span class="Attribute">playOrder</span> attribute, which is optional in EPUB NCX</ins>. The <span class="Attribute">version</span> and <span class= "Element">xmlns</span> attributes on the <span class="Element">ncx</span> element <span class="RFC">must</span> be explicitly specified in the document instance, using values drawn from the above-named DTD. </p> <ins><p class="Copy"> Any NCX that contains a <span class="Element">DOCTYPE</span> that references the canonical NCX DTD <span class="RFC">must</span> honor that DTD, thus including the <span class="Attribute">playOrder</span> attribute in all locations where it is required. NCX documents that do not contain a <span class="Element">DOCTYPE</span> <span class="RFC">may</span> omit the <span class="Attribute">playOrder</span> attribute. </p> <p class="Copy"> <span class="Element">navMap</span> is a <span class="RFC">required</span> element in the NCX; it provides navigational access to the major hierarchical structure of the publication. <span class="Element">pageList</span> <span class="RFC">must</span> be included if the publication is designed to allow the user to navigate to pages. One or several <span class="Element">navList</span>'s <span class="RFC">may</span> be included to allow navigation to other arbitrary constructs in the content (see the below informative example). </p> <pclass="Copy"> The URI specified by the <span class="Attribute">src</span> of the <span class="Element">content</span> element for <span class="Element">navMap</span>, <span class="Element">pageList</span>, and <span class="Element">navList</span> elements <span class="RFC">must</span> resolve to OPS Content Document fragments. </p> <p class="Copy"> Example illustrating an NCX with a <span class="Element">navMap</span>, a <span class="Element">pageList</span>, and a <span class="Element">navList</span> containing a list of illustrations: </p> <pre class="Example"> &lt;ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1" xml:lang="en-US"&gt; &lt;head&gt; &lt;meta content="org-example-5059463624137734586" name="dtb:uid"/&gt; &lt;/head&gt; &lt;docTitle&gt; &lt;text&gt;Selections from "Great Pictures, As Seen and Described by Famous Writers"&lt;/text&gt; &lt;/docTitle&gt; &lt;docAuthor&gt; &lt;text&gt;Esther Singleton&lt;/text&gt; &lt;/docAuthor&gt; &lt;navMap&gt; &lt;navPoint class="h1" id="ch1"&gt; &lt;navLabel&gt; &lt;text&gt;Chapter 1&lt;/text&gt; &lt;/navLabel&gt; &lt;content src="content.html#ch_1"/&gt; &lt;navPoint class="h2" id="ch_1_1"&gt; &lt;navLabel&gt; &lt;text&gt;Chapter 1.1&lt;/text&gt; &lt;/navLabel&gt; &lt;content src="content.html#ch_1_1"/&gt; &lt;/navPoint&gt; &lt;/navPoint&gt; &lt;navPoint class="h1" id="ncx-2"&gt; &lt;navLabel&gt; &lt;text&gt;Chapter 2&lt;/text&gt; &lt;/navLabel&gt; &lt;content src="content.html#ch_2"/&gt; &lt;/navPoint&gt; &lt;/navMap&gt; &lt;pageList&gt; &lt;pageTarget id="p1" type="normal" value="1"&gt; &lt;navLabel&gt;&lt;text&gt;1&lt;/text&gt;&lt;/navLabel&gt; &lt;content src="content.html#p1"/&gt; &lt;/pageTarget&gt; &lt;pageTarget id="p2" type="normal" value="2"&gt; &lt;navLabel&gt;&lt;text&gt;2&lt;/text&gt;&lt;/navLabel&gt; &lt;content src="content.html#p2"/&gt; &lt;/pageTarget&gt; &lt;/pageList&gt; &lt;navList&gt; &lt;navLabel&gt; &lt;text&gt;List of Illustrations&lt;/text&gt; &lt;/navLabel&gt; &lt;navTarget id="ill-1"&gt; &lt;navLabel&gt;&lt;text&gt;Portratit of Georg Gisze (Holbein)&lt;/text&gt;&lt;/navLabel&gt; &lt;content src="content.html#ill1"/&gt; &lt;/navTarget&gt; &lt;navTarget id="ill-2"&gt; &lt;navLabel&gt;&lt;text&gt;The adoration of the lamb (Van Eyck)&lt;/text&gt;&lt;/navLabel&gt; &lt;content src="content.html#ill2"/&gt; &lt;/navTarget&gt; &lt;/navList&gt; &lt;/ncx&gt; </pre></ins> </div> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.4.2" id="Section2.4.2" name="Section2.4.2">2.4.2: NCX Exceptions in Usage for Publications</a> </h3> <p class="Copy"> The NCX as defined in the ANSI/NISO Z39.86-2005 Standard Section 8 is ideal for OPS applications, however, some exceptions are noted herein. In the standard, the links from the NCX to the Publication point to SMIL (<a href= "http://www.w3.org/TR/2005/REC-SMIL2-20050107/" target="_blank" title= "The SMIL specification.">http://www.w3.org/TR/2005/REC-SMIL2-20050107/</a>) documents. For OPS Publications, the links will point to an XML elements in the source OPS Content Document. This difference causes the following exceptions to be noted from Section 8 in that standard: </p> <ul> <li> <span class="Element">smilCustomTest</span> is not used in the OPF application of the NCX; </li> <li> <span class="Element">audio</span> is not used in the OPS application of the NCX; </li> <li> <span class="Attribute">clipBegin</span> (<span class= "Attribute">%SMILtimeVal</span>, <span class="Attribute">REQUIRED</span>): is used for identifying the start of an audio segment, and hence not used in the OPF application of the NCX; </li> <li> <span class="Attribute">clipEnd</span> (<span class= "Attribute">%SMILtimeVal</span>, <span class="Attribute">REQUIRED</span>): is used for identifying the end of an audio segment, and hence not used in the OPF application of the NCX; </li> <li> <span class="Attribute">content</span> Description: Pointer into SMIL file to beginning of the item referenced by the <span class="Element">navPoint</span> or <span class="Element">navTarget</span>. Note: In the OPF application of the NCX the pointer is to an XML element and not a SMIL location. </li> <li>DTBs Spanning Multiple Media Units are not relevant in the Publication context because OPS Publications are significantly smaller than multimedia files. </li> <del><li>Examples show links to SMIL files, but in the OPF application of NCX the links will be to XML elements. Also, the examples show <span class="Element">audio</span> references with <span class="Attribute">clipBegin</span> and <span class="Attribute"> clipEnd</span>, which are not used in the OPF application of the NCX. </li></del> <li> <del>The required NCX metadata items "dtb:totalPageCount" and "dtb:maxPageNumber" may not be relevant when content is not related to a rendition with "paper pages". In this case, their values <span class="RFC">may</span> be specified as zero and the Reading System <span class="RFC">may</span> ignore them.</del> <ins>The list of required metadata provided in <a href= "http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NavMeta" target="_blank" title= "DTB Navigation Metadata">http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NavMeta</a> does not apply to EPUB; the only required <span class="Element">meta</span> is that which contains a <span class="Attribute">content</span> reference to the OPF unique ID. For backwards compatibility reasons, the value of the <span class="Attribute">name</span> of that <span class="Element">meta</span> remains <span class="AttributeValue"/>dtb:id</span>.</ins> </li> <li> <span class="Attribute">playOrder</span> attributes <del>remain required</del><ins>are <span class="RFC">not required</span></ins>. Although <span class="Attribute">playOrder</span> attributes are not used to sequence SMIL content, if present, they <span class="RFC">should</span> contain valid values that reflect the linear document reading order. This could, for example, be used when one is navigating a <span class="Element">pageList</span> to find a corresponding location in the <span class="Element">navMap</span>. </li> </ul> </div> <div class="Section"> <h3 class="SubsubsectionTitle"> <a class="SectionTitle" href="#TOC2.4.3" id="Section2.4.3" name="Section2.4.3">2.4.3: XML Islands in the Spine</a> </h3> <p class="Copy"> <a href="http://www.idpf.org/ops/ops2.0/download/OPS2.0.html#Section2.6" target="_blank" title="XML Islands">XML Islands</a> <span class="RFC">may</span> be referenced from the spine. In the event that a Reading System cannot display the XML Island correctly, then the standard fallback methodology defined in the <a href= "http://www.idpf.org/ops/ops2.0/download/" target="_blank" title="Open Publication Structre">Open Publication Structure</a> <span class= "RFC">must</span> be used. </p> <p class="Copy"> In short, the Reading System <span class="RFC">must</span> display the chosen <span class="Attribute">fallback</span> for an XML Island in the event that the island itself cannot be displayed. </p> </div> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.5" id="Section2.5" name="Section2.5">2.5: Tours [Deprecated]</a> </h2> <p class="Copy"> Much as a tour-guide might assemble points of interest into a set of sightseers' tours, a content provider could assemble selected parts of a publication into a set of tours to enable convenient navigation. </p> <p class="Copy"> An OPS Package Document <span class="RFC">may</span>, but need not, contain one <span class="Element">tours</span> element, which in turn contains one or more <span class="Element">tour</span> elements. Each <span class="Element">tour</span> <span class="RFC">must</span> have a <span class="Attribute">title</span> attribute, intended for presentation to the user. Reading Systems <span class="RFC">may</span> use <span class="Element">tours</span> to provide various access sequences to parts of the publication, such as selective views for various reading purposes, reader expertise levels, etc. Because Reading Systems are <span class="RFC">not required</span> to implement tour support, content providers <span class="RFC">should</span> also provide other means of accessing content referenced from <span class="Element">tours</span>. </p> <p class="Copy"> Each <span class="Element">tour</span> element contains one or more <span class= "Element">site</span> elements, each of which <span class="RFC">must</span> have an <span class="Attribute">href</span> attribute and a <span class= "Attribute">title</span> attribute. The <span class="Attribute">href</span> attribute <span class="RFC">must</span> refer to an OPS Content Document included in the <span class="Element">manifest</span>, and <span class="RFC">may</span> include a fragment identifier as defined in section 4.1 of RFC 2396 (see <a href= "http://www.ietf.org/rfc/rfc2396.txt" target="_blank" title="The URI RFC.">http://www.ietf.org/rfc/rfc2396.txt</a>). Each <span class= "Element">site</span> element specifies a starting point from which the reader can explore freely. Reading Systems <span class="RFC">may</span> use the bounds of the referenced element to determine the scope of the site. If a fragment identifier is not used, the scope is considered to be the entire document. This specification does <span class="RFC">not require</span> Reading Systems to mark or otherwise identify the entire scope of a referenced element. The order of <span class= "Element">site</span> elements is presumed to be significant, and <span class= "RFC">should</span> be used by Reading Systems to aid navigation. </p> <p class="Copy"> For example: </p> <pre class="Example"> &lt;tours&gt; &lt;tour id="tour1" title="Chicken Recipes"&gt; &lt;site title="Chicken Fingers" href="appetizers.html#r3" /&gt; &lt;site title="Chicken a la King" href="entrees.html#r5" /&gt; &lt;/tour&gt; &lt;tour id="tour2" title="Vegan Recipes"&gt; &lt;site title="Hummus" href ="appetizer.html#r6" /&gt; &lt;site title="Lentil Casserole" href="lentils.html" /&gt; &lt;/tour&gt; &lt;/tours&gt; </pre> </div> <div class="Section"> <h2 class="SubsectionTitle"> <a class="SectionTitle" href="#TOC2.6" id="Section2.6" name="Section2.6">2.6: Guide</a> </h2> <p class="Copy"> Within the package there <span class="RFC">may</span> be one <span class= "Element">guide</span> element, containing one or more <span class= "Element">reference</span> elements. The <span class="Element">guide</span> element identifies fundamental structural components of the publication, to enable Reading Systems to provide convenient access to them. </p> <p class="Copy"> For example: </p> <pre class="Example"> &lt;guide&gt; &lt;reference type="toc" title="Table of Contents" href="toc.html" /&gt; &lt;reference type="loi" title="List Of Illustrations" href="toc.html#figures" /&gt; &lt;reference type="other.intro" title="Introduction" href="intro.html" /&gt; &lt;/guide&gt; </pre> <p class="Copy"> The structural components of the books are listed in <span class= "Element">reference</span> elements contained within the <span class= "Element">guide</span> element. These components could refer to the table of contents, list of illustrations, foreword, bibliography, and many other standard parts of the book. Reading Systems are <span class="RFC">not required</span> to use the <span class= "Element">guide</span> element in any way. </p> <p class="Copy"> Each reference <span class="RFC">must</span> have an <span class= "Attribute">href</span> attribute referring to an OPS Content Document included in the <span class="Element">manifest</span>, and which <span class="RFC">may</span> include a fragment identifier as defined in section 4.1 of RFC 2396 (see <del>h</del><a href= "http://www.ietf.org/rfc/rfc2396.txt" target="_blank" title="The URI RFC."><ins>h</ins>ttp://www.ietf.org/rfc/rfc2396.txt</a>). Reading Systems <span class="RFC">may</span> use the bounds of the referenced element to determine the scope of the reference. If a fragment identifier is not used, the scope is considered to be the entire document. This specification does <span class="RFC">not require</span> Reading Systems to mark or otherwise identify the entire scope of a referenced element. </p> <p class="Copy"> The <span class="RFC">required</span> <span class="Attribute">type</span> attribute describes the publication component referenced by the <span class= "Attribute">href</span> attribute. The values for the <span class= "Attribute">type</span> attributes <span class="RFC">must</span> be selected from the list defined below when applicable. Other types <span class="RFC">may</span> be used when none of the predefined <span class="Element">type</span>s are applicable; their names <span class="RFC">must</span> begin with the string <span class= "AttributeValue">other.</span>. The value for the <span class="Attribute">type</span> attribute is case-sensitive. </p> <p class="Copy"> The following list of <span class="Attribute">type</span> values is derived from the 13th edition of the Chicago Manual of Style: </p> <table summary="Guide Refernece Types"> <tr> <td class="MarcName"> cover </td> <td class="MarcValue"> the book cover(s), jacket information, etc. </td> </tr> <tr> <td class="MarcName"> title-page </td> <td class="MarcValue"> page with possibly title, author, publisher, and other metadata </td> </tr> <tr> <td class="MarcName"> toc </td> <td class="MarcValue"> table of contents </td> </tr> <tr> <td class="MarcName"> index </td> <td class="MarcValue"> back-of-book style index </td> </tr> <tr> <td class="MarcName"> glossary </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> acknowledgements </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> bibliography </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> colophon </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> copyright-page </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> dedication </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> epigraph </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> foreword </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> loi </td> <td class="MarcValue"> list of illustrations </td> </tr> <tr> <td class="MarcName"> lot </td> <td class="MarcValue"> list of tables </td> </tr> <tr> <td class="MarcName"> notes </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> preface </td> <td class="MarcValue"> </td> </tr> <tr> <td class="MarcName"> text </td> <td class="MarcValue"> First "real" page of content (e.g. "Chapter 1") </td> </tr> </table> </div> </div> </div> <div class="BackMatter"> <h1 class="AppendixTitle"> Appendices </h1> <div class="Section"> <h2 class="SectionTitle"> <a class="SectionTitle" href="#AppendixTOCA" id="AppendixA" name="AppendixA">Appendix A: The OPF Package Schema</a> </h2> <p class="Copy"> &nbsp; </p> <pre class="Example"> &lt;?xml version="1.0"?&gt; &lt;grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.idpf.org/2007/opf" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"&gt; &lt;!-- Title: Relax NG Schema for the Open Packaging Format (OPF) version 2.0 Version: 2.0 Revision: 20070222 Authors: This Version 2.0 : Peter Sorotokin &lt;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="58282b372a372c373318393c373a3d763b3735">[email&#160;protected]</a>&gt; --&gt; &lt;start&gt; &lt;ref name="OPF20.package-element"/&gt; &lt;/start&gt; &lt;define name="OPF20.optional-id-attribute"&gt; &lt;optional&gt; &lt;attribute name="id"&gt; &lt;data type="ID"/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.optional-xml-lang-attribute"&gt; &lt;optional&gt; &lt;attribute name="lang" ns="http://www.w3.org/XML/1998/namespace"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.optional-file-as-attribute"&gt; &lt;optional&gt; &lt;attribute name="file-as" ns="http://www.idpf.org/2007/opf"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.optional-role-attribute"&gt; &lt;optional&gt; &lt;attribute name="role" ns="http://www.idpf.org/2007/opf"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.optional-scheme-attribute"&gt; &lt;optional&gt; &lt;attribute name="scheme" ns="http://www.idpf.org/2007/opf"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.optional-event-attribute"&gt; &lt;optional&gt; &lt;attribute name="event" ns="http://www.idpf.org/2007/opf"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; <del>&lt;define name="OPF20.optional-xsi-type"&gt; &lt;optional&gt; &lt;attribute name="type" ns="http://www.w3.org/2001/XMLSchema-instance"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/define&gt; </del> &lt;define name="OPF20.package-element"&gt; &lt;element name="package"&gt; &lt;attribute name="version"&gt; &lt;value&gt;2.0&lt;/value&gt; &lt;/attribute&gt; &lt;attribute name="unique-identifier"&gt; &lt;data type="IDREF"/&gt; &lt;/attribute&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.package-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.package-content"&gt; &lt;ref name="OPF20.metadata-element"/&gt; &lt;ref name="OPF20.manifest-element"/&gt; &lt;ref name="OPF20.spine-element"/&gt; &lt;optional&gt; &lt;ref name="OPF20.tours-element"/&gt; &lt;/optional&gt; &lt;optional&gt; &lt;ref name="OPF20.guide-element"/&gt; &lt;/optional&gt; &lt;/define&gt; &lt;define name="OPF20.metadata-element"&gt; &lt;element name="metadata"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.metadata-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.metadata-content"&gt; &lt;choice&gt; &lt;interleave&gt; &lt;ref name="OPF20.dc-metadata-element"/&gt; &lt;optional&gt; &lt;ref name="OPF20.x-metadata-element"/&gt; &lt;/optional&gt; &lt;/interleave&gt; &lt;interleave&gt; &lt;oneOrMore&gt; &lt;ref name="DC.title-element"/&gt; &lt;/oneOrMore&gt; &lt;oneOrMore&gt; &lt;ref name="DC.language-element"/&gt; &lt;/oneOrMore&gt; &lt;oneOrMore&gt; &lt;ref name="DC.identifier-element"/&gt; &lt;/oneOrMore&gt; &lt;zeroOrMore&gt; &lt;ref name="DC.optional-metadata-element"/&gt; &lt;/zeroOrMore&gt; &lt;zeroOrMore&gt; &lt;ref name="OPF20.meta-element"/&gt; &lt;/zeroOrMore&gt; &lt;zeroOrMore&gt; &lt;ref name="OPF20.any-other-element"/&gt; &lt;/zeroOrMore&gt; &lt;/interleave&gt; &lt;/choice&gt; &lt;/define&gt; &lt;define name="OPF20.dc-metadata-element"&gt; &lt;element name="dc-metadata"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.dc-metadata-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.dc-metadata-content"&gt; &lt;interleave&gt; &lt;oneOrMore&gt; &lt;ref name="DC.title-element"/&gt; &lt;/oneOrMore&gt; &lt;oneOrMore&gt; &lt;ref name="DC.language-element"/&gt; &lt;/oneOrMore&gt; &lt;oneOrMore&gt; &lt;ref name="DC.identifier-element"/&gt; &lt;/oneOrMore&gt; &lt;zeroOrMore&gt; &lt;ref name="DC.optional-metadata-element"/&gt; &lt;/zeroOrMore&gt; &lt;/interleave&gt; &lt;/define&gt; &lt;define name="DC.identifier-element" ns="http://purl.org/dc/elements/1.1/"&gt; &lt;element name="identifier"&gt; &lt;optional&gt; &lt;attribute name="id"&gt; &lt;data type="ID"/&gt; &lt;/attribute&gt; &lt;/optional&gt; <del> &lt;ref name="OPF20.optional-xsi-type"/&gt;</del> &lt;ref name="OPF20.optional-scheme-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="DC.title-element" ns="http://purl.org/dc/elements/1.1/"&gt; &lt;element name="title"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="DC.language-element" ns="http://purl.org/dc/elements/1.1/"&gt; &lt;element name="language"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; <del> &lt;ref name="OPF20.optional-xsi-type"/&gt;</del> &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="DC.optional-metadata-element" ns="http://purl.org/dc/elements/1.1/"&gt; &lt;choice&gt; &lt;element name="contributor"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="OPF20.optional-file-as-attribute"/&gt; &lt;ref name="OPF20.optional-role-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="coverage"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="creator"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="OPF20.optional-file-as-attribute"/&gt; &lt;ref name="OPF20.optional-role-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="date"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; <del> &lt;ref name="OPF20.optional-xsi-type"/&gt;</del> &lt;ref name="OPF20.optional-event-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="description"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="format"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; <del> &lt;ref name="OPF20.optional-xsi-type"/&gt;</del> &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="publisher"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="relation"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="rights"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="source"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="subject"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;element name="type"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; <del> &lt;ref name="OPF20.optional-xsi-type"/&gt;</del> &lt;ref name="DC.metadata-common-content"/&gt; &lt;/element&gt; &lt;/choice&gt; &lt;/define&gt; &lt;define name="DC.metadata-common-content"&gt; &lt;text/&gt; &lt;/define&gt; &lt;define name="OPF20.x-metadata-element"&gt; &lt;element name="x-metadata"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.x-metadata-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.x-metadata-content"&gt; &lt;interleave&gt; &lt;zeroOrMore&gt; &lt;ref name="OPF20.meta-element"/&gt; &lt;/zeroOrMore&gt; &lt;zeroOrMore&gt; &lt;ref name="OPF20.any-other-element"/&gt; &lt;/zeroOrMore&gt; &lt;/interleave&gt; &lt;/define&gt; &lt;define name="OPF20.meta-element"&gt; &lt;element name="meta"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.optional-xml-lang-attribute"/&gt; &lt;attribute name="name"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;attribute name="content"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;optional&gt; &lt;attribute name="scheme"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;ref name="OPF20.meta-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.meta-content"&gt; &lt;empty/&gt; &lt;/define&gt; &lt;define name="OPF20.manifest-element"&gt; &lt;element name="manifest"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.manifest-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.manifest-content"&gt; &lt;oneOrMore&gt; &lt;ref name="OPF20.item-element"/&gt; &lt;/oneOrMore&gt; &lt;/define&gt; &lt;define name="OPF20.item-element"&gt; &lt;element name="item"&gt; &lt;attribute name="id"&gt; &lt;data type="ID"/&gt; &lt;/attribute&gt; &lt;attribute name="href"&gt; <del>&lt;text/&gt;</del><ins>&lt;data type="anyURI"/&gt;</ins> &lt;/attribute&gt; &lt;attribute name="media-type"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;optional&gt; &lt;attribute name="fallback"&gt; &lt;data type="IDREF"/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;optional&gt; &lt;attribute name="fallback-style"&gt; &lt;data type="IDREF"/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;optional&gt; &lt;attribute name="required-namespace"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;optional&gt; &lt;attribute name="required-modules"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;/optional&gt; &lt;ref name="OPF20.item-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.item-content"&gt; &lt;empty/&gt; &lt;/define&gt; &lt;define name="OPF20.spine-element"&gt; &lt;element name="spine"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;attribute name="toc"&gt; &lt;data type="IDREF"/&gt; &lt;/attribute&gt; &lt;ref name="OPF20.spine-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.spine-content"&gt; &lt;oneOrMore&gt; &lt;ref name="OPF20.itemref-element"/&gt; &lt;/oneOrMore&gt; &lt;/define&gt; &lt;define name="OPF20.itemref-element"&gt; &lt;element name="itemref"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;attribute name="idref"&gt; &lt;data type="IDREF"/&gt; &lt;/attribute&gt; &lt;optional&gt; &lt;attribute name="linear"&gt; &lt;choice&gt; &lt;value&gt;yes&lt;/value&gt; &lt;value&gt;no&lt;/value&gt; &lt;/choice&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;ref name="OPF20.itemref-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.itemref-content"&gt; &lt;empty/&gt; &lt;/define&gt; &lt;define name="OPF20.tours-element"&gt; &lt;element name="tours"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.tours-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.tours-content"&gt; &lt;oneOrMore&gt; &lt;ref name="OPF20.tour-element"/&gt; &lt;/oneOrMore&gt; &lt;/define&gt; &lt;define name="OPF20.tour-element"&gt; &lt;element name="tour"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;attribute name="title"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;ref name="OPF20.tour-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.tour-content"&gt; &lt;oneOrMore&gt; &lt;ref name="OPF20.site-element"/&gt; &lt;/oneOrMore&gt; &lt;/define&gt; &lt;define name="OPF20.site-element"&gt; &lt;element name="site"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;attribute name="title"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;attribute name="href"&gt; <del>&lt;text/&gt;</del><ins>&lt;data type="anyURI"/&gt;</ins> &lt;/attribute&gt; &lt;ref name="OPF20.site-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.site-content"&gt; &lt;empty/&gt; &lt;/define&gt; &lt;define name="OPF20.guide-element"&gt; &lt;element name="guide"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;ref name="OPF20.guide-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.guide-content"&gt; &lt;<del>zero</del><ins>one</ins>OrMore&gt; &lt;ref name="OPF20.reference-element"/&gt; &lt;/<del>zero</del><ins>one</ins>OrMore&gt; &lt;/define&gt; &lt;define name="OPF20.reference-element"&gt; &lt;element name="reference"&gt; &lt;ref name="OPF20.optional-id-attribute"/&gt; &lt;attribute name="type"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;optional&gt; &lt;attribute name="title"&gt; &lt;text/&gt; &lt;/attribute&gt; &lt;/optional&gt; &lt;attribute name="href"&gt; <del>&lt;text/&gt;</del><ins>&lt;data type="anyURI"/&gt;</ins> &lt;/attribute&gt; &lt;ref name="OPF20.reference-content"/&gt; &lt;/element&gt; &lt;/define&gt; &lt;define name="OPF20.reference-content"&gt; &lt;empty/&gt; &lt;/define&gt; &lt;define name="OPF20.any-other-element"&gt; &lt;element&gt; &lt;anyName&gt; &lt;except&gt; &lt;nsName ns="http://www.idpf.org/2007/opf"/&gt; &lt;nsName ns="http://purl.org/dc/elements/1.1/"/&gt; &lt;/except&gt; &lt;/anyName&gt; &lt;zeroOrMore&gt; &lt;choice&gt; &lt;attribute&gt; &lt;anyName/&gt; &lt;/attribute&gt; &lt;text/&gt; &lt;ref name="OPF20.any-other-element"/&gt; &lt;/choice&gt; &lt;/zeroOrMore&gt; &lt;/element&gt; &lt;/define&gt; &lt;/grammar&gt; </pre> </div> <div class="Section"> <h2 class="SectionTitle"> <a class="SectionTitle" href="#AppendixTOCB" id="AppendixB" name="AppendixB">Appendix B: Contributors</a> </h2> <p class="Copy"> This specification has been developed through a cooperative effort, bringing together publishers, Reading System vendors, software developers, and experts in the relevant standards. </p> <ins> <p class="Copy"> Version 2.0.1 of this specification was prepared by the International Digital Publishing Forum’s EPUB Maintenance Working Group. Active members of the working group at the time of publication of revision 2.0.1 were: </p> <ul class="AuthorList"> <li>Alexis Wiles (OverDrive) </li> <li>Alicia Wise (Publishers Licensing Society) </li> <li>Amir Moghaddami (National Library and Archives of Iran) </li> <li>Andreas Gosling (Penguin UK) </li> <li>Andy Williams (Cambridge University Press) </li> <li>Anupam Jain (Innodata Isogen) </li> <li>Ben Trafford (Invited Expert) </li> <li>Benoit Larroque (Feedbooks) </li> <li>Bill McCoy (Invited Expert) </li> <li>Bill Kasdorf (Apex CoVantage) </li> <li>Bob Kasher (The BookMasters Group) </li> <li>Brady Duga (eBook Technologies) </li> <li>Byron Laws (PreMedia Global) </li> <li>Catherine Zekri (University of Montreal) </li> <li>Chris Kennedy (Pearson Education) </li> <li>Corey Podolsky (Entourage Systems Inc.) </li> <li>Cristina Mussinelli (AIE) </li> <li>Daihei Shiohama (Voyager Japan) </li> <li>Dan Amos (DNAML) </li> <li>Dan Galperin (Kobo) </li> <li>Dan Kok (Crossway Books and Bibles) </li> <li>Dave Cramer (Hachette Book Group USA) </li> <li>Dave Gunn (RNIB Centre for Accessible Information) </li> <li>David Mandelbaum (Barnes&amp;Noble.com) </li> <li>Deidra Roberts (World Health Organization) </li> <li>Donald Goyette (McGraw-Hill Professional) </li> <li>Eric Freese (Aptara) </li> <li>Eric Gold (Digital Divide Data) </li> <li>Eric Muller (Adobe) </li> <li>Garth Conboy (eBook Technologies) - Working Group Vice-chair </li> <li>George Kerscher (DAISY Consortium) - Working Group Chair </li> <li>Gregory Shepherd (Cengage Learning) </li> <li>Guy Fain (Crossway Books &amp; Bibles) </li> <li>Hadrien Gardeur (Feedbooks) </li> <li>Hisashi Hoda (Voyager Japan) </li> <li>Ignacio Fernández Galván </li> <li>Israel Viente (Mendele He-Books) </li> <li>Jim Link (Macmillan Publishing Solutions) </li> <li>James MacFarlane (Easypress Technologies) </li> <li>Jim Rura (Educational Testing Service) </li> <li>John Crossman (Benetech) </li> <li>John Prabhu (HOV Services) </li> <li>John Rivlin (eBook Technologies) </li> <li>John Wait (Pearson Education) </li> <li>Jon Noring (Invited Expert) </li> <li>Joshua Tallent (eBook Architects) </li> <li>Karen Broome (Sony) </li> <li>Keith Fahlgren (Threepress Consulting) </li> <li>Kenny Johar (Vision Australia) </li> <li>Laurie Casey (Pearson) </li> <li>Lech Rzedzicki (Pearson UK) </li> <li>Liisa McCloy-Kelley (Random House) </li> <li>Lindy Humphreys (Wiley/ Blackwell Books) </li> <li>Liza Daly (Theepress Consulting) </li> <li>Makoto Murata (JEPA EPUB Study Group) </li> <li>Marco Croella (Simplicissimus Book Farm) </li> <li>Markus Gylling (DAISY Consortium) </li> <li>Mattias Karlsson (Dolphin Computer Access AB) </li> <li>Michael Smith (IDPF), Neil Soiffer (Design Science) </li> <li>Noah Genner (BookNet Canada) </li> <li>Pat Pagano (HarperCollins) </li> <li>Patricia Payton (Bowker) </li> <li>Patrick Barry (The Educational Company of Ireland) </li> <li>Patrick Berube (LEARN) </li> <li>Paul Durrant (Durrant Software Limited) </li> <li>Paul Norton (Invited Expert) </li> <li>Penelope Reid (EPUB User Group (UK)) </li> <li>Perce Huang (Far EasTone Telecommunications) </li> <li>Peter Brantley (Internet Archive) </li> <li>Peter Sorotokin (Adobe) </li> <li>Richard Heiberger (HarperCollins Publishers) </li> <li>Richard Kwan (Invited Expert) </li> <li>Russell White (Random House) </li> <li>Samir Kakar (Aptara) </li> <li>Satya Pamarty (codeMantra) </li> <li>Scott Cook (codeMantra) </li> <li>Sean Ramsey (LibreDigital) </li> <li>Siobahn Padgett (Hachette BG USA) </li> <li>Steve Arany (John Wiley &amp; Sons) </li> <li>Takeshi Kanai (Sony) </li> <li>Thad Swiderski (LibreDigital) </li> <li>Tim Middleton (BookNet Canada) </li> <li>Trudy Conti (Follett) </li> <li>Tyler Ruse (LibreDigital) </li> <li>William Howard (EasyPress Technologies) </li> </ul> </ins> <p class="Copy"> Version 2.0 of this specification was prepared by the International Digital Publishing Forum (IDPF) Open Publication Publication Structure (OEBPS) Working Group. Members of the working group at the time of publication of revision 2.0 were: </p> <ul class="AuthorList"> <li>Angel Ancin, iRex Technologies </li> <li>Rick Bowes, Thomson Learning </li> <li>Peter Brantley, Digital Library Federation </li> <li>Clint Brauer, SONY </li> <li>Ken Brooks, Thomson Learning </li> <li>Janice Carter, Benetech </li> <li>Richard Cohn, Adobe Systems, Inc. </li> <li>Garth Conboy, Publication Technologies, Inc. (Working Group co-Chair) </li> <li>Neil De Young, Hachette Book Group </li> <li>Linh Do, Random House </li> <li>Brady Duga, Publication Technologies, Inc. </li> <li>Geoff Freed, WGBH </li> <li>Markus Gylling, DAISY Consortium </li> <li>Jonathan Hevenstone, Publishing Dimensions (Working Group Vice Chair) </li> <li>Rick Johnson, VitalSource Technologies </li> <li>George Kerscher, DAISY Consortium </li> <li>Steve Kotrch, Simon &amp; Schuster </li> <li>Bill McCoy, Adobe Systems, Inc. </li> <li>Jon Noring, Digital Pulp Publishing </li> <li>Siobhan Padgett, Hachette Book Group </li> <li>Mina Park, Holtzbrinck Publishers </li> <li>John Rivlin, Publication Technologies, Inc. (Working Group co-Chair) </li> <li>Tyler Ruse, CodeMantra </li> <li>Mike Smith, Harlequin </li> <li>Peter Sorotokin, Adobe Systems, Inc. </li> <li>Jennifer Sutton, Benetech </li> <li>Ben Trafford, Invited Expert </li> <li>Gary Varnell, Osoft </li> <li>Eli Willner, Green Point Technology Services </li> <li>Ric Wright, Adobe Systems, Inc. </li> </ul> <p class="Copy"> The prior version of the OPS specification, on which this effort is based, was OEBPS 1.2. OEBPS 1.2 was developed by the Open Publication Forum Publication Structure Working Group. Active members that that working group during development of OEBPS 1.2 were: </p> <ul class="AuthorList"> <li>Jeff Alexander, Franklin Electronic Publishers </li> <li>Garth Conboy, Gemstar Publication Group Limited (Version 1.2 Co-Editor) </li> <li>Eva Conkright, Random House </li> <li>Brady Duga, Gemstar Publication Group Limited (Version 1.2 Co-Editor) </li> <li>Jerry Dunietz, Microsoft Corporation (Working Group Vice Chair) </li> <li>David Goldstein, Versaware Inc. </li> <li>Gene Golovchinsky, FX Palo Alto Laboratory, Inc. (Development Sub-Group Co-Chair) </li> <li>Donald Goyette, McGraw-Hill </li> <li>Rebecca Guenther, Library of Congress </li> <li>Markku Hakkinen, isSound Corporation </li> <li>Barbara Hammond, Nokia </li> <li>Benjamin Jung, deepX </li> <li>George Kerscher, DAISY Consortium </li> <li>Christopher R, Maden, crism consulting </li> <li>Bob Mathews, Adobe </li> <li>Michael Moodie, National Library Service for the Blind and Physically Handicapped, Library of Congress </li> <li>Jon Noring, Windspun Inc. (Maintenance Sub-Group Chair) </li> <li>David Pawson, Royal National Institute for the Blind </li> <li>Chris Powell, University of Michigan Library </li> <li>James Pritchett, Recording for the Blind and Dyslexic </li> <li>Allen Renear, Brown University Scholarly Technology Group (Working Group Chair) </li> <li>Dorothea Salo, OverDrive, Inc. (Working Group Scribe) </li> <li>Ilan Sender, Microsoft Corporation </li> <li>Sheela Sethuraman, CAST </li> <li>Roger Sperberg, e-bks, LLC </li> <li>Patrick Stickler, Nokia </li> <li>Lisa Rupe, Questia Media Inc. </li> <li>Mikhail Vaysbukh, Data Conversion Laboratory </li> <li>Garret Wilson, GlobalMentor, Inc. (Development Sub-Group Co-Chair) </li> <li>Harrison Yee, Apex </li> </ul> </div> <div class="Section"> <h2 class="SectionTitle"> <a class="SectionTitle" href="#AppendixTOCC" id="AppendixC" name="AppendixC">Appendix C: Acknowledgements</a> </h2> <p class="Copy"> The working group wishes to specifically acknowledge the contributions of the following individuals. <span class="Emphasis">Peter Sorotokin</span> for authoring the OPS and OPF RelaxNG schemas, creation of the NVDL definition of OPS, and general technical acumen. <span class="Emphasis">Ben Trafford</span> for the concept and drafting of XML Islands, as well as overall technical participation, and the XML templates used to produce the specifications. <span class="Emphasis">George Kerscher</span> for drafting the OPF NCX section, providing consistent accessibility direction and broad technical input. <span class="Emphasis">Brady Duga</span> and <span class="Emphasis">Jon Noring</span> for directional contributions, specification editing and providing continuity with the historic OEBPS 1.2 effort. <span class="Emphasis">Garth Conboy</span> for working group leadership and motivation, specification drafting and technical contributions. </p> </div> <div class="Section"> <h2 class="SectionTitle"> <a class="SectionTitle" href="#AppendixTOCD" id="AppendixD" name="AppendixD">Appendix D: Supporting Information &amp; Errata</a> </h2> <p class="Copy"> For additional information about all IDPF specifications including sample files, specification implementations and other information, please visit our public forums at <a href="http://www.idpf.org/forums" target="_blank" title="IDPF Forums">http://www.idpf.org/forums</a>. If errors in the specifications are identified following publication, please post these errors to the forums. The responsible Working Group will review the errors and post pending corrections to the specifications if required or necessary. Corrections will be incorporated into subsequent versions of the specifications. </p> </div> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10