EPUB 3.2

Final Community Group Specification

Editors:
Matt Garrish (DAISY Consortium)
Dave Cramer (Hachette Livre)
Former editors:
Markus Gylling (International Digital Publishing Forum (IDPF))
Tzviya Siegman (John Wiley & Sons)
Participate:
GitHub w3c/publ-epub-revision
File a bug
Commit history
Pull requests

Abstract

EPUB® 3 defines a distribution and interchange format for digital publications and documents. The EPUB format provides a means of representing, packaging and encoding structured and semantically enhanced Web content — including HTML, CSS, SVG and other resources — for distribution in a single-file container. This specification represents the second major revision of the standard.

EPUB 3 has been widely adopted as the format for digital books (ebooks), and this revision continues to increase the format's capabilities in order to better support a wider range of publication requirements, including complex layouts, rich media and interactivity, and global typography features. The expectation is that the EPUB 3 format will be utilized for a broad range of content, including books, magazines and educational, professional and scientific publications.

EPUB 3 is modular in nature: it consists of a family of specifications that define the core features and functionality of the standard. This specification represents the primary entry point to standard, but the specifications listed in Specifications are all a part of EPUB 3. An index to key concepts and definitions defined across these specifications is provided at the end of this specification.

The informative [EPUB3Overview] provides a general introduction to EPUB 3. A list of technical changes from the previous revision is also available in the informative [EPUB32Changes].

Status of This Document

This specification was published by the EPUB 3 Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups.

If you wish to make comments regarding this document, please send them to public-epub3@w3.org (subscribe, archives).

1. Introduction

1.1 Specifications

The EPUB 3 standard is modular in nature, with core features and functionality defined across a family of sub-specifications.

This specification represents the top-most specification in the family. It includes the conformance requirements for both EPUB Publications (the product of the standard) and EPUB Reading Systems (the applications that consume EPUB Publications and present their content to users).

The other specifications that comprise EPUB 3 are as follows:

These specifications represent the formal list recognized as belonging to EPUB 3, and that contain functionality referenced as part of the standard. New functionality is also added periodically through the development of extension specifications. Features and functionality defined outside of core revisions to the standard, while not formally recognized in this specification, are nonetheless available for use by Authors and Reading System developers.

1.2 Organization

This section is non-normative.

This section reviews the organization of the EPUB specifications through the central product they define: the EPUB Publication.

An EPUB Publication consists of one or more Renditions of its content, each of which is represented by what is called an EPUB Package. An EPUB Package consists of all the resources needed to render the content. The key file among these is the Package Document, which includes all the metadata used by Reading Systems to present the EPUB Publication to the user (e.g., the title and author for display in a bookshelf, as well rendering metadata such as whether content has a fixed layout or can be reflowed). It also provides a complete manifest of resources, and includes a spine that lists the sequence to render documents in as a user progresses through the content.

An EPUB Package also include another key file called the EPUB Navigation Document. This document provides critical navigation capabilities, such as the table of contents, that allow users to quickly and easily navigate the content.

The requirements for EPUB Packages are defined in [Packages32].

The EPUB Publication's resources are bundled for distribution in a ZIP-based archive with the file extension .epub. As conformant ZIP archives, EPUB Publications can be unzipped by many software programs, simplifying both their production and consumption.

The container format not only provides a means of determining that the zipped content represents an EPUB Publication (the mimetype file), but also provides a universally-named directory of informative resources (/META-INF). Key among these resources is the container.xml file, which directs Reading Systems to the available Package Documents.

The container format is defined in [OCF32].

Figure 1

The following example visually represents the structure of the EPUB format.

The structure and containment of an EPUB Publication is only one half of the format, the other half being the content that gets presented to users. This content is built on the Open Web Platform and comes in two flavours: XHTML and SVG. Called EPUB Content Documents, these documents typically reference many additional resources required for their proper rendering, such as images, audio and video clips, scripts and style sheets.

Detailed information about the rules and requirements for the production of EPUB Content Documents is provided in [ContentDocs32], and accessibility requirements are defined in [EPUBAccessibility].

Media Overlay Documents complement EPUB Content Documents. They provide declarative markup for synchronizing the text in EPUB Content Documents with prerecorded audio. The result is the ability to create a read-aloud experience where text is highlighted as it is narrated. Media Overlay Documents are defined in [MediaOverlays32].

While conceptually simple, an EPUB Publication is more than just a collection of HTML pages and dependent assets in a ZIP package as presented here. Additional information about the primary features and functionality that EPUB Publications provide to enhance the reading experience is available from the referenced specifications, and a more general introduction to the features of EPUB 3 is provided in the informative [EPUB3Overview].

1.3 Terminology

The following terms are specific to EPUB 3. They are capitalized wherever used.

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

Author

The person(s) or organization responsible for the creation of an EPUB Publication. The Author is not necessarily the creator of the content.

Content Display Area

The area within the Viewport dedicated to the display of EPUB Content Documents. The Content Display Area excludes any borders, margins, headers, footers or other decoration a EPUB Reading System might inject into the Viewport.

In the case of synthetic spreads, the Viewport contains two Content Display Areas.

Core Media Type Resource

A Publication Resource that does not require the provision of a fallback (cf. Foreign Resource).

EPUB Container

The ZIP-based packaging and distribution format for EPUB Publications defined in OCF ZIP Container [OCF32].

EPUB Content Document

A Publication Resource with an XHTML or SVG media type that contains all or part of the content of an EPUB Publication (i.e., the textual, visual and/or audio content). These resources have to conform to their respective XHTML or SVG definitions to be used in the spine or be referenced from another EPUB Content Document.

An EPUB Content Document is a Core Media Type Resource, so can be included in the EPUB Publication without the provision of fallbacks.

EPUB Navigation Document

A specialization of the XHTML Content Document that contains human- and machine-readable global navigation information. The EPUB Navigation Document conforms to the constraints expressed in EPUB Navigation Document [Packages32].

EPUB Package

A logical document entity consisting of a set of interrelated resources representing one Rendition of an EPUB Publication, as defined by a Package Document.

EPUB Publication

A collection of one or more Renditions that conform to this specification, packaged in an EPUB Container.

An EPUB Publication typically represents a single intellectual or artistic work, but this specification does not circumscribe the nature of the content.

EPUB Reading System (or Reading System)

A system that processes EPUB Publications for presentation to a user in a manner conformant with this specification.

Fixed-Layout Document

An EPUB Content Document directly referenced from the spine that has been designated pre-paginated in the Package Document, as defined in The rendition:layout Property [Packages32].

The dimensions to use for rendering Fixed-Layout Documents are defined in Fixed Layouts [ContentDocs32].

Foreign Resource

A Publication Resource that is not a Core Media Type Resource. Foreign Resources are subject to the fallback requirements defined in Foreign Resources.

Local Resource

A resource that is located inside the EPUB Container.

Refer to Publication Resource Locations for media type specific rules for resource locations.

Manifest

A list of all Publication Resources that constitute the given Rendition of a EPUB Publication.

Refer to manifest [Packages32] for more information.

Media Overlay Document

An XML document that associates the XHTML Content Document with pre-recorded audio narration in order to provide a synchronized playback experience, as defined in [MediaOverlays32].

Package Document

A Publication Resource that describes one Rendition of an EPUB Publication, as defined in Package Document [Packages32]. The Package Document carries meta information about the Rendition, provides a manifest of resources and defines the default reading order.

Publication Resource

A resource that contains content or instructions that contribute to the logic and rendering of at least one Rendition of an EPUB Publication. In the absence of this resource, the EPUB Publication might not render as intended by the Author. Examples of Publication Resources include a Rendition's Package Document, EPUB Content Document, CSS Style Sheets, audio, video, images, embedded fonts and scripts.

With the exception of the Package Document itself, the Publication Resources necessary to render a Rendition are listed in that Rendition's manifest [Packages32] and bundled in the EPUB Container file (unless specified otherwise in Publication Resource Locations).

Examples of resources that are not Publication Resources include those identified by the Package Document link [Packages32] element and those identified in outbound hyperlinks that resolve to Remote Resources (e.g., referenced from the href attribute of an [HTML] a element).

Release Identifier

The Release Identifier allows any instance of an EPUB Publication to be compared against another to determine if they are identical, different versions, or unrelated.

Refer to Release Identifier [Packages32] for more information.

Remote Resource

A resource that is located outside of the EPUB Container, typically, but not necessarily, online.

Refer to Publication Resource Locations for media type specific rules for resource locations.

Rendition

One rendering of the content of an EPUB Publication, as expressed by an EPUB Package.

Scripted Content Document

An EPUB Content Document that includes scripting or an XHTML Content Document that contains [HTML] forms.

Refer to Scripting [ContentDocs32] for more information.

Spine

An ordered list of Publication Resources, typically EPUB Content Documents [Packages32], representing the default reading order of the given Rendition of an EPUB Publication.

Refer to spine [Packages32] for more information.

SVG Content Document

An EPUB Content Document that conforms to the constraints expressed in SVG Content Documents [ContentDocs32].

Synthetic Spread

The rendering of two adjacent pages simultaneously on a device screen.

Text-to-Speech (TTS)

The rendering of the textual content of an EPUB Publication as artificial human speech using a synthesized voice.

Top-level Content Document

An EPUB Content Document referenced from the spine, whether directly or via a fallback chain [Packages32].

Unique Identifier

The Unique Identifier is the primary identifier for an EPUB Publication, as identified by the unique-identifier attribute [Packages32]. The Unique Identifier can be shared by one or more Renditions of the same EPUB Publication.

Significant revision, abridgement, etc. of the content requires a new Unique Identifier.

Viewport

The region of an EPUB Reading System in which an EPUB Publication is rendered visually to a user.

XHTML Content Document

An EPUB Content Document that conforms to the profile of [HTML] defined in XHTML Content Documents [ContentDocs32].

XHTML Content Documents use the XHTML syntax defined in [HTML].

1.4 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, RECOMMENDED, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119].

2. Conformance Criteria

2.1 EPUB Publications

An EPUB Publication MUST meet all of the following criteria:

Packages

  It MUST include one or more EPUB Packages, each of which MUST conform to the requirements defined in [Packages32].

Accessibility

  It SHOULD conform to the accessibility requirements defined in [EPUBAccessibility].

Publication Resources

  All Publication Resources MUST adhere to the constraints for Core Media Type and Foreign Resources and be located as per Publication Resource Locations.

Container

  It MUST be packaged in a EPUB Container as defined in [OCF32].

2.2 EPUB Reading Systems

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

EPUB 3 Processing

  It MUST process the EPUB Container as defined in [OCF32].

  It MUST process EPUB Packages as defined in [Packages32].

  It MAY support an arbitrary set of Foreign Resource types, and MUST process fallbacks for unsupported Foreign Resources as defined in Foreign Resources if not.

  It SHOULD support remote resources, as defined in Resource Locations.

  It MUST process XHTML Content Document as defined in XHTML Content Documents — Reading System Conformance [ContentDocs32].

  It MUST process SVG Content Documents as defined in SVG Content Documents — Reading System Conformance [ContentDocs32].

  If it has a Viewport, it MUST support visual rendering of XHTML Content Documents as defined in CSS Style Sheets — Reading System Conformance [ContentDocs32].

  If it has a Viewport, it MUST support the image Core Media Type Resources.

  If it has the capability to render pre-recorded audio, it MUST support the audio Core Media Type Resources and SHOULD support Media Overlays [MediaOverlays32].

  If it supports Text-to-Speech (TTS) rendering, it SHOULD support Pronunciation Lexicons [ContentDocs32], [CSS3Speech] and SSML attributes [ContentDocs32] in XHTML Content Documents.

Note

  It is recommended that Reading Systems support at least one of the H.264 [H264] and VP8 [RFC6386] video codecs, but this is not a conformance requirement – a Reading System might support other video codecs, or none at all. Authors and Reading System developers need to take into consideration factors such as breadth of adoption, video playback quality, and technology usage royalty requirements when making a choice to include or implement video in either format, or both.

Accessibility

  It SHOULD meet the accessibility requirements for Reading Systems in [EPUBAccessibility].

Backward Compatibility

  It MUST attempt to process any given rendition of an EPUB Publication whose Package Document version attribute is less than "3.0".

  EPUB Publications with older version numbers will not always render exactly as intended unless processed according to their respective specifications. Reading Systems SHOULD support such EPUB Publications as defined by those specifications.

Forward Compatibility

  It SHOULD attempt to process any given Rendition of an EPUB Publication whose Package Document version attribute is greater than "3.0".

XML Processing

  It MUST be a conformant non-validating processor [XML].

  It MUST be a conformant processor as defined in [XML-NAMES].

  It MUST be a conformant application as defined by [XMLBase]. Note: [HTML] and [SVG] are removing support for [XMLBase]. Authors are advised to avoid using this feature.

Note

A conforming Reading System is not necessarily a single dedicated program or device, but might exist as a distributed system.

3. Publication Resources

3.1 Core Media Types

3.1.1 Introduction

Each Rendition of an EPUB Publication typically consists of many Publication Resources. These resources are divided into two categories: those that can be included without fallbacks (Core Media Type Resources) and those that cannot (Foreign Resources).

Authors are free to use both types of resources to construct their EPUB Publications, but need to be aware that some Reading Systems might not render the Foreign Resources they use.

As EPUB Publications are designed to be fully consumable on any compliant Reading System, a system of fallbacks is necessary to ensure that the use of Foreign Resources does not impact on the ability of the user to consume the content. This section lists the set of Core Media Type Resources and identifies fallback mechanisms that can be used to satisfy the consumability requirement.

3.1.2 Supported Media Types

Publication Resources that conform to the following MIME media type [RFC2046] specifications can be included in an EPUB Publication without fallbacks.

The columns in the following table represent the following information:

  • Media Type—The MIME media type [RFC2046] used to represent the given Publication Resource in the manifest [Packages32].

    If more than one media type is listed, the first one is the preferred media type. The preferred media type is strongly encouraged for all new EPUB Publications.

  • Content Type Definition—The specification to which the given Core Media Type Resource has to conform.
  • Applies to—The Publication Resource type(s) that the Media Type and Content Type Definition applies to.
Media Type Content Type Definition Applies to
Images
image/gif [GIF] GIF Images
image/jpeg [JPEG] JPEG Images
image/png [PNG] PNG Images
image/svg+xml SVG Content Documents [ContentDocs32] SVG documents
Audio
audio/mpeg [MP3] MP3 audio
audio/mp4 [MPEG4-Audio], [MP4] AAC LC audio using MP4 container
Video
EPUB 3 allows any video codecs to be included without fallbacks, although none are technically considered Core Media Type Resources. Refer to the note in EPUB Publications — Reading System Conformance for informative recommendations on support for video codecs in EPUB Publications.
Style
text/css CSS Style Sheets [ContentDocs32] CSS Style Sheets.
Fonts
EPUB 3 allows any font resource to be included without a fallback, as CSS already defines fallback rules for fonts. Refer to EPUB Content Documents for support requirements in EPUB Publications.
font/ttf
application/font-sfnt
[TrueType] TrueType fonts
font/otf
application/font-sfnt
application/vnd.ms-opentype
[OpenType] OpenType fonts
font/woff
application/font-woff
[WOFF] WOFF fonts
font/woff2 [WOFF2] WOFF2 fonts
Other
application/xhtml+xml XHTML Content Documents [ContentDocs32] XHTML Content Documents that use the XHTML syntax [HTML].
application/javascript
text/javascript
[RFC4329] Scripts.
application/x-dtbncx+xml [OPF2] The legacy NCX.
application/smil+xml [MediaOverlays32] EPUB Media Overlay documents
application/pls+xml [PRONUNCIATION-LEXICON] Text-to-Speech (TTS) Pronunciation lexicons

3.1.3 Foreign Resources

Foreign Resources MAY be included in an EPUB Publication without a fallback provided they are not referenced from spine itemref elements [Packages32] or directly rendered in their native format in EPUB Content Documents (e.g., via [HTML] embedded content and [SVG] image and foreignObject elements).

Note

This exception allows Authors to include resources in the EPUB Container that are not for use by EPUB Reading Systems. The primary case for this exception is to allow data files to travel with an EPUB Publication, whether for use by scripts in its constituent EPUB Content Documents or for use by external applications (e.g., a scientific journal might include a data set with instructions on how to extract it from the EPUB Container).

When a Foreign Resource is included in the spine or directly rendered in its native format in an EPUB Content Document, a fallback Core Media Type Resource MUST be included. Fallbacks take one of the two following forms:

  • intrinsic fallback mechanisms provided by the format (e.g., ability to provide more than one media type or to display an alternate embedded message when a media type cannot be rendered);

  • manifest fallbacks [Packages32].

Manifest fallbacks are a feature of the Package Document that create fallback chains to Core Media Type Resources. They are used to create fallbacks for Foreign Resources in the spine [Packages32] and when intrinsic fallback capabilities are not available (e.g., for the [HTML] img element).

Refer to the [HTML] and [SVG] specifications for the intrinsic fallback capabilities their elements provide.

3.2 Resource Locations

All Publication Resources MUST be located in the EPUB Container, with the following exceptions:

Note

Authors are encouraged to locate audio, video and script resources inside the EPUB Container whenever feasible to allow users access to the entire presentation regardless of connectivity status.

Note

The rules in this section for Publication Resource locations apply regardless of whether the given resource is a Core Media Type Resource or a Foreign Resource.

Note

The inclusion of Remote Resources in an EPUB Publication is indicated via the remote-resources property on the manifest item element [Packages32].

3.3 XML Conformance

Any Publication Resource that is an XML-Based Media Type MUST meet the following constraints:

The above constraints apply regardless of whether the given Publication Resource is a Core Media Type Resource or a Foreign Resource.

A. Unsupported Features

This specification and its siblings contain certain features that are no longer recommended for use or that are only retained for legacy support reasons. This section defines the meanings of the designations attached to these features and the support expectations for such features.

A.1 Deprecated Features

A deprecated feature is one that is no longer recommended for use in this version of the specification. Deprecated features typically have had limited or no support in Reading Systems and/or usage in EPUB Publications. If a feature is marked as deprecated, the following hold true:

Validation tools SHOULD alert Authors that inclusion of the feature is deprecated when encountered in an EPUB Publication.

A.2 Legacy Features

A legacy feature is one that is retained only for authoring content that is compatible with versions of EPUB prior to 3.0. If a feature is marked as legacy, the following hold true:

Validation tools SHOULD NOT alert Authors about the presence of legacy features in an EPUB Publication, as their inclusion is valid for backwards compatibility. Validation tools MUST alert Authors if a legacy feature does not conform to its definition or otherwise breaks a usage requirement.

B. Index

This section is non-normative.

This index identifies where key concepts are defined in EPUB 3, including element, attribute and property definitions.

C. Acknowledgements and Contributors

This section is non-normative.

EPUB 3 is developed by the W3C's EPUB 3 Community Group in coordination with the Publishing Business Group.

The EPUB 3.2 revision was led by:

In addition to the editors, this version of EPUB would not have been possible without significant contributions from:

Special thanks go to the former members of the International Digital Publishing Forum, particularly Markus Gylling and Bill McCoy, without whom EPUB would not have become a reality.

D. References

D.1 Normative references

[ContentDocs32]
EPUB Content Documents 3.2. URL: epub-contentdocs.html
[CSS3Speech]
CSS Speech Module. Daniel Weck. W3C. 5 June 2018. W3C Note. URL: https://www.w3.org/TR/css3-speech/
[EPUBAccessibility]
EPUB Accessibility. URL: http://www.idpf.org/epub/latest/accessibility
[GIF]
Graphics Interchange Format. CompuServe Incorporated. 31 July 1990. URL: https://www.w3.org/Graphics/GIF/spec-gif89a.txt
[HTML]
HTML. W3C. W3C Recommendation. URL: https://www.w3.org/TR/html/
[JPEG]
JPEG File Interchange Format. Eric Hamilton. C-Cube Microsystems. Milpitas, CA, USA. September 1992. URL: https://www.w3.org/Graphics/JPEG/jfif3.pdf
[MediaOverlays32]
EPUB Media Overlays 3.2. URL: epub-mediaoverlays.html
[MP3]
Information technology -- Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s -- Part 3: Audio. ISO/IEC. August 1993. Published. URL: https://www.iso.org/standard/22412.html
[MP4]
Information technology -- Coding of audio-visual objects -- Part 14: MP4 file format. ISO/IEC. November 2018. Published. URL: https://www.iso.org/standard/75929.html
[MPEG4-Audio]
Information technology -- Coding of audio-visual objects -- Part 3: Audio. ISO/IEC. September 2009. Published. URL: https://www.iso.org/standard/53943.html
[OCF32]
Open Container Format (OCF) 3.2. URL: epub-ocf.html
[OpenType]
OpenType specification. Microsoft. URL: http://www.microsoft.com/typography/otspec/default.htm
[OPF2]
Open Packaging Format 2.0.1. URL: http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm
[Packages32]
EPUB Packages 3.2. URL: epub-packages.html
[PNG]
Portable Network Graphics (PNG) Specification (Second Edition). Tom Lane. W3C. 10 November 2003. W3C Recommendation. URL: https://www.w3.org/TR/PNG/
[PRONUNCIATION-LEXICON]
Pronunciation Lexicon Specification (PLS) Version 1.0. Paolo Baggia. W3C. 14 October 2008. W3C Recommendation. URL: https://www.w3.org/TR/pronunciation-lexicon/
[RFC2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. N. Freed; N. Borenstein. IETF. November 1996. Draft Standard. URL: https://tools.ietf.org/html/rfc2046
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC4329]
Scripting Media Types. B. Hoehrmann. IETF. April 2006. Informational. URL: https://tools.ietf.org/html/rfc4329
[SVG]
SVG. W3C. URL: https://www.w3.org/TR/SVG/
[TrueType]
Apple TrueType Reference Manual. Apple. 2002. URL: https://developer.apple.com/fonts/TrueType-Reference-Manual/
[Unicode]
The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
[WOFF]
WOFF File Format 1.0. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 13 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/WOFF/
[WOFF2]
WOFF File Format 2.0. Vladimir Levantovsky; Raph Levien. W3C. 1 March 2018. W3C Recommendation. URL: https://www.w3.org/TR/WOFF2/
[XInclude]
XML Inclusions (XInclude) Version 1.0 (Second Edition). Jonathan Marsh; David Orchard; Daniel Veillard. W3C. 15 November 2006. W3C Recommendation. URL: https://www.w3.org/TR/xinclude/
[XML]
Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
[XML-NAMES]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 8 December 2009. W3C Recommendation. URL: https://www.w3.org/TR/xml-names/
[XMLBase]
XML Base (Second Edition). Jonathan Marsh. W3C. 28 January 2009. W3C Recommendation. URL: https://www.w3.org/TR/xmlbase/

D.2 Informative references

[EPUB32Changes]
EPUB 3.2 Changes. URL: epub-changes.html
[EPUB3Overview]
EPUB 3 Overview. URL: epub-overview.html
[H264]
H.264 : Advanced video coding for generic audiovisual services. 2017-04-13. URL: https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=13189
[RFC6386]
VP8 Data Format and Decoding Guide. J. Bankoski; J. Koleszar; L. Quillio; J. Salonen; P. Wilkins; Y. Xu. IETF. November 2011. Informational. URL: https://tools.ietf.org/html/rfc6386