epub電子書本身就是一個ZIP文件,我們將epub格式電子書的后綴.epub修改為.zip后,可以通過解壓縮軟件(例如winrar、winzip)進行瀏覽或解壓處理。
文件組成
一個未經(jīng)加密處理的epub電子書由以下三部分組成:
1.mimetype
2.META-INF(文件夾,有一個文件container.xml)
3.OEBPS(文件夾,包含images文件夾、很多xhtml文件、*.css文件和content.opf文件)
1.文件mimetype
每一個epub電子書均包含一個名為mimtype的文件,且內(nèi)容不變,用以說明epub的文件格式。文件內(nèi)容為:

2.目錄:META-INF
META-INF用于存放容器信息,默認情況下該目錄包含一個文件,即container.xml,文件內(nèi)容如下:

container.xml文件的主要功能用于告訴閱讀器,電子書的根文件(rootfile)的路徑和打開格式,一般來說,該container.xml文件也不需要任何修改,除非改變了根文件的路徑和文件名稱。除了container.xml文件之外,OCF還規(guī)定了以下幾個文件:
manifest.xml 文件列表
metadata.xml 元數(shù)據(jù)
signatures.xml 數(shù)字簽名
encryption.xml 加密
rights.xml 權(quán)限管理
這些目錄是可選的
3. 目錄:OEBPS
OEPBS目錄用于存放OPF文檔、CSS文件、NCX文檔。
OPF文件(★)
OPF文檔是epub的核心文件,且是一個標(biāo)準(zhǔn)的xml文件,依據(jù)OPF規(guī)范,此文件的根元素為<package>

其內(nèi)容主要由五部分組成:
1.<metadata>
元數(shù)據(jù)信息,此信息是書籍的出版信息,由兩個子元素組成。
(1)<dc-metadata>,其元素構(gòu)成采用dubline core(DC)的15項核心元素,包括:

(2)<x-metada>
擴展元素。如果有些信息在上述元素中無法描述,則在此元素中進行擴展。
例如:

2.<mainfest>
文件列表,列出書籍出版的所有文件,但是不包括:mimetype、container.xml、content.opf,由一個子元素構(gòu)成

其中
id:文件的id號
href:文件的相對路徑
media-type:文件的媒體類型
例如:

3.<spine toc="ncx">
脊骨,其主要功能是提供書籍的線性閱讀次序。由一個子元素構(gòu)成:

其中
idref:
即參照manifest列出的id
例如:

4.<guide>
指南,一次列出電子書的特定頁面,例如封面、目錄、序言等,屬性值指向文件保存地址。一般情況下,epub電子書可以不用該元素。
例如:

5.<tour>
導(dǎo)讀,可以根據(jù)不同的讀者水平或閱讀目的,按一定的次序,選擇電子書中的部分頁面組成導(dǎo)讀。一般情況下,epub電子書可以不用該元素。
NCX文件(★)
NCX文件是epub電子書的又一個核心文件,用于制作電子書的目錄,其文件的命名通常為toc.ncx。ncx文件也是一個xml文件。
ncx
代表“Navigation Center eXtended”,意思大致就是導(dǎo)航文件,這個文件與目錄有直接的關(guān)系。
.ncx文件中最主要的節(jié)點是navMap。navMap節(jié)點是由許多navPoint節(jié)點組成的。而navPoint節(jié)點則是由navLabel、content兩個子節(jié)點組成。
(1) navPoint節(jié)點中,playOrder屬性定義當(dāng)前項在目錄中顯示的次序。navLabel子節(jié)點中的text節(jié)點定義了每個目錄的名字。
(2) content子節(jié)點的src屬性定義了對應(yīng)每個章節(jié)的文件的具體位置。
nvaPoint節(jié)點可以嵌套,就是書籍的目錄是層級目錄。
下面是一個toc.ncx文件的實例。
