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仍可继续引用其它项目。