EPUB Packages 3.1

Recommended Specification 5 January 2017

This version
http://www.idpf.org/epub/31/spec/epub-packages-20170105.html
Latest version
http://www.idpf.org/epub3/latest/packages
Previous version
http://www.idpf.org/epub/31/spec/epub-packages-20161130.html
Previous recommendation
http://www.idpf.org/epub/301/spec/epub-publications-20140626.html
Document history

Editors

Markus Gylling, International Digital Publishing Forum (IDPF)

William McCoy, International Digital Publishing Forum (IDPF)

Matt Garrish, Invited Expert

Copyright © 2010-2017 International Digital Publishing Forum™

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 (IDPF).

EPUB is a registered trademark of the International Digital Publishing Forum.

Status of this Document

This section describes the status of this document at the time of its publication. Other documents might supersede this document.

This document was produced by the EPUB Working Group under the EPUB Working Group Charter approved on 8 July 2015.

This document has been reviewed by the IDPF membership and is endorsed by the IDPF Board as a Recommended Specification. This document is considered stable and can be referenced from other specifications and documents.

Feedback on this document can be provided to the EPUB Working Group's mailing list or issue tracker.

This document is governed by the IDPF Policies and Procedures.

  1 Overview

  1.1 Purpose and Scope

This section is informative

This specification, EPUB Packages 3.1, defines semantics and conformance requirements for an EPUB® Package. Each Package represents one Rendition of an EPUB Publication, and is defined by a Package Document that describes the content of the Rendition and sets the requirements for how Publication Resources are associated.

This specification also defines the EPUB Navigation Document, a machine- and human-readable specialization of an EPUB Content Document that provides navigation aids such as the table of contents.

This specification is one of a family of specifications that compose [EPUB 3.1], an interchange and delivery format for digital publications based on XML and Web Standards. It is meant to be read and understood in concert with the other specifications that make up EPUB 3.1.

Refer to [EPUB3 Changes] for more information on the differences between this specification and its predecessor.

  1.2 Terminology

Terms with meanings specific to EPUB 3.1 are capitalized in this document (e.g., "Author", "Reading System"). A complete list of these terms and definitions is provided in [EPUB 3.1].

Only the first instance of a term in a section is linked to its definition.

  1.3 Typographic Conventions

The following typographic conventions are used in this specification:

markup

All markup (elements, attributes, properties), code (JavaScript, pseudo-code), machine-readable values (string, characters, media types) and file names are in red monospace font.

markup link

Links to markup and code definitions are in underlined red monospace font.

http://www.idpf.org/

URIs are in navy blue monospace font.

hyperlink

Hyperlinks are underlined and blue.

[reference]

Normative and informative references are enclosed in square brackets.

Term

Terms defined in the Terminology are in capital case.

Term Link

Links to term definitions have a dotted blue underline.

Normative element, attribute and property definitions are in blue boxes.

Informative markup examples are in light gray boxes.

note

Informative notes are in green boxes with a "Note" header.

caution

Informative cautionary notes are in red boxes with a "Caution" header.

  1.4 Conformance Statements

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [RFC2119].

All sections and appendixes of this specification are normative except where identified by the informative status label "This section is informative". The application of informative status to sections and appendixes applies to all child content and subsections they contain.

All examples in this specification are informative.

  1.5 Prefix Mappings

For convenience, the following reserved prefix mappings are used in this specification.

Prefix mappings
prefix URI
dcterms http://purl.org/dc/terms/
opf http://www.idpf.org/2007/opf
rendition http://www.idpf.org/vocab/rendition/#

  2 Conformance

  2.1 Package Conformance

A conformant EPUB Package must meet all of the following criteria:

Package Document

  It must contain exactly one Package Document, which must conform to the content requirements defined in Package Document — Content Conformance.

Publication Resources

  All Publication Resources associated with the Package must be listed in the Package Document (as defined in manifest).

EPUB Navigation Document

  It must contain exactly one EPUB Navigation Document, which must conform to the content requirements defined in EPUB Navigation Documents — Content Conformance.

Content Documents

  It must contain one or more EPUB Content Documents, each of which must conform to the content requirements defined in [Content Docs 3.1].

CSS Style Sheets

  It may contain zero or more CSS Style Sheets, each of which must conform to the content requirements defined in CSS Style Sheets — Content Conformance [Content Docs 3.1].

Pronunciation Lexicons

  It may contain zero or more PLS Documents, each of which must conform to the content requirements defined in PLS Documents — Content Conformance [Content Docs 3.1].

Media Overlay Documents

  It may contain zero or more Media Overlay Documents, each of which must conform to the content requirements defined in [Media Overlays 3.1].

Additional Resources

  It may contain zero or more Publication Resources in addition to those listed above, each of which must adhere to the requirements in Publication Resources [EPUB 3.1].

  2.2 Reading System Conformance

An EPUB Reading System must meet all of the following criteria:

  3 Package Document

  3.1 Introduction

This section is informative

The Package Document is an XML document that consists of a set of elements that each encapsulate information about a particular aspect of the EPUB Package. These elements serve to centralize metadata, detail the individual resources that compose the Package and provide the reading order and other information necessary to render the Rendition.

The following list summarizes the information found in the Package Document:

  • Metadata — mechanisms to include and/or reference metadata applicable to the given Rendition of the EPUB Publication.

  • A manifest — identifies (via IRI) and describes (via MIME media type) the set of resources that collectively compose the given Rendition.

  • A spine — an ordered sequence of ID references to top-level resources in the manifest from which all other resources in the set can be reached or utilized. The spine defines the default reading order of the given Rendition.

  • Collections — a method of encapsulating and identifying subcomponents within the Package.

  • Manifest fallback chains — a mechanism that defines an ordered list of top-level resources as content equivalents. A Reading System can then choose between the resources based on which it is capable of rendering.

  3.2 Content Conformance

A Package Document must meet all of the following criteria:

Document Properties

   It must meet the conformance constraints for XML documents defined in XML Conformance [EPUB 3.1].

  It must be valid to the Package Document schema, as defined in Appendix B, Package Document Schema, and conform to all content conformance constraints expressed in Package Document Definition.

File Properties

  The Package Document filename should use the file extension .opf.

Package Documents have the MIME media type application/oebps-package+xml [RFC4839].

  3.3 Reading System Conformance

An EPUB Reading System must meet all of the following criteria:

Processing

  It must process the Package Document in conformance with all Reading System conformance constraints expressed in Package Document Definition.

  It should process rendering metadata, as expressed in Package Rendering Metadata

  It must process fixed layout metadata, as expressed in Fixed-Layout Properties

  It must ignore proprietary metadata properties that pertain to layout expressions if they conflict behaviorally with the property semantics defined in Fixed-Layout Properties.

  3.4 Package Document Definition

All [XML] elements defined in this section are in the http://www.idpf.org/2007/opf namespace [XMLNS] unless otherwise specified.

When an element defined in this section has mandatory text content, that content is referred to as the value of the element in the explanatory descriptions.

  3.4.1 The package Element

The package element is the root element of the Package Document and defines various aspects of the EPUB Package (see the introduction for a general overview).

Element Name

package

Usage

The package element is the root element of the Package Document.

Attributes
Content Model

In this order:

The version attribute specifies the EPUB specification version to which the given EPUB Package conforms. The attribute must have the value "3.1" to indicate compliance with this version of the specification.

The unique-identifier attribute takes an IDREF [XML] that identifies the dc:identifier element that provides the preferred, or primary, identifier. Refer to Publication Identifiers for more information.

The prefix attribute provides a declaration mechanism for prefixes not reserved by this specification. Refer to The prefix Attribute for more information.

  3.4.2 Shared Attributes

This section provides definitions for shared attributes (i.e., attributes that are allowed on two or more elements).

Attributes with the prefix "opf:" are in the namespace http://www.idpf.org/2007/opf.

dir

Specifies the base text direction of the content and attribute values of the carrying element and its descendants.

Inherent directionality specified using [Unicode] takes precedence over this attribute.

Allowed values are ltr (left-to-right) and rtl (right-to-left).

<package … dir="ltr">

Allowed on: collection, dc:contributor, dc:coverage, dc:creator, dc:description, dc:publisher, dc:relation, dc:rights, dc:subject, dc:title, meta and package.

href

An absolute or relative IRI reference [RFC3987] to a resource.

<link rel="record"
      href="meta/9780000000001.xml" 
      media-type="application/marc"/>

Allowed on: item and link.

id

The ID [XML] of the element, which must be unique within the document scope.

<dc:identifier id="pub-id">urn:isbn:97800000000001</dc:identifier>

Allowed on: collection, dc:contributor, dc:coverage, dc:creator, dc:date, dc:description, dc:format, dc:identifier, dc:language, dc:publisher, dc:relation, dc:rights, dc:source, dc:subject, dc:title, dc:type, item, itemref, link, manifest, meta, package and spine.

media-type

A media type [RFC2046] that specifies the type and format of the referenced resource.

<link rel="record"
      href="http://example.org/meta/12389347?format=xmp"
      media-type="application/xml"
      properties="xmp"/>

Allowed on: item and link.

opf:alt-rep

Provides an alternative representation of the element's value in the language and optional script identified by the opf:alt-rep-lang attribute.

<dc:creator opf:alt-rep-lang="ja" opf:alt-rep="村上 春樹">
    Haruki Murakami
</dc:creator>

Allowed on: dc:contributor, dc:creator, dc:publisher, dc:title and meta.

note

As attributes cannot be repeated, only a single alternative representation can be declared for any element.

opf:alt-rep-lang

Specifies the language and optional script of the value of the opf:alt-rep attribute. The value of the attribute must be a language identifier as defined by [BCP 47].

<dc:creator opf:alt-rep-lang="ja" opf:alt-rep="村上 春樹">
    Haruki Murakami
</dc:creator>

The attribute is required whenever opf:alt-rep is used on an element. It must not appear on its own.

opf:file-as

Provides the normalized form of the element's value for sorting.

<dc:creator opf:file-as="Murakami, Haruki">Haruki Murakami</dc:creator>

Reading Systems must trim all leading and trailing white space from the attribute value, as defined by the XML specification [XML], prior to processing.

Allowed on: dc:contributor, dc:creator, dc:publisher, dc:title and meta.

opf:role

Identifies the role of a creator or contributor. The value must be a three-letter lowercase code from [MARC Relators].

<dc:creator opf:role="aut">Haruki Murakami</dc:creator>

Allowed on: dc:contributor and dc:creator.

opf:scheme

Identifies the type of identifier.

<dc:identifier opf:scheme="isbn">9780123456789</dc:identifier>

Allowed on: dc:identifier and dc:source.

properties

A space-separated list of property values.

Refer to each element's definition for the reserved vocabulary that can be used with the attribute.

<item id="nav" 
    href="nav.xhtml" 
    properties="nav"
    media-type="application/xhtml+xml"/>

Allowed on: item, itemref and link.

xml:lang

Specifies the language used in the contents and attribute values of the carrying element and its descendants, as defined in section 2.12 Language Identification of [XML].

<package … xml:lang="ja">
   …
</package>

Allowed on: collection, dc:contributor, dc:coverage, dc:creator, dc:description, dc:publisher, dc:relation, dc:rights, dc:subject, dc:title, meta and package.

  3.4.3 Metadata

  3.4.3.1 The metadata Element

The metadata element encapsulates meta information for the given Rendition.

Element Name

metadata

Usage

Required first child of package.

Attributes

None

Content Model

In any order:

The Package Document metadata element has two primary functions:

  1. to provide a minimal set of meta information for Reading Systems to use to internally catalogue an EPUB Publication and make it available to a user (e.g., to present in a bookshelf).

  2. to provide access to all rendering metadata needed to control the layout and display of the Rendition's content (e.g., fixed-layout properties).

The Package Document is not designed to provide complex metadata encoding capabilities. If more detailed information about an EPUB Publication is needed, metadata records can be associated using the link element (e.g., that conform to an international standard such as [ONIX] or are created for custom purposes). This approach allows the metadata to be processed in its native form, avoiding the potential problems and information loss caused by translating to use the minimal Package Document structure.

In keeping with this philosophy, the Package Document only has the following minimal metadata requirements: it must include the [DCMES] title, identifier and language elements together with the [DCTERMS] modified property. All other metadata is optional.

The following example shows the minimal set of metadata that Authors have to include in the Package Document.

<package … unique-identifier="pub-id">
    …
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
        <dc:identifier id="pub-id">urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809</dc:identifier>
        <dc:title>Norwegian Wood</dc:title>
        <dc:language>en</dc:language>
        <meta property="dcterms:modified">2011-01-01T12:00:00Z</meta>
    </metadata>
    …
</package>

The meta element provides a generic mechanism for including metadata properties from any vocabulary. It is typically used to include rendering metadata defined in IDPF specifications, but may be used for any metadata purposes.

note

See [EPUB Accessibility] for accessibility metadata recommendations.

  3.4.3.2 DCMES Required Elements

  3.4.3.2.1 The identifier Element

The [DCMES] identifier element contains an identifier associated with the given Rendition, such as a UUID, DOI or ISBN.

Element Name

dc:identifier

Namespace

http://purl.org/dc/elements/1.1/

Usage

Required child of metadata.

Attributes
Content Model

Text

The metadata section must include an identifier element that contains an unambiguous identifier for the Rendition. This identifier must be marked as the Unique Identifier via the package element unique-identifier attribute.

The following example shows the unique identifier element for an EPUB Publication.

<package … unique-identifier="pub-id">
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
        <dc:identifier id="pub-id">
            urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809
        </dc:identifier>
        …
    </metadata>
</package>

The Unique Identifier for each Rendition may differ, and a Rendition may include additional identifier elements.

To differentiate different versions of the same EPUB Publication, this specification makes a distinction between the Unique Identifier for an EPUB Publication and the Release Identifier that uniquely identifies a specific version of it.

To identify a specific version of a packaged EPUB Publication, a Release Identifier can be constructed by combining the Unique Identifier with the last modified date of the Rendition. For more information on the semantics and requirements of the Release Identifier, refer to Release Identifier.

The following example shows the two components of the Release Identifier.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:identifier id="pub-id">
        urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809
    </dc:identifier>
    <meta property="dcterms:modified">2016-01-01T00:00:01Z</meta>
    …
</metadata>

Whenever a Rendition is modified, it must include a new last modified date.

To determine whether an identifier conforms to an established system or has been granted by an issuing authority, Reading Systems should attempt to parse the value of the element.

For additional precision (e.g., if the scheme cannot be determined from the value or could lead to an ambiguous result), Authors may attach an opf:scheme attribute to assist in Reading System identification. This attribute identifies the system or authority that generated or assigned the value of the element. Its value must be either:

The following example shows the opf:scheme attribute used to indicate a dc:identifier element contains an ISBN.

<dc:identifier opf:scheme="isbn">9780123456789</dc:identifier>

When included, the opf:scheme value should take precedence over value parsing the identifier. This specification does not require or endorse the use of any particular scheme for identifiers.

Reading Systems must trim all leading and trailing white space from the element value, as defined by the XML specification [XML], before processing the value.

This specification imposes no additional restrictions or the requirements of the identifier except that it must be at least one character in length after white space has been trimmed. It is strongly recommended that the identifier be a fully qualified URI, however.

  3.4.3.2.2 The title Element

The [DCMES] title element represents an instance of a name given to the EPUB Publication.

Element Name

dc:title

Namespace

http://purl.org/dc/elements/1.1/

Usage

Required child of metadata.

Attributes
Content Model

Text

The metadata section must include at least one title element containing the title for the EPUB Publication.

The following example shows a multi-part title.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/"
          xmlns:opf="http://www.idpf.org/2007/opf">
    <dc:title opf:file-as="Fellowship of the Ring">
        THE LORD OF THE RINGS, Part One: The Fellowship of the Ring
    </dc:title>
    …
</metadata>

Reading Systems must recognize the first title element in document order as the main title of the EPUB Publication (i.e., the primary one to present to users). This specification does not define how to process additional title elements.

The title for each Rendition may differ.

Reading Systems must trim all leading and trailing white space from the element value, as defined by the XML specification [XML], before processing the value.

This specification imposes no additional restrictions or requirements on the title except that it must be at least one character in length after white space has been trimmed.

  3.4.3.2.3 The language Element

The [DCMES] language element specifies the language of the content of the given Rendition.

Element Name

dc:language

Namespace

http://purl.org/dc/elements/1.1/

Usage

Required child of metadata. Repeatable.

Attributes

id [optional]

Content Model

Text

The metadata section must include at least one language element with a value conforming to [BCP 47].

The following example shows an EPUB Publication is in U.S. English.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    …
    <dc:language>en-US</dc:language>
    …
</metadata>

Additional language elements may be included for multilingual Publications, but each element's value must conform to [BCP 47].

Languages for each Rendition may differ.

Reading Systems must trim all leading and trailing white space from the element value, as defined by the XML specification [XML], before processing the value.

  3.4.3.3 DCMES Optional Elements

  3.4.3.3.1 General Definition

With the exception of identifier, language and title, all other [DCMES] elements are designated as optional. These elements conform to the following generalized definition:

Element Name

contributor | coverage | creator | date | description | format | publisher | relation | rights | source | subject | type

Namespace

http://purl.org/dc/elements/1.1/

Usage

Optional child of metadata. Repeatable.

Attributes
  • opf:alt-rep [optional] – only allowed on contributor, creator, and publisher.

  • opf:alt-rep-lang [conditionally required] – only allowed on contributor, creator, and publisher.

  • dir [optional] – only allowed on contributor, coverage, creator, description, publisher, relation, rights and subject.

  • opf:file-as [optional] – only allowed on contributor, creator, and publisher.

  • id [optional] – allowed on any element.

  • opf:role [optional] – only allowed on contributor and creator.

  • opf:scheme [optional] – only allowed on identifier and source.

  • xml:lang [optional] – only allowed on contributor, coverage, creator, description, publisher, relation, rights and subject.

Content Model

Text

The optional [DCMES] metadata for each Rendition may differ.

Reading Systems must trim all leading and trailing white space from the element value, as defined by the XML specification [XML], before processing the value.

The value of all optional [DCMES] elements must be at least one character in length after white space has been trimmed.

This specification does not modify the [DCMES] element definitions except as noted in the following sections.

  3.4.3.3.2 The contributor Element

The [DCMES] contributor element is used to represent the name of a person, organization, etc. that played a secondary role in the creation of the content of an EPUB Publication.

The requirements for the contributor element are identical to those for the creator element in all other respects.

  3.4.3.3.3 The creator Element

The [DCMES] creator element represents the name of a person, organization, etc. responsible for the creation of the content of the Rendition.

The creator element should contain the name of the creator as a Reading System will present it to a user. The opf:file-as attribute may be attached to include a normalized form of the name, and the opf:alt-rep attribute may be used to represent a creator's name in another language or script (as indicated in the opf:alt-rep-lang attribute).

The role attribute may be attached to distinguish the role the creator played in the creation of the content (e.g., an author or illustrator).

The following example shows how a creator name can be included to facilitate sorting and rendering.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/"
          xmlns:opf="http://www.idpf.org/2007/opf">
    …
    <dc:creator id="creator" opf:file-as="Murakami, Haruki">
        Haruki Murakami
    </dc:creator>
    …
</metadata>

If an EPUB Publication has more than one creator, each should be included in a separate creator element.

When determining display priority, Reading Systems must use the document order of creator elements in the metadata section, where the first creator element encountered is the primary creator. If a Reading System exposes creator metadata to the user, it should include all the creators listed in the metadata section whenever possible (e.g., when not constrained by display considerations).

In the following example, Lewis Carroll is the primary creator as he is listed first.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    …
    <dc:creator id="creator01">Lewis Carroll</dc:creator>
    <dc:creator id="creator02">John Tenniel</dc:creator>
    …
</metadata>

Secondary contributors should be represented using the contributor element.

  3.4.3.3.4 The date Element

The [DCMES] date element must be used only to define the publication date of the EPUB Publication. The publication date is not the same as the last modified date (the last time the Rendition was changed).

It is recommended that the date string conform to [ISO8601], particularly the subset expressed in W3C Date and Time Formats [DateTime], as such strings are both human and machine readable.

The following example shows a publication date.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    …
    <dc:date>2000-01-01T00:00:00Z</dc:date>
    …
</metadata>

Additional dates should be expressed using the specialized date properties available in the [DCTERMS] vocabulary, or similar.

The publication date may be common to all instances of an EPUB Publication or may change from instance to instance (e.g., if the EPUB Publication gets generated on demand).

Only one date element is allowed.

  3.4.3.3.5 The subject Element

The [DCMES] subject element identifies the subject of the EPUB Publication.

In addition to the attributes listed in the general definition, the element takes an optional opf:authority attribute that identifies the system or scheme the element's value is drawn from. The value of the attribute must be either:

When a scheme is identified in the opf:authority attribute, the subject code must be included in an opf:term attribute. The value of the element should be the human-readable heading or label, but may be the code value if the subject taxonomy does not provide a separate descriptive label.

The following example shows a BISAC code and heading.

<dc:subject opf:authority="BISAC" opf:term="FIC024000">
    FICTION / Occult &amp; Supernatural
</dc:subject>

The following example shows the use of an IRI for the scheme.

<dc:subject opf:authority="http://www.ams.org/msc/msc2010.html"
            opf:term="11">
    Number Theory
</dc:subject>

The opf:term attribute must not occur on a subject element that does not specify a scheme.

The values of the subject element and opf:term attribute are case sensitive only when the designated scheme requires.

  3.4.3.3.6 The type Element

The [DCMES] type element is used to indicate that the given EPUB Publication is of a specialized type (e.g., annotations or a dictionary packaged in EPUB format).

The IDPF maintains an informative registry of specialized EPUB Publication types for use with this element in [Types Registry].

  3.4.3.4 The meta Element

The meta element provides a generic means of including package metadata.

Element Name

meta

Usage

As child of the metadata element. Repeatable.

Attributes
Content Model

Text

Each meta element defines a metadata expression that establishes some aspect of the EPUB Publication. The property attribute takes a property data type value that defines the statement being made in the expression; the text content of the element represents the assertion. (Refer to Vocabulary Association Mechanisms for more information.)

This specification reserves the [Meta Vocab] for use with the property attribute. Terms from any other vocabulary may be used provided they have a prefix (refer to Reserved Prefixes for a list of prefixes that do not have to be declared).

The following example shows various property declarations using reserved prefixes.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    …
    <meta property="dcterms:modified">2016-02-29T12:34:56Z</meta>
    <meta property="rendition:layout">pre-paginated</meta>
    <meta property="media:active-class">-epub-media-overlay-active</meta>
    …
</metadata>

The scheme attribute identifies the system or scheme that the element's value is drawn from. The value of the attribute must be a property data type that resolves to the resource that defines the scheme. If a Reading System does not recognize the scheme attribute value, it should treat the value of the element as a string.

Reading Systems should ignore all meta elements whose property attributes define expressions they do not recognize. A Reading System must not fail when encountering unknown expressions.

Unless an individual property explicitly defines a different white space normalization algorithm, Reading Systems must trim all leading and trailing white space from the meta element values, as defined by the XML specification [XML], before further processing them.

Every meta element must express a value that is at least one character in length after white space normalization.

  3.4.4 Manifest

  3.4.4.1 The manifest Element

The manifest element provides an exhaustive list of the Publication Resources that constitute the given Rendition, each represented by an item element.

Element name

manifest

Usage

Required second child of package, following metadata.

Attributes

id [optional]

Content Model

item [1 or more]

note

This specification supports internationalized resource naming, so elements and attributes that reference Publication Resources accept IRIs as their value. For compatibility with older Reading Systems that only accept URIs, resource names need to be restricted to the ASCII character set.

  3.4.4.2 The item Element

The item element represents a Publication Resource.

Element Name

item

Usage

As a child of manifest. Repeatable.

Attributes
Content Model

Empty

Each item element in the manifest identifies a Publication Resource by the IRI [RFC3987] provided in its href attribute. The IRI may be absolute or relative. In the case of relative IRIs, Reading Systems must use the IRI of the Package Document as the base when resolving these to absolute IRIs. The resulting absolute IRI must be unique within the manifest scope.

All Publication Resources must be referenced from the manifest, regardless of whether they are Local or Remote Resources. Refer to Publication Resource Locations [EPUB 3.1] for media type-specific requirements regarding resource locations.

Note that the manifest is not self-referencing: it must not include an item element that refers to the Package Document itself.

The Publication Resource identified by an item element must conform to the applicable specification(s) as inferred from the MIME media type provided in the media-type attribute. Core Media Type Resources must use the media type designated in [Core Media Types].

The fallback attribute takes an IDREF [XML] that identifies a fallback for the Publication Resource referenced from the item element. Fallbacks may be provided for Core Media Type Resources (e.g., to provide a static alternative to a Scripted Content Document). Fallback requirements for Foreign Resources are defined in Manifest Fallbacks.

This specification reserves the [Manifest Vocab] for use with the properties attribute. Terms from other vocabularies may be used provided they have a prefix (refer to Reserved Prefixes for a list of prefixes that do not have to be declared).

Authors must declare all applicable descriptive metadata properties for each Publication Resource in this attribute, as Reading Systems may optimize the rendering depending on the properties that have been set (e.g., disable a rendering process or use a fallback). Reading Systems must ignore all descriptive metadata properties that they do not recognize.

Exactly one item must be declared as the EPUB Navigation Document using the nav property.

The media-overlay attribute takes an IDREF [XML] that identifies the Media Overlay Document for the resource described by this item. Refer to Packaging [Media Overlays 3.1] for more information.

The duration attribute takes a [SMIL] clock value that provides the total duration of the audio media referenced from a Media Overlay Document or, in the case of timed media, the total duration of the referenced media file. Refer to Package Metadata [Media Overlays 3.1] for more information.

note

The order of item elements in the manifest is not significant. The presentation sequence of content documents is provided in the spine.

Examples

The following example shows a manifest that contains only Core Media Type Resources.

<manifest>
    <item id="nav" 
          href="nav.xhtml" 
          properties="nav"
          media-type="application/xhtml+xml"/>
    <item id="intro" 
          href="intro.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c1" 
          href="chap1.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c1-answerkey" 
          href="chap1-answerkey.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c2" 
          href="chap2.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c2-answerkey" 
          href="chap2-answerkey.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c3" 
          href="chap3.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="c3-answerkey" 
          href="chap3-answerkey.xhtml" 
          media-type="application/xhtml+xml"/>    
    <item id="notes" 
          href="notes.xhtml" 
          media-type="application/xhtml+xml"/>
    <item id="cover" 
          href="./images/cover.svg" 
          properties="cover-image"
          media-type="image/svg+xml"/>
    <item id="f1" 
          href="./images/fig1.jpg" 
          media-type="image/jpeg"/>
    <item id="f2" 
          href="./images/fig2.jpg" 
          media-type="image/jpeg"/>
    <item id="css" 
          href="./style/book.css" 
          media-type="text/css"/>   
    <item id="pls" 
          href="./speech/dict.pls" 
          media-type="application/pls+xml"/>
</manifest>

The following example shows a manifest that references two Foreign Resources, and therefore uses the fallback chain mechanism to supply content alternatives. The fallback chain terminates with a Core Media Type.

<manifest>
    <item id="item1" 
          href="chap1_docbook.xml" 
          media-type="application/docbook+xml" 
          fallback="fall1"/>
    <item id="fall1" 
          href="chap1.xml" 
          media-type="application/z3998-auth+xml" 
          fallback="fall2" />
    <item id="fall2" 
          href="chap1.xhtml" 
          media-type="application/xhtml+xml"/> 
    … 
</manifest>

The following example shows a reference to a remote audio file that has to be referenced from the manifest (the audio is rendered inline in the XHTML Content Document so it is a Publication Resource).

XHTML:
<audio src="http://www.example.com/book/audio/ch01.mp4" controls="controls"/>

Manifest:
<item id="audio01"
      href="http://www.example.com/book/audio/ch01.mp4"
      media-type="audio/mp4"/>

The following example shows a link to the same audio file, but in this case it is not be listed in the manifest (hyperlinked Remote Resources are not Publication Resources). The audio file would only be listed in the manifest if the Author has also referenced it from an [HTML] embedded content element, as above (i.e., in a context where it is used as a Publication Resource).

XHTML:
<a href="http://www.example.com/book/audio/ch01.mp4">Go to audio file</a>

Manifest:
No Entry

The following example shows a link to a local version of the audio file. Because audio files are not EPUB Content Documents, it requires a fallback to an EPUB Content Document (it also has to be listed in the spine).

XHTML:
<a href="audio/ch01.mp4">Open Audio File</a>

Manifest:
<item id="audio01"
      href="audio/ch01.mp4"
      media-type="audio/mp4"
      fallback="#audio01-xhtml"/>

  3.4.4.3 Manifest Fallbacks

Foreign Resources may be referenced in contexts in which an intrinsic fallback cannot be provided (e.g., directly from spine itemref elements; from [HTML] img, iframe and link elements in XHTML Content Documents; and from @import rules in CSS Style Sheets). Manifest fallbacks must be provided in such cases.

Manifest fallbacks are provided using the fallback attribute on the manifest item element that represents the Publication Resource. The fallback attribute's IDREF [XML] value must resolve to another item in the manifest. This fallback item may itself specify another fallback item, and so on.

The ordered list of all the ID references that can be reached starting from a given item's fallback attribute represents the fallback chain for that item. The order of the resources in the fallback chain represents the Author's preferred fallback order.

A Reading System that does not support the Media Type of a given Publication Resource must traverse the fallback chain until it has identified at least one supported Publication Resource to be used in place of the unsupported resource. If the Reading System supports multiple Publication Resources in the fallback chain, it may select the resource to use based on specific properties of that resource, otherwise it should honor the Author's preferred fallback order.

Fallback chains must conform to one of the following requirements, as appropriate:

  • For Foreign Resources referenced directly from spine itemref elements, the chain must contain at least one EPUB Content Document.

  • For Foreign Resources for which an intrinsic fallback cannot be provided, the chain must contain at least one Core Media Type Resource.

Fallback chains must not contain any circular- or self-references to item elements in the chain.

Fallbacks may also be provided for Top-Level Content Documents that are EPUB Content Documents; a Reading System may choose to utilize such fallbacks in order to find the optimal version of a Content Document to render in a given context. An example of when this feature can be utilized is when providing fallbacks for scripted content [Content Docs 3.1].

  3.4.5 Spine

  3.4.5.1 The spine Element

The spine element defines an ordered list of manifest item references that represent the default reading order of the given Rendition.

Element name

spine

Usage

Required third child of package, following manifest.

Attributes
Content Model

itemref [1 or more]

Reading Systems must provide a means of rendering the Rendition in the order defined in the spine, which includes: 1) recognizing the first primary itemref as the beginning of the default reading order; and, 2) rendering successive primary items in the order given in the spine.

All Publication Resources that are hyperlinked to from Publication Resources in the spine must themselves be listed in the spine, where hyperlinking is defined to be any linking mechanism that requires the user to navigate away from the current resource. Common hyperlinking mechanisms include the href attribute of the [HTML] a and area elements and scripted links (e.g., using DOM Events and/or form elements). The requirement to list hyperlinked resources applies recursively (i.e., all Publication Resources hyperlinked from hyperlinked Publication Resources also have to be listed, and so on.).

All Publication Resources hyperlinked to from the EPUB Navigation Document also must be listed in the spine, regardless of whether the Navigation Document is itself listed the spine.

note

As Remote Resources referenced from hyperlinks are not Publication Resources, they are not subject to the requirement to include in the spine (e.g., Web pages and resources).

Embedded Publication Resources (e.g., via the [HTML] iframe element) do not have to be listed in the spine.

The page-progression-direction attribute sets the global direction in which the content flows. Allowed values are ltr (left-to-right), rtl (right-to-left) and default. When the default value is specified, the Author is expressing no preference and the Reading System can choose the rendering direction. The default value must be assumed when the attribute is not specified.

Although the page-progression-direction attribute sets the global flow direction, individual Content Documents and parts of Content Documents may override this setting (e.g., via the writing-mode CSS property). Reading Systems may also provide mechanisms to override the default direction (e.g., buttons or settings that allow the application of alternate style sheets).

Reading Systems must ignore the page progression direction defined in pre-paginated XHTML Content Documents. The page-progression-direction attribute defines the flow direction from one fixed-layout page to the next.

  3.4.5.2 The itemref Element

The child itemref elements of the spine represent a sequential list of Publication Resources (typically EPUB Content Documents). The order of the itemref elements defines the default reading order of the given Rendition.

Element Name

itemref

Usage

As a child of spine. Repeatable.

Attributes
Content Model

Empty

Each itemref element must reference the ID [XML] of a unique item in the manifest via the IDREF [XML] in its idref attribute (i.e., two or more itemref elements cannot reference the same item).

Each referenced manifest item must be either a) an EPUB Content Document or b) another type of Publication Resource which, regardless of whether it is a Core Media Type Resource or a Foreign Resource, must include an EPUB Content Document in its fallback chain.

note

Although EPUB Publications have to include an EPUB Navigation Document, it is not mandatory to include it in the spine.

The linear attribute indicates whether the referenced item contains content that contributes to the primary reading order and has to be read sequentially ("yes") or auxiliary content that enhances or augments the primary content and can be accessed out of sequence ("no"). Examples of auxiliary content include: notes, descriptions and answer keys.

The linear attribute allows Reading Systems to distinguish content that a user needs to access as part of the default reading order from supplementary content which might, for example, be presented in a popup window or omitted from an aural rendering.

When rendering an EPUB Publication, a Reading System may either suppress non-linear content so that it does not appear in the default reading order, or ignore the linear attribute in order to provide users access to the entire content of the EPUB Publication. This specification does not mandate which model Reading Systems have to use. A Reading System may also provide the option for users to toggle between the two models.

Each Rendition must include at least one itemref whose linear attribute value is either explicitly or implicitly set to "yes". An itemref that omits the linear attribute is assumed to have the value "yes".

Authors must provide a means of accessing all non-linear content (e.g., hyperlinks in the content or from the EPUB Navigation Document).

This specification reserves the [Spine Vocab] for use with the properties attribute. Terms from any other vocabulary may be used provided they have a prefix (refer to Reserved Prefixes for a list of prefixes that do not have to be declared).

All applicable descriptive metadata properties defined in [Spine Vocab] should be declared.

Reading Systems must ignore all metadata properties expressed in the properties attribute that they do not recognize.

Examples

The following example shows a spine element corresponding to the manifest example above.

<spine page-progression-direction="ltr">
    <itemref idref="intro"/>
    <itemref idref="c1"/>
    <itemref idref="c1-answerkey" linear="no"/>
    <itemref idref="c2"/>
    <itemref idref="c2-answerkey" linear="no"/>
    <itemref idref="c3"/>
    <itemref idref="c3-answerkey" linear="no"/>
    <itemref idref="notes" linear="no"/>
</spine>

  3.4.6 Collections

  3.4.6.1 The collection Element

The collection element defines a related group of resources.

Element Name

collection

Usage

Optional sixth element of package. Repeatable.

Attributes
Content Model

In this order: metadata [0 or 1], ( collection [1 or more] or ( collection [0 or more], link [1 or more] ))

The collection element allows resources to be assembled into logical groups for a variety of potential uses: enabling content that has been split across multiple EPUB Content Documents to be reassembled back into a meaningful unit (e.g., an index split across multiple documents), identifying resources for specialized purposes (e.g., preview content), or collecting together resources that present additional information about the given Rendition.

The collection element, as defined in this section, represents a generic framework from which specializations are intended to be derived (e.g., through IDPF sub-specifications). Such specializations must define the purpose of the collection element within a Rendition, as well as all requirements for its valid production and use (specifically any requirements that differ from the general framework presented below).

Each specialization must define a role value that uniquely identifies all conformant collection elements. The role of each collection element in the Package Document must be identified in its role attribute, whose value must be one or more NMTOKENs [XSD-DATATYPES] and/or absolute IRIs [RFC3987]. The use of NMTOKEN values is reserved for IDPF-defined roles, which are maintained in the [Role Registry]. NMTOKEN values not defined in the registry are not valid. No roles are defined in this section.

Third parties may define custom roles for the collection element, but such roles must be identified using absolute IRIs. Custom roles must not incorporate the string "idpf.org" in the host component of their identifying IRI.

note

To facilitate interoperability of custom roles across Reading Systems, implementers are strongly encouraged to document their use of the collection element in [Role Extensions].

The optional metadata element child of collection is an adaptation of the package metadata element, with the following differences in syntax and semantics:

  • No metadata is mandatory by default.

  • Package-level restrictions on the use of metadata elements may be overridden.

A collection may define sub-collections through the inclusion of one or more child collection elements.

  • The rel attribute is optional.

  • The properties attribute also accepts manifest item properties [Manifest Vocab] without a prefix (e.g., so that a collection can declare its own Navigation Document or cover image).

Each link element must reference a resource that is a member of the group. The order of link elements is not significant.

Specializations of the collection element may tailor the requirements defined above to better reflect their needs (e.g., requiring metadata, imposing further restrictions on the use of elements and attributes, or making the order of link elements significant). However, the resulting content model must represent a valid subset of the one defined in this section (e.g., specializations cannot introduce new elements or attributes, or re-introduce those expressly forbidden above). Specializations must not define collections in a way that overrides the requirements of the manifest and spine.

In the context of this specification, support for collections in Reading Systems is optional. Reading Systems must ignore collection elements that define unrecognized roles.

The rendering of a Rendition must not be dependent on the recognition of collection elements. The content must remain consumable by a user without any information loss or other significant deterioration.

Examples

The following example shows the assembly of two XHTML Content Documents that represent a single unit.

<package …>
    …
    <collection role="http://example.org/roles/unit">
        <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
            <dc:title>Foo Bar</dc:title>
        </metadata>
        <link href="EPUB/xhtml/foo-1.xhtml"/>
        <link href="EPUB/xhtml/foo-2.xhtml"/>
    </collection>
    …
</package>

  4 Package Metadata

  4.1 Publication Identifiers

  4.1.1 Unique Identifier

The Author is responsible for including a primary identifier in the Package Document metadata that is unique to one and only one EPUB Publication. This Unique Identifier, whether chosen or assigned, must be stored in the dc:identifier element and be referenced as the Unique Identifier in the package element unique-identifier attribute.

Although not static, changes to the Unique Identifier for an EPUB Publication should be made as infrequently as possible. New identifiers should not be issued when updating metadata, fixing errata or making other minor changes to the EPUB Publication.

Reading Systems must not depend on the Unique Identifier being unique to one and only one EPUB Publication. Determining whether two EPUB Publications with the same Unique Identifier represent different versions of the same publication (see Release Identifier), or different publications, might require inspecting other metadata, such as the titles or authors.

  4.1.2 Release Identifier

The Unique Identifier of an EPUB Publication typically should not change with each minor revision to the package or its contents, as Unique Identifiers are intended to have maximal persistence both for referencing and distribution purposes. Each release of an EPUB Publication normally requires that the new version be uniquely identifiable, however, which results in the contradictory need for reliable Unique Identifiers that are changeable.

To redress this problem of identifying minor modifications and releases without changing the Unique Identifier, this specification defines the semantics for a Release Identifier, or means of distinguishing and sequentially ordering EPUB Publications with the same Unique Identifier.

The Release Identifier is not an actual property in the package metadata section, but is a value that can be obtained from two other mandatory pieces of metadata: the Unique Identifier and the last modification date of the Rendition. When the taken together, the combined value represents a unique identity that can be used to distinguish any particular version of an EPUB Publication from another.

To ensure that a Release Identifier can be constructed, each Rendition must include exactly one [DCTERMS] modified property containing its last modification date. The value of this property must be an [XSD-DATATYPES] dateTime conformant date of the form:

CCYY-MM-DDThh:mm:ssZ

The last modification date must be expressed in Coordinated Universal Time (UTC) and must be terminated by the "Z" (Zulu) time zone indicator.

Although not a part of the package metadata, for referencing and other purposes all string representations of the identifier must be constructed using the at sign (@) as the separator (i.e., of the form "id@date"). Whitespace must not be included when concatenating the strings.

The following example shows how a Unique Identifier and modification date are combined to form the Release Identifier.

<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:identifier id="pub-id">urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809</dc:identifier>
    <meta property="dcterms:modified">2011-01-01T12:00:00Z</meta>
    …
</metadata>

results in the Package ID:

urn:uuid:A1B0D67E-2E81-4DF5-9E67-A64CBE366809@2011-01-01T12:00:00Z

Note that it is possible that the separator character may occur in the Unique Identifier, as these identifiers may be any string value. The Release Identifier consequently must be split on the last instance of the at sign when decomposing it into its component parts.

The Release Identifier does not supersede the Unique Identifier, but represents the means by which different versions of the same EPUB Publication can be distinguished and identified in distribution channels and by Reading Systems. The sequential, chronological order inherent in the format of the timestamp also places EPUB Publications in order without requiring knowledge of the exact identifier that came before.

The Release Identifier consequently allows a set of EPUB Publications to be inspected to determine if they represent the same version of the same Publication, different versions of a single EPUB Publication, or any combination of differing and similar EPUB Publications.

note

When an EPUB Container includes more than one Rendition of an EPUB Publication, updating the last modified date of the default rendition for each release — even if it has not been updated — will help ensure that the EPUB Publication does not appear to be the same version as an earlier release, as Reading Systems only have to process the default rendition.

  4.2 Vocabulary Association Mechanisms

  4.2.1 Introduction

This section is informative

The property, properties, rel and scheme attributes use the property data type to represent terms from metadata vocabularies. Similar to a CURIE [RDFa 1.1], the property data type represents an IRI [RFC3987] in compact form and simplifies the authoring of metadata from standardized vocabularies.

A property value is an expression that consists of a prefix and a reference, where the prefix — whether literal or implied — is a shorthand mapping of an IRI that typically resolves to a term vocabulary. When the prefix is converted to its IRI representation and combined with the reference, the resulting IRI normally resolves to a fragment within that vocabulary that contains human- and/or machine-readable information about the term.

To assist Reading Systems in processing property values, this specification defines three mechanisms to establish the IRI a prefix maps to:

  • default vocabularies — define the mapping when a property value does not include a prefix;

  • reserved prefixes — these mappings are predefined (i.e., all Reading Systems recognize them) and can be used without having to be declared; and

  • the prefix attribute — a declarative means of creating new prefix mappings on the root package element.

  4.2.2 Default Vocabularies

A default vocabulary is a vocabulary that does not require a prefix to be declared in order to use its terms, and whose terms must always be unprefixed.

As the Package Document has multiple unrelated uses for metadata terms, a single default vocabulary is not defined for all attributes. Instead, different default vocabularies are defined for use in attributes that accept a property data type as follows:

  • The EPUB Meta Properties Vocabulary [Meta Vocab] is defined to be the default vocabulary for the meta properties attribute.

    If the attribute's value does not include a prefix, the following IRI [RFC3987] stem must be used to generate the resulting IRI: http://idpf.org/epub/vocab/package/meta/#

  • The EPUB Metadata Link Vocabulary [Link Vocab] is defined to be the default vocabulary for the link rel and properties attributes.

    If any of these attributes' values do not include a prefix, the following IRI [RFC3987] stem must be used to generate the resulting IRI for them: http://idpf.org/epub/vocab/package/link/#

  • The EPUB Manifest Properties Vocabulary [Manifest Vocab] is defined to be the default vocabulary for the item properties attribute.

    If any of the attribute's values do not include a prefix, the following IRI [RFC3987] stem must be used to generate the resulting IRI for them: http://idpf.org/epub/vocab/package/item/#

  • The EPUB Spine Properties Vocabulary [Spine Vocab] is defined to be the default vocabulary for the itemref properties attribute.

    If any of the attribute's values do not include a prefix, the following IRI [RFC3987] stem must be used to generate the resulting IRI for them: http://idpf.org/epub/vocab/package/itemref/#

The IRIs associated with these vocabularies must not be assigned a prefix using the prefix attribute.

  4.2.3 Reserved Prefixes

This specification reserves a set of prefixes that Authors may use in package metadata without having to declare. These prefixes are defined in [Reserved Prefixes].

The prefixes defined in this document are maintained and updated separately of this specification and are subject to change at any time.

Reading Systems must resolve all reserved prefixes used in Package Documents using their predefined URIs unless a local prefix is declared. Reserved prefixes should not be overridden in the prefix attribute, but Reading Systems must use such local overrides when encountered.

As changes to the reserved prefixes and updates to Reading Systems are not always going happen in synchrony, Reading Systems must not fail when encountering unrecognized prefixes (i.e., not reserved and not declared using the prefix attribute).

  4.2.4 The prefix Attribute

The prefix attribute defines additional prefix mappings not reserved by this specification.

The value of the prefix attribute is a white space-separated list of one or more prefix-to-IRI mappings of the form:

(EBNF productions ISO/IEC 14977)
All terminal symbols are in the Unicode Block 'Basic Latin' (U+0000 to U+007F).
prefixes = mapping , { whitespace, { whitespace } , mapping } ;  
mapping = prefix , ":" , space , { space } , ? xsd:anyURI ? ;  
prefix = ? xsd:NCName ? ;  
space = #x20 ;  
whitespace = (#x20 | #x9 | #xD | #xA) ;  

The following example shows prefixes for the Friend of a Friend (foaf) and DBPedia (dbp) vocabularies being declared using the prefix attribute.

<package … 
	prefix="foaf: http://xmlns.com/foaf/spec/
		 dbp: http://dbpedia.org/ontology/">
	…
</package>

To avoid conflicts, the prefix attribute must not be used to declare a prefix that maps to the default vocabulary. If the prefix attribute includes a declaration for a predefined prefix, Reading Systems must use the URI mapping defined in the prefix attribute, regardless of whether of it maps to the same URI as the predefined prefix.

The prefix '_' must not be declared as it is reserved for future compatibility with RDFa [RDFa 1.1] processing.

For future compatibility with alternative serializations of the Package Document, a prefix for the Dublin Core /elements/1.1/ namespace [DCTERMS] must not be declared in the prefix attribute. Authors must use only the [DCMES] elements allowed in the Package Document metadata.

  4.2.5 The property Data Type

  4.2.5.1 Syntax

The property data type is a compact means of expressing an IRI [RFC3987] and consists of an optional prefix separated from a reference by a colon.

(EBNF productions ISO/IEC 14977)
All terminal symbols are in the Unicode Block 'Basic Latin' (U+0000 to U+007F).
property = [ prefix , ":" ] , reference;  
prefix = ? xsd:NCName ? ;  
reference = ? irelative-ref ? ; /* as defined in [RFC3987] */

The property data type is derived from the CURIE data type defined in [RDFa 1.1], and represents a subset of CURIEs.

The following example shows a property value composed of the prefix dcterms and the reference modified.

<meta property="dcterms:modified">2011-01-01T12:00:00Z</meta>

After processing, this property would expand to the following IRI:

http://purl.org/dc/terms/modified

as the dcterms: prefix is a reserved prefix that maps to the IRI "http://purl.org/dc/terms/".

When a prefix is omitted from a property value, the expressed reference represents a term from the default vocabulary for that attribute.

The following example shows the [Manifest Vocab] mathml property on a manifest item element:

<item … properties="mathml"/>

This property expands to:

http://idpf.org/epub/vocab/package/item/#mathml

when the IRI for the vocabulary is concatenated with the reference.

An empty string does not represent a valid property value, even though it is valid to the definition above.

  4.2.5.2 Processing

A Reading System must use the following rules to create an IRI [RFC3987] from a property:

  • If the property consists only of a reference, the IRI is obtained by concatenating the IRI stem associated with the default vocabulary to the reference.

  • If the property consists of a prefix and reference, the IRI is obtained by concatenating the IRI stem associated with the prefix to the reference. If no matching prefix has been defined, the property is invalid and must be ignored.

The resulting IRI must be valid to [RFC3987]. Reading Systems do not have to resolve this IRI, however.

  4.3 Package Rendering Metadata

  4.3.1 Introduction

This section is informative

Not all rendering information can be expressed through the underlying technologies that EPUB is built upon. For example, although HTML with CSS provides powerful layout capabilities, those capabilities are limited to the scope of the document being rendered.

This section defines general-purpose properties that allow Authors to express package-level rendering intentions (i.e., functionality that can only be implemented by the EPUB Reading System). If a Reading System supports the desired rendering, these properties enable the user to be presented the content as the Author optimally designed it.

  4.3.2 General Properties

  4.3.2.1 The rendition:flow Property

  4.3.2.1.1 Usage

When the rendition:flow property [Rendition Vocab] is specified on a meta element, it indicates the Author's global preference for overflow content handling (i.e., for all spine items). Authors may indicate a preference for dynamic pagination or scrolling. For scrolled content, it is also possible to specify whether consecutive EPUB Content Documents are to be rendered as a continuous scrolling view or whether each is to be rendered separately (i.e., with a dynamic page break between each).

If a Reading System supports the specified rendering, it should use that method to handle overflow content, but may provide the option for users to override the requested rendering.

The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section. Reading Systems may support only this default value.

If a Reading Systems supports the rendition:layout property, it must ignore the rendition:flow property when it has been set on a spine item that also specifies the rendition:layout value pre-paginated.

Note that when two reflowable EPUB Content Documents occur sequentially in the spine, the default rendering for their [HTML] body elements is consistent with the page-break-before property [CSS Snapshot] having been set to always. In addition to using the rendition:flow property, Authors may override this behavior through an appropriate style sheet declaration, if the Reading System supports such overrides.

The rendition:flow property must not be declared more than once.

  4.3.2.1.2 Allowed Values

The following values are defined for use with the rendition:flow property:

paginated

The Reading System should dynamically paginate all overflow content.

scrolled-continuous

The Reading System should render all Content Documents such that overflow content is scrollable, and the EPUB Publication represented by the given Rendition should be presented as one continuous scroll from spine item to spine item (except where locally overridden).

note

It is expected that a future version of this specification will provide more information about Reading System behaviors for scrolled-continuous.

scrolled-doc

The Reading System should render all Content Documents such that overflow content is scrollable, and each spine item should be presented as a separate scrollable document.

auto

The Author does not have a preference for overflow handling. The Reading System may render overflow content using its default method or a user preference, whichever is applicable.

  4.3.2.1.3 Spine Overrides

The rendition:flow-auto, rendition:flow-paginated, rendition:flow-scrolled-continuous and rendition:flow-scrolled-doc properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item.

Only one of these overrides is allowed on any given spine item.

For the rendition:flow-scrolled-continuous property, the scroll direction is defined relative to the block flow direction of the root element of the XHTML Content Document referenced by the itemref element. The scroll direction is vertical if the block flow direction is downward (top-to-bottom). It is horizontal if the block flow direction of the root element is rightward (left-to-right) or leftward (right-to-left).

  4.3.2.1.4 Examples

The following example demonstrates an Author's intent to have a paginated Rendition with a scrollable table of contents.

<metadata>
    <meta property="rendition:flow">paginated</meta>
</metadata>

<spine>
    <itemref idref="toc" properties="rendition:flow-scrolled-doc"/>
    <itemref idref="c01"/>
</spine>

  4.3.2.2 The rendition:align-x-center Property

When the rendition:align-x-center property [Rendition Vocab] is set on a spine item, it indicates that the rendered content should be centered horizontally within the Viewport or spread, as applicable. This property does not affect the rendering of the spine item, only the placement of the resulting content box.

For reflowable content, Reading Systems that support this property must center each virtual page.

This version of this specification does not define a default rendering behavior when this property is not supported or specified. Reading Systems may render spine items by their own design.

note

This property was developed primarily to handle "Naka-Tobira (中扉)" (sectional title pages), in the absence of reliable centering control within the content rendering. As support for paged media evolves in CSS, however, this property is expected to be deprecated. Authors are encouraged to use CSS solutions when effective.

  4.3.3 Fixed-Layout Properties

  4.3.3.1 Introduction

This section is informative

EPUB documents, unlike print books or PDF files, are designed to change. The content flows, or reflows, to fit the screen and to fit the needs of the user. As noted in Rendering and CSS [EPUB3 Overview] content presentation adapts to the user, rather than the user having to adapt to a particular presentation of content

But this principle doesn’t work for all types of documents. Sometimes content and design are so intertwined they cannot be separated. Any change in appearance risks changing the meaning, or losing all meaning. Fixed-Layout Documents give Authors greater control over presentation when a reflowable EPUB is not suitable for the content.

This section defines a set of metadata properties to allow declarative expression of intended rendering behaviors of Fixed-Layout Documents in the context of EPUB 3.1.

note

EPUB 3.1 affords multiple mechanisms for representing fixed-layout content. When fixed-layout content is necessary, the Author's choice of mechanism will depend on many factors including desired degree of precision, file size, accessibility, etc. This section does not attempt to dictate the Author's choice of mechanism.

  4.3.3.2 The rendition:layout Property

  4.3.3.2.1 Usage

When the rendition:layout property [Rendition Vocab] is specified on a meta element, it indicates that the paginated or reflowable layout style applies globally for the Rendition (i.e., for all spine items).

The default value reflowable must be assumed by EPUB Reading Systems as the global value if no meta element carrying this property occurs in the metadata section.

When the rendition:layout property is set to pre-paginated, Reading Systems must not include space between the adjacent content slots when rendering Synthetic Spreads.

When the property is set to pre-paginated for a spine item, its content dimensions must be set as defined in Fixed Layouts [Content Docs 3.1].

The rendition:layout property must not be declared more than once.

note

Refer to rendition:viewport property for how to additionally declare the dimensions within the package metadata to facilitate Reading System optimization of the rendering.

  4.3.3.2.2 Allowed Values

The following values are defined for use with the rendition:layout property:

reflowable

The given Rendition is not pre-paginated. Reading Systems may apply dynamic pagination when rendering.

pre-paginated

The given Rendition is pre-paginated. Reading Systems must produce exactly one page per spine itemref when rendering.

note

Reading Systems typically restrict or deny the application of user or user agent style sheets to pre-paginated documents, since, as a result of intrinsic properties of such documents, dynamic style changes are highly likely to have unintended consequences. Authors need to take into account the negative impact on usability and accessibility that these restrictions have when choosing to use pre-paginated instead of reflowable content. Refer to Guideline 1.4 - Provide text configuration [UAAG 2.0] for related information.

  4.3.3.2.3 Spine Overrides

The rendition:layout-pre-paginated and rendition:layout-reflowable properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item.

Only one of these overrides is allowed on any given spine item.

  4.3.3.2.4 Examples

The following example demonstrates fully fixed-layout content, using [Media Queries] to apply different style sheets for three different device categories. Note that the Media Queries only affect the style sheet applied to the document; the size of the content area set in the viewport meta tag is static.

Package Document
<meta property="rendition:layout">pre-paginated</meta>
XHTML
<head>
    <meta name="viewport" content="width=1200, height=900"/>
	
    <link rel="stylesheet" href="eink-style.css" media="(max-monochrome: 3)"/>
    <link rel="stylesheet" href="skinnytablet-style.css" media="((color) and
        (max-height:600px) and (orientation:landscape), (color) and (max-width:600px)
        and (orientation:portrait))"/>
    <link rel="stylesheet" href="fattablet-style.css" media="((color) and
        (min-height:601px) and (orientation:landscape), (color) and (min-width:601px)
        and (orientation:portrait)"/>	
</head>

  4.3.3.3 The rendition:orientation property

  4.3.3.3.1 Usage

When the rendition:orientation property [Rendition Vocab] is specified on a meta element, it indicates that the intended orientation applies globally for the given Rendition (i.e., for all spine items).

The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section.

The rendition:orientation property must not be declared more than once.

  4.3.3.3.2 Allowed Values

The following values are defined for use with the rendition:orientation property:

landscape

The given Rendition is intended for landscape rendering.

portrait

The given Rendition is intended for portrait rendering.

auto

The given Rendition is not orientation constrained.

Reading Systems that support multiple orientations should convey the intended orientation to the user, unless the given value is auto. The means by which the intent is conveyed is implementation-specific.

  4.3.3.3.3 Spine Overrides

The rendition:orientation-landscape, rendition:orientation-portrait and rendition:orientation-auto properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item.

Only one of these overrides is allowed on any given spine item.

  4.3.3.3.4 Examples

The following example demonstrates fully fixed-layout content intended to be rendered without synthetic spreads, and locked to landscape orientation.

<metadata>
    <meta property="rendition:layout">pre-paginated</meta>
    <meta property="rendition:spread">none</meta>
    
    <meta property="rendition:orientation">landscape</meta>
</metadata>

  4.3.3.4 The rendition:spread Property

  4.3.3.4.1 Usage

When the rendition:spread property is specified on a meta element, it indicates that the intended Synthetic Spread behavior applies globally for the given Rendition (i.e., for all spine items).

The default value auto must be assumed by Reading Systems as the global value if no meta element carrying this property occurs in the metadata section.

The rendition:spread property must not be declared more than once.

  4.3.3.4.2 Allowed Values

The following values are defined for use with the rendition:spread property:

none

Reading Systems must not incorporate spine items in a Synthetic Spread.

landscape

Reading Systems should render a Synthetic Spread for spine items only when the device is in landscape orientation.

both

Reading Systems should render a Synthetic Spread regardless of device orientation.

auto

No explicit Synthetic Spread behavior is defined. Reading Systems may use Synthetic Spreads in specific or all device orientations as part of a Content Display Area utilization optimization process.

note

When Synthetic Spreads are used in the context of HTML and SVG Content Documents, the dimensions given via the viewport meta element [Content Docs 3.1] and viewBox attribute [Content Docs 3.1] represents the size of one page in the spread, respectively.

note

Refer to spine for information about declaration of global flow directionality using the page-progression-direction attribute and that of local page-progression-direction within content documents.

  4.3.3.4.3 Spine Overrides

The rendition:spread-landscape, rendition:spread-both, rendition:spread-auto and rendition:spread-none properties [Rendition Vocab] may be specified locally on spine itemref elements, and will, in such cases, override the global value for the given spine item.

Only one of these overrides is allowed on any given spine item.

  4.3.3.4.4 Examples

The following example demonstrates fully fixed-layout content intended to be rendered using synthetic spreads in landscape orientation, and with no spreads in portrait orientation.

<metadata>
    <meta property="rendition:layout">pre-paginated</meta>
    <meta property="rendition:spread">landscape</meta>
</metadata>

The following example demonstrates reflowable content with a single fixed-layout title page, where the fixed-layout page is intended for right-hand spread slot if the device renders Synthetic Spreads.

<metadata>
    <meta property="rendition:layout">reflowable</meta>
    <meta property="rendition:spread">auto</meta>
</metadata>

<spine>
    <itemref idref="titlepage" properties="page-spread-right rendition:layout-pre-paginated"/>
</spine>

  4.3.3.5 The rendition:page-spread-* Properties

  4.3.3.5.1 Usage

When a Reading System renders a Synthetic Spread, the default behavior is to populate the spread by rendering the next EPUB Content Document in the next available unpopulated viewport, where the next available viewport is determined by the given page progression direction or by local declarations within Content Documents. By providing one of the rendition:page-spread-left, rendition:page-spread-right or rendition:page-spread-center properties [Rendition Vocab] on a spine itemref element, an Author may override this automatic population behavior by forcing that document to be placed in a particular viewport.

The rendition:page-spread-left property indicates that the given spine item should be rendered in the left-hand slot in the spread, and rendition:page-spread-right that it should be rendered in the right-hand slot. The rendition:page-spread-center property indicates that the synthetic spread mode should be overridden and a single viewport rendered and positioned at the center of the screen.

The rendition:page-spread-left, rendition:page-spread-right and rendition:page-spread-center properties apply to both pre-paginated and reflowable content, and they only apply when the Reading System is creating Synthetic Spreads.

The rendition:page-spread-* properties take precedence over whatever value of the page-break-before property [CSS Snapshot] has been set for an XHTML Content Document.

note

The presence of rendition:page-spread-center does not change the viewport dimensions. In particular, it does not indicate that a viewport with the size of the whole spread has to be created. This is important so that the scale factor stays consistent between regular and center-spread pages.

When a reflowable spine item follows a pre-paginated one, the reflowable one should start on the next page (as defined by the page-progression-direction) when it lacks a rendition:page-spread-* property value. If the reflowable spine item has a rendition:page-spread-* specification, it must be honored (e.g., by inserting a blank page).

Similarly, when a pre-paginated spine item follows a reflowable one, the pre-paginated one should start on the next page (as defined by the page-progression-direction) when it lacks a rendition:page-spread-* property value. If the pre-paginated spine item has a rendition:page-spread-* specification, it must be honored (e.g., by inserting a blank page).

Although Authors often indicate to use a spread in certain device orientations, the content itself does not represent true spreads (i.e., two consecutive pages that have to be rendered side-by-side for readability, such as a two-page map). To indicate that two consecutive pages represent a true spread, Authors should use the rendition:page-spread-left and rendition:page-spread-right properties on the spine items for the two adjacent EPUB Content Documents, and omit the properties on spine items where one-up or two-up presentation is equally acceptable. When a Reading System encounters two spine items that represent a true spread, it should create the spread with no space between the adjacent pages.

Only one page-spread-* property can be declared on any given spine item.

note

The rendition:page-spread-left and rendition:page-spread-right properties are aliases for the page-spread-left and spread-right properties [Spine Vocab]. They allow the use of a single vocabulary for all fixed-layout properties. Authors can use either property set, but older Reading Systems might only recognize the unprefixed versions. The [Spine Vocab] is no longer being extended for package rendering metadata, so an unprefixed page-spread-center is not available.

  4.3.3.5.2 Examples

The following example demonstrates reflowable content with a two-page fixed-layout center plate that is intended to be rendered using synthetic spreads in any device orientation. Note that the author has left spread behavior for the other (reflowable) parts of the Rendition undefined, since the global value of rendition:spread is initialized to auto by default.

<spine page-progression-direction="ltr">
    …
    <itemref idref="center-plate-left"
             properties="rendition:spread-both rendition:page-spread-left"/>
    <itemref idref="center-plate-right"
             properties="rendition:spread-both rendition:page-spread-right"/>
    …
</spine>

The following example demonstrates fixed-layout content, where synthetic spreads, when used, have to be disabled for a center plate. Note that the rendition:spread declaration none expression is not needed on the center plate item, as the rendition:page-spread-center property already specifies semantics that dictates that synthetic spreads be disabled.

<metadata>
    <meta property="rendition:layout">pre-paginated</meta>
    <meta property="rendition:spread">auto</meta>
</metadata>
<spine>
    <itemref idref="center-plate" properties="rendition:page-spread-center"/>
</spine>

  5 EPUB Navigation Document

  5.1 Introduction

This section is informative

The EPUB Navigation Document is a mandatory component of an EPUB Package. It provides the Author with a mechanism to include a human- and machine-readable global navigation layer, thereby ensuring increased usability and accessibility for the user.

The EPUB Navigation Document is an adaptation of an XHTML Content Document and is, by definition, a valid XHTML Content Document instance. All Content and Reading System conformance requirements that apply to XHTML Content Documents also apply to the EPUB Navigation Document.

The navigation features of this adaptation are expressed through specializations of the [HTML] nav element. Each nav element in an EPUB Navigation Document represents a data island — an embedded source of specialized information within the general markup — from which Reading Systems can retrieve navigational information. Unlike typical XML data islands, however, the information within the nav element remains human readable as an [HTML] document.

To facilitate machine readability, the content model of nav elements in EPUB Navigation Documents is restricted relative to what is allowed in general XHTML Content Documents.

Note that the EPUB Navigation Document is not exclusively for machine processing. Formulating the document as an XHTML Content Document enables its reuse in the linear reading order, avoiding the creation of additional tables of contents (i.e., it can also be added to the spine). The visual display of components defined in the EPUB Navigation Document can be controlled using the hidden attribute, which has no effect outside of spine rendering (i.e., hiding a component from rendering in the spine does not hide it from Reading System presentation in a custom control).

When designing an EPUB Navigation Document for such dual use, however, be aware that machine extraction of the content can result in loss of formatting control. Scripting, styling and other HTML formatting can be stripped by a Reading System as it generates a custom control, such as the table of contents, from the markup. If such formatting and functionality is used, then the EPUB Navigation Document also needs to be included in the linear reading order. Another design consideration is to use progressive enhancement [Content Docs 3.1] techniques for scripting and styling of the navigation document, such that that the content will retain its integrity when rendered in a non-browser context.

  5.2 Content Conformance

A conformant EPUB Navigation Document must meet all of the following criteria:

Document Properties

  It must conform to the content conformance constraints for XHTML Content Documents defined in XHTML Content Documents — Content Conformance [Content Docs 3.1].

  It must conform to the content conformance constraints specific to EPUB Navigation Documents defined in EPUB Navigation Document Definition.

  As a conforming XHTML Content Document, it may be included in the spine.

  5.3 Reading System Conformance

A conformant EPUB Reading System must meet all of the following criteria for processing EPUB Navigation Documents:

  •   When requested by a user, it must provide access to the links and link labels in the nav elements of the EPUB Navigation Document in a fashion that allows the user to activate the links.

  •   When a link is activated, it must relocate the application's current reading position to the destination identified by that link.

  •   It must honor the above requirements irrespective of whether the EPUB Navigation Document is part of the spine.

  5.4 EPUB Navigation Document Definition

  5.4.1 The nav Element: Restrictions

When a nav element carries the epub:type attribute [Content Docs 3.1] in an EPUB Navigation Document, this specification restricts the content model of the element and its descendants as follows:

Content Model
nav

In this order:

ol

In this order:

  • li [1 or more]

li

In this order:

  • (span or a) [exactly 1]

  • ol [conditionally required]

span and a

In any order:

Note that there are no restrictions on the attributes allowed on these elements.

Refer the definition below for additional requirements.

The content model of the nav element is interpreted as follows:

  •   The ol child of the nav element represents the primary level of content navigation.

  •   Each list item of the ordered list represents a heading, structure or other item of interest. A child a element describes the target that the link points to, while a span element serves as a heading for breaking down lists into distinct groups (for example, a large list of illustrations can be segmented into several lists, one for each chapter).

  •   The child a or span element must provide a non zero-length text label after concatenation of all child content and application of white space normalization rules. Although non-textual descendant elements may be rendered directly to users, text content included in title or alt attributes must be used when determining compliance with this requirement.

  •   If an a or span element contains instances of HTML embedded content that do not provide intrinsic text alternatives, the element must also include a title attribute with an alternate text rendering of the link label.

  •   The IRI reference provided in the href attribute of the a element must adhere to the following requirements:

  •   An a element may be followed by an ol ordered list representing a subsidiary content level below that heading (e.g., all the subsection headings of a section).

  •   A span element must be followed by an ol ordered list; it cannot be used in "leaf" li elements.

  •   Regardless of whether an a or span element precedes it, every sublist must adhere to the content requirements defined in this section for constructing the primary navigation list.

IDPF specifications may introduce further restrictions on the content model defined above for nav elements in the EPUB Navigation Document.

The following example shows the basic patterns of a navigation element.

<nav epub:type="…">
  <h1>…</h1>
  <ol>
    <li>
      <a href="chap1.xhtml">A basic leaf node</a>
    </li>
    <li>
      <a href="chap2.xhtml">A linked heading</a>
      <ol>
        …
      </ol>
    <li>
      <span>An unlinked heading</span>
      <ol>
        …
      </ol>
    </li>
  </ol>
</nav>

In the context of this specification, the default display style of list items within nav elements must be equivalent to the list-style: none property [CSS Snapshot]. Reading Systems must not show list item numbering on these lists when presenting the Navigation Document outside of the spine, regardless of their support for CSS. Authors may specify alternative list styling using CSS for rendering of the document in the spine.

  5.4.2 The nav Element: Types

  5.4.2.1 Introduction

This section is informative

The nav elements defined in an EPUB Navigation Document are distinguished semantically by the value of their epub:type attribute [Content Docs 3.1].

This specification defines three types of navigation aid:

toc

Identifies the nav element that contains the table of contents. The toc nav is the only navigation aid that has to be included in the EPUB Navigation Document.

page-list

Identifies the nav element that contains a list of pages for a print or other statically-paginated source for the EPUB Publication.

landmarks

Identifies the nav element that contains a list of points of interest.

Additional navigation types can be included in the EPUB Navigation Document. See Other nav Elements for more information.

  5.4.2.2 The toc nav Element

The toc nav element defines the primary navigational hierarchy of the given Rendition. It conceptually corresponds to a table of contents in a printed work (i.e., it provides navigation to the major structural sections of the publication).

The references in the toc nav element must be ordered such that they reflect both:

The toc nav element must occur exactly once in an EPUB Navigation Document.

  5.4.2.3 The page-list nav Element

The page-list nav element provides navigation to positions in the content that correspond to the locations of page boundaries present in a print source being represented by the EPUB Publication.

The page-list nav element is optional in EPUB Navigation Documents and must not occur more than once.

The page references within the page-list nav must be ordered so that they match both the order of the targeted EPUB Content Documents in the spine and the order of each page within its respective EPUB Content Document.

The page-list nav element should contain only a single ol descendant (i.e., no nested sublists).

The destinations of the page-list references may be identified in their respective EPUB Content Documents using the pagebreak term [Structure Vocab].

  5.4.2.4 The landmarks nav Element

The landmarks nav element identifies fundamental structural components in the given Rendition in order to enable Reading Systems to provide the user efficient access to them.

The epub:type attribute [Content Docs 3.1] is required on a element descendants of the landmarks nav element. The structural semantics of each link target within the landmarks nav element is determined by the value of this attribute.

The following example shows a landmarks nav element with structural semantics drawn from the EPUB Structural Semantics Vocabulary.

<nav epub:type="landmarks">
    <h2>Guide</h2>
    <ol>
        <li><a epub:type="toc" href="#toc">Table of Contents</a></li>
        <li><a epub:type="loi" href="content.html#loi">List of Illustrations</a></li>
        <li><a epub:type="bodymatter" href="content.html#bodymatter">Start of Content</a></li>
    </ol>
</nav>

The landmarks nav must not include multiple entries with the same epub:type value that reference the same resource, or fragment thereof.

The landmarks nav element is optional in EPUB Navigation Documents and must not occur more than once.

  5.4.2.5 Other nav Elements

EPUB Navigation Documents may include one or more nav elements in addition to the toc, page-list and landmarks nav elements defined in the preceding sections. These additional nav elements should have an epub:type attribute to provide a machine-readable semantic, and must have a human-readable heading as their first child.

This specification imposes no restrictions on the semantics of any additional nav elements: they may be used to represent navigational semantics for any information domain, and they may contain link targets with homogeneous or heterogeneous semantics.

The following example shows a custom list of tables navigation element.

<nav aria-labelledby="lot">
    <h2 id="lot">List of tables</h2>
    <ol>
        <li><span>Tables in Chapter 1</span>
            <ol>
                <li><a href="chap1.xhtml#table-1.1">Table 1.1</a>
                </li>
                <li><a href="chap1.xhtml#table-1.2">Table 1.2</a></li>
            </ol>
        </li>
    	…
    </ol>
</nav>

  5.4.3 The hidden attribute

In some cases, Authors might wish to hide parts of the navigation data within the content flow (i.e., the Reading System's principal rendering of the spine contents). A typical example is the list of page breaks, which usually is not rendered as part of the content flow but is instead exposed to the user separately in a dedicated navigation user interface.

While the display property [CSS Snapshot] can be used to control the visual rendering of EPUB Navigation Documents in Reading Systems with Viewports, not all Reading Systems provide such an interface. To control rendering across all Reading Systems, authors must use the [HTML] hidden attribute to indicate which (if any) portions of the navigation data are excluded from rendering in the content flow. The hidden attribute has no effect on how navigation data is rendered outside of the content flow (such as in dedicated navigation user interfaces provided by Reading Systems).

The following example shows a partial page-list nav element. The presence of the hidden attribute on the root indicates that the entire list is excluded from rendering in the content flow.

<nav epub:type="page-list" hidden="">
    <h2>Pagebreaks of the print version, third edition</h2>
    <ol>
        <li><a href="frontmatter.xhtml#pi">I</a></li>
        <li><a href="frontmatter.xhtml#pii">II</a></li> … <li><a href="chap1.xhtml#p1">1</a></li>
        <li><a href="chap1.xhtml#p2">2</a></li> … </ol>
</nav>

The following example shows a partial toc nav element where the hidden attribute is used to limit content flow rendering to the two topmost hierarchical levels.

<nav epub:type="toc" id="toc">
  <h1>Table of contents</h1>
  <ol>
    <li>
      <a href="chap1.xhtml">Chapter 1</a>
      <ol>
        <li>
          <a href="chap1.xhtml#sec-1.1">Chapter 1.1</a>
          <ol hidden="">
            <li>
              <a href="chap1.xhtml#sec-1.1.1">Section 1.1.1</a>
            </li>
            <li>
              <a href="chap1.xhtml#sec-1.1.2">Section 1.1.2</a>
            </li>
          </ol>
         </li>
         <li>
           <a href="chap1.xhtml#sec-1.2">Chapter 1.2</a>
         </li>
       </ol>
     </li>
    <li>
      <a href="chap2.xhtml">Chapter 2</a>
    </li>
  </ol>
</nav>

  Appendix A. Obsolete Features

This appendix lists deprecated and superseded [EPUB 3.1] features of this specification.

  A.1 Deprecated Features

  A.1.1 The refines Attribute

Use of the meta refines attribute is deprecated. It is replaced by the duration, opf:alt-rep, opf:authority, opf:file-as, opf:role, opf:scheme and opf:term attributes.

For more information about this attribute, refer to its definition in [Publications 3.0.1].

  A.1.2 The rendition:spread portrait Value

Use of the portrait value with the rendition:spread property is deprecated.

The rendition:spread-portrait spine override is similarly deprecated.

For more information about this value, refer to its definition in [Publications 3.0.1].

  A.1.3 The rendition:viewport Property

Use of the rendition:viewport property is deprecated.

For more information about this property, refer to its definition in [Publications 3.0.1].

  A.2 Superseded Features

  A.2.1 NCX

The [OPF2] NCX file is superseded and marked for removal.

The NCX provides a measure of backwards compatibility for EPUB 2 Reading Systems, but has no function in EPUB 3. It is replaced by the EPUB Navigation Document. EPUB 3 Reading Systems must ignore the NCX.

  A.2.2 The toc Attribute

The spine toc attribute is superseded and marked for removal.

This attribute allows the [OPF2] NCX to be identified.

  Appendix B. Package Document Schema

The schema for Package Documents is available at http://www.idpf.org/epub/31/schema/package-31.nvdl.

Validation using this schema requires a processor that supports [NVDL], [RelaxNG], [ISO Schematron] and [XSD-DATATYPES].

note

The NVDL schema layer can be substituted by a multi-pass validation using the embedded RELAX NG and ISO Schematron schemas alone.

  Appendix C. The application/oebps-package+xml Media Type

This appendix registers the media type application/oebps-package+xml for the EPUB Package Document. This registration supersedes [RFC4839].

The Package Document is an XML file that describes a Rendition of an EPUB Publication. It identifies the resources in the Rendition and provides metadata information. The Package Document and its related standards are maintained and defined by the International Digital Publishing Forum (IDPF).

MIME media type name:

application

MIME subtype name:

oebps-package+xml

Required parameters:

None.

Optional parameters:

None.

Encoding considerations:

Package Documents are UTF-8 or UTF-16 encoded XML.

Security considerations:

Package Documents contain well-formed XML conforming to the XML 1.0 specification.

Clearly, it is possible to author malicious files which, for example, contain malformed data. Most XML parsers protect themselves from such attacks by rigorously enforcing conformance.

All processors that read Package Documents should rigorously check the size and validity of data retrieved.

There is no current provision in the EPUB Publications 3.0 standard for encryption, signing, or authentication within the Package Document format.

Interoperability considerations:

None.

Published specification:

This media type registration is for the EPUB Package Document, as described by the EPUB Publications 3.0 specification located at http://www.idpf.org/epub/30/spec/epub30-publications.html.

The EPUB Publications 3.0 specification supersedes the Open Packaging Format 2.0.1 specification, which is located at http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm and which also uses the application/oepbs-package+xml media type.

Applications which use this media type:

This media type is in wide use for the distribution of ebooks in the EPUB format. The following list of applications is not exhaustive.

  • Adobe Digital Editions

  • Aldiko

  • Azardi

  • Apple iBooks

  • Barnes & Noble Nook

  • Calibre

  • Google Books

  • Ibis Reader

  • MobiPocket reader

  • Sony Reader

  • Stanza

Additional information:
Magic number(s):

none

File extension(s):

.opf

Macintosh File Type Code(s):

TEXT

Fragment Identifiers:

The IDPF maintains a registry of linking schemes at http://www.idpf.org/epub/linking/. Some of these schemes define custom fragment identifiers that resolve to application/oebps-package+xml documents.

Person & email address to contact for further information:

William McCoy, bmccoy@idpf.org

Intended usage:

COMMON

Author/Change controller:

International Digital Publishing Forum (http://www.idpf.org)

  Acknowledgements and Contributors

This section is informative

EPUB has been developed by the International Digital Publishing Forum in a cooperative effort, bringing together publishers, vendors, software developers, and experts in the relevant standards.

The EPUB 3.1 specifications were prepared by the International Digital Publishing Forum’s EPUB Maintenance Working Group, operating under a charter approved by the membership in July 2015, under the leadership of:

Active members of the working group included:

IDPF Members

Invited Experts/Observers

For more detailed acknowledgements and information about contributors to each version of EPUB, refer to Acknowledgements and Contributors [EPUB3 Overview].

  References

Normative References

[Authority Registry] EPUB Subject Authorities Registry.

[BCP 47] Tags for Identifying Languages; Matching of Language Tags. A. Phillips, et al. September 2009.

[CSS Snapshot] CSS Snapshot .

[Content Docs 3.1] EPUB Content Documents 3.1 .

[Core Media Types] EPUB 3 Core Media Types.

[DCTERMS] DCMI Metadata Terms .

[DateTime] Date and Time Formats . Misha Wolf, et al. 15 September 1997.

[EPUB 3.1] EPUB 3.1 .

[EPUB Accessibility] EPUB Accessibility .

[HTML] HTML .

[ID Registry] EPUB Identifiers Registry.

[MARC Relators] MARC Code List for Relators.

[Media Overlays 3.1] EPUB Media Overlays 3.1 .

[Media Queries] Media Queries .

[ONIX] ONIX for Books .

[Publications 3.0.1] EPUB Publications 3.0.1 .

[RDFa 1.1] RDFa Core 1.1 - Second Edition . Syntax and processing rules for embedding RDF through attributes. Ben Adida, et al. 22 August 2013.

[RFC2046] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types (RFC 2046) . N. Freed, N. Borenstein. November 1996.

[RFC3987] Internationalized Resource Identifiers (IRIs) (RFC 3987) . M Duerst, et al. January 2005.

[Rendition Vocab] EPUB Package Rendering Vocabulary .

[SMIL] SMIL Version 3.0 . D. Bulterman, et al. 01 December 2008.

[UAAG 2.0] User Agent Accessibility Guidelines 2.0 . Ian Jacobs, et al. 17 December 2002.

[Unicode] The Unicode Consortium. The Unicode Standard..

[XML] Extensible Markup Language (XML) 1.0 (Fifth Edition) . T. Bray, et al. 26 November 2008.

[XMLNS] Namespaces in XML (Third Edition) . T. Bray, et al. 8 December 2009.

[XSD-DATATYPES] XML Schema Part 2: Datatypes Second Edition . Paul V. Biron et al. 28 October 2004.

Informative References

[EPUB3 Overview] EPUB 3.1 Overview .

[JSON-LD] JSON-LD 1.0: A JSON-based Serialization for Linked Data. Manu Sporny, et al. 16 January 2014..