天天看點

epub3 in action: epub3檔案格式簡介

epub3檔案就是一個符合epub3标準,以epub為擴充名的zip壓縮檔案。epub3标準則是基于html5、css3、svg等web标準以及mathML等來展示内容。下圖就是一個簡單epub3檔案的大緻結構。

  

epub3 in action: epub3檔案格式簡介

  epub3規範使用OCF(open container format)标準規定的檔案結構,根目錄當中必須有一個mimetype檔案和一個META-INF檔案夾。其中,mimetype檔案中隻有一個行内容

application/epub+zip

,而META-INF中存放的則是表述整個文檔的中繼資料。在META-INF檔案夾内必須有一個container.xml檔案(除該檔案以後,标準還定義了一些可選檔案,用于處理加密、混淆字型等問題)用來描述文檔内容。container.xml的内容比較簡單,下面是一個container.xml檔案的例子:

<?xml version="1.0"?> 
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
    <rootfiles>
        <rootfile full-path="OEBPS/package.opf"
            media-type="application/oebps-package+xml" />
    </rootfiles>
</container>
           

  在epub3标準當中,rootfile的full-path所指定的opf檔案,是一個xml檔案,用于描述文檔内容(預設的閱讀順序,出版物資訊,作者、标題等,資源檔案資訊等)。這裡已經涉及到了兩處用來描述文檔内容的檔案,需要明确的是META-INF/container.xml檔案使是用來描述一個符合open container format規範的檔案的具體内容的,任何采用該規範的檔案都必須包含這個xml檔案,而一個符合epub3标注的檔案除了該檔案以外還需要一個opf檔案來描述關于epub3文檔的具體内容。下面是一個opf檔案的例子:

<?xml version="1.0" encoding="UTF-8"?>

<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="id">
    <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    ...        
    </metadata>
    <manifest>
        <item href="css/epub.css" id="css01" media-type="text/css"/>
       ...
    </manifest>
    <spine toc="ncx">
    ...
    </spine>
</package>
           

  其中的metadata标簽用來描述一些文檔的基本資訊,如作者、标題等。manifest節點則用來陳列文檔的相關的資源,spine的節點用來設定預設的閱讀順序。

  以上描述的就是一個epub3檔案的大緻結構,一個真正的epub3檔案要比以上所描述的内容複雜的多。