Epub NCX
** 规范
NCX是DTBook规范的一部分。
http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NCX
Specifications for the Digital Talking Book
8. Navigation Control File (NCX)
Epub2 规范中的相关章节是:2.4.1: Declarative Global Navigation — the NCX
http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1
Epub3 中,NCX被”EPUB Navigation Document”取代了;ncx仍可使用,但仅用于向前兼容,epub3阅读器必须忽略它。
http://www.idpf.org/epub/30/spec/epub30-contentdocs.html#sec-xhtml-nav
** 例子
8.6 Example
(This example is informative.)
Example 8.1:
** 说明
NCX 主要靠 navMap 来表示书籍的逻辑层次结构。navMap下的navPoint元素表示目录树中的一个节点。navPoint是可以嵌套的。
与navMap平级的还有 pageList 和 navList,分别用于表示页序列和索引(脚注、图表等)。
navMap必须出现一次,pageList可以出现一次,navList可以出现零到多次。
navMap、pageList、navList 下子元素的 playOrder 属性提供了一种同步机制,可以根据章节找到页码或者根据页码找到章节。
不过,在不同的结构中的 playOrder 不必严格对应,阅读器会找到最接近的。
注意:playOrder 属性在Epub中不是必需的,但在DTBook中是。如果想省略playOrder,则ncx文件不能引用dtd。
- navPoint
主要属性:
class 节点类别,可取的值是chapter, section, subsection, sub-subsection等。可选,值也不是规范的一部分。
id 标识符,必需。
playOrder 播放顺序,应为正整数。必需。
主要子元素:
navLabel:节点上显示的文字或播放的声音。文本放在text子元素中,声音放在audio中。必需。
content:navPoint指向的内容,其src是内容所在的URL。必需。
navPoint:子节点。
- pageTarget
pageList 的内容是 pageTarget 的序列。pageTarget不能嵌套。
主要属性:
id 必需。
class 值为 pagenum,可选
type 页码的类型,值为 front | normal | special,必需。
value 页码的值,正整数,可选。与type的组合必需唯一。
playOrder 为阅读顺序,必需。
子元素:
navLabel 其text表示页码,必需。
content 必需。
- navTarget
navList 的内容是 navTarget 的序列。navTarget不能嵌套。
主要属性:
id 必需。
class 值为 note 等
playOrder 为阅读顺序,必需。
子元素:
navLabel
content
** 在OPF中注册
spine元素的toc属性,可以引用manifest中的ncx文件的id。
spine元素的itemref仍可继续引用其它项目。