注意

本文件為W3C於2019年05月08日發布之EPUB Open Container Format (OCF) 3.2的翻譯版本。此翻譯版本係由台灣數位出版聯盟(Taiwan Digital Publishing Forum, TDPF)自願翻譯,譯者盡可能維持英文原文本意與翻譯品質,唯翻譯內容仍可能有所錯誤。如有發現錯誤或不妥之處,請透過GitHub與譯者聯繫、修正或建立issue。

本翻譯文件僅供參考,唯一的正式版本請以W3C網站發布之英文原文版為準。

翻譯版本最後更新日期:2022年01月23日

EPUB開放容器格式(Open Container Format, OCF) 3.2

最終社群小組規格

最新編輯草稿:
https://w3c.github.io/epub-specs/archive/epub32/spec/epub-ocf.html
編輯:
Garth Conboy (Google)
前任編輯:
James Pritchett (Learning Ally)
Markus Gylling (International Digital Publishing Forum (IDPF))
協助參與:
GitHub w3c/publ-epub-revision
提出問題
版本紀錄
修改要求

概要

本規格定義了一個檔案格式與處理模型,以包裝一組相關聯的資源組成一本EPUB®出版品為單一檔案容器,即為EPUB容器

本規格定義了規則供建構抽象(即為「抽象容器(abstract container)」)的檔案集合,以及規定此抽象容器於ZIP封存檔(即為「ZIP容器」)的呈現。供ZIP容器的規則建構於 [ODF] 所使用的ZIP技術。OCF也定義了一套標準方式供嵌入資源模糊化,例如字體,以提供需要這些功能的EPUB出版品使用。

本規格屬於組成 [EPUB32] 的規格群之一,其為基於XML與Web標準的數位出版品交換與遞送格式。要了解整體EPUB 3規格,需要與其他規格一併閱讀且理解。

可參考 [EPUB32Changes] 以了解本規格與其前版本的差異資訊。

本文件狀態

本規格由EPUB 3社群小組所發表。並非W3C標準也不在W3C標準程序上。請注意本規格適用於W3C社群完整規範協議(FSA)。可進一步了解W3C社群與業界小組

如果你想要對本文件提出意見,請寄送到public-epub3@w3.org訂閱存檔)。

1. 導論

1.1 術語

專屬於EPUB 3的術語在本文件中以括號(譯注:英文版為首字大寫。範例如「作者」,「閱讀系統」)。術語與定義的完整清單提供於 [EPUB32] 。

每章節術語第一次出現時才會連結至其定義。

此外,以下術語專為本規格所定義使用:

編碼(Codec)

編碼用於具備固有二進位格式特性的內容,例如影片或者聲音媒體類型等已經預先為壓縮做了最佳化設計,或者能提供最佳化的串流相容性。

預設內容釋義(Default Rendition)

列於container.xml檔案中的第一個rootfile元素中的內容釋義

檔案名稱(File Name)

OCF抽象容器中任何種類檔案的名稱,不管是檔案夾或者在檔案夾中的檔案。

非編碼(Non-Codec)

非編碼用於其內在檔案結構性質能夠得益於壓縮的內容類型,例如基於文字字串的檔案格式(例如,HTML、CSS等)。

OCF抽象容器(OCF Abstract Container)

OCF抽象容器定義了一個檔案系統模型供OCF ZIP容器的內容,如OCF抽象容器所定義。

OCF處理器(OCF Processor)

一個軟體應用程式用於處理OCF ZIP容器,需符合本規格中的需求。

OCF ZIP容器(OCF ZIP Container)

基於ZIP技術的EPUB出版品包裝與遞送格式,定義於OCF ZIP容器

OCF ZIP容器與EPUB容器為同義詞。

路徑名稱(Path Name)

OCF抽象容器中所給予的檔案夾,該字串包含以完整路徑顯示的所有檔案夾構成檔案名稱,以一個/U+002F)字元結合起來,並以/分隔檔案夾與檔案名稱。

根目錄(Root Directory)

根目錄表示OCF抽象容器檔案系統的基底。其檔案夾性質為虛擬:當內容尚未解壓縮時,一個EPUB閱讀系統可或不可產生一個供OCF抽象容器內容的實體根目錄。

1.2 適用性

除了標註為非規範性的章節,本規格中所有製作指針、圖表、範例與注意事項都為非規範性。其餘本規格中的內容皆為規範性。

關鍵字:可以(MAY)必需(MUST)不得(MUST NOT)選擇性(OPTIONAL)必要(REQUIRED)應該(SHOULD)不應(SHOULD NOT)應該以 [RFC2119] 之記述解釋。

2. OCF適用性

2.1 容器適用性

2.2 閱讀系統適用性

EPUB閱讀系統必需符合以下領域需求:

3. OCF抽象容器

3.1 導論

本章節為非規範性。

OCF抽象容器檔案系統模型,使用單一通用根目錄來置放所有內容。所有供EPUB出版品使用的本地資源都放在由根目錄所開始的目錄樹中,本規格中不對資源做檔案系統結構的指定。

此檔案系統模型也包含一個必要的資料夾META-INF,為根目錄下直接子目錄,用於置放以下特殊檔案:

container.xml [必要]

識別定義該EPUB出版品中每個內容釋義包裝文件位置。

signatures.xml [選擇性]

包含各種用途的數位簽章。

encryption.xml [選擇性]

包含關於出版品資源加密的資訊。當使用模糊化時本檔案為必要。

metadata.xml [選擇性]

用於儲存OCF ZIP容器的詮釋資料。

rights.xml [選擇性]

用於儲存關於數位權利的資訊。

manifest.xml [選擇性]

一份容器內容的宣告,開放文件格式 [ODF] 允許使用。

META-INF資料夾中各檔案的適用性需求定義於META-INF資料夾

3.2 檔案與目錄結構

OCF抽象容器使用的虛擬檔案系統必需有單一通用的根目錄置放容器中的所有內容。

OCF抽象容器必需包含一個名為META-INF的目錄,作為容器根目錄的直接子目錄。對該資料夾中內容的需求在META-INF資料夾中說明。

根目錄中 mimetype檔案名稱保存供OCF ZIP容器使用,於OCF ZIP容器中說明。

所有其他在OCF抽象容器中的檔案可以放置於根目錄以下的所有階層位置,但不能置放在META-INF資料夾中。

3.3 參照其他元件時相對IRI

OCF抽象容器中的檔案必需透過相對IRI位置相互參照 ( [RFC3987和 [RFC3986] )。

對相對IRI位置,其基本IRI [RFC3986] 由其給予的檔案格式之相關的語言規格所定義。例如,CSS的相對IRI位置如何運作,定義於CSS樣式表以及特性宣告 [CSSSnapshot] 之脈絡。

注意事項

有些語言規格參考早於 [RFC3987] 的IETF意見需求 [RFC] (Requests For comments),在這些案例中,特殊語言套用較早的意見需求於內容上。

不像大多數的語言規格,所有在META-INF資料夾中的檔案使用OCF抽象容器的根目錄作為預設的基本IRI。

舉個例子,如果META-INF/container.xml有以下內容:

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

接著EPUB/Great_Expectations.opf的路徑相對於該OCF抽象容器的根目錄,不相對於META-INF目錄。

所有相對IRI位置必需解析到位於OCF抽象容器中的資源(例如,位於或者低於根目錄)。

3.4 檔案名稱

本章節所說明的檔案名稱限制,設計用於使路徑名稱與檔案名稱在多數常用的作業系統上無需調整即可使用。本規格不指示OCF處理器在無法表現OCF檔案與路徑名時,如何添補其相容性問題的作法。

在一個OCF抽象容器的脈絡下,檔案與路徑名稱在乎大小寫區分,並且必需符合以下領域需求:

注意事項

有些商用ZIP工具不支援完整Unicode範圍,且可能僅支援 [US-ASCII] 範圍的檔案名稱。作者若想使用有這些限制的ZIP工具的話,最好盡可能將檔案名稱限制在 [US-ASCII] 範圍。如果檔案的名稱在解壓縮過程時無法保留,在檔案透過URI被內容所參照時,可能有需要補齊名稱解譯。

3.5 META-INF資料夾

3.5.1 內含物

所有OCF抽象容器必需在其根目錄中包含一個名為META-INF的資料夾。

此資料夾中的檔案為META-INF保留的檔案。其他未列於本章節的檔案可以被放在META-INF資料夾中;而OCF處理器當遇到這些檔案時不得視為錯誤。

3.5.2 保留的檔案

3.5.2.1 容器檔案 (container.xml)

置放於META-INF資料夾中的container.xml必要,其用於指定在OCF抽象容器中的EPUB包裝

該檔案的內容必需在移除所有來自其他命名空間的元素以及屬性(包含所有屬性以及有這些元素的內容)後,合乎定義在「container.xml使用的綱要」裡提供的綱要。

每一個rootfile元素必需指定一份包裝文件的位置,以代表EPUB出版品的一份內容釋義。每一份內容釋義必需與其容器的EPUB版本相容。

一個OCF處理器必需將在rootfile元素中第一個rootfile元素視為所容納的EPUB出版品中的預設內容釋義閱讀系統需要呈現預設內容釋義,但可以顯示容器中的其他內容釋義。

注意事項

儘管EPUB容器具備能包含一個以上內容釋義之內容的能力,閱讀系統對於多重內容釋義的支援依然未受到廣泛支援,僅有相關團體為了其目的與手段提供特定的環境支援。

選擇性links元素用來指定處理OCF ZIP容器時所需要的資源。其每一個link元素必需包含一個href屬性,其值指定了一個資源的位址。每一個link元素都必需包含一個rel屬性,其值指定與資源的關係,以及可以包含一個media-type屬性,其值必需為一個媒體類型 [RFC2046] ,其指定了該link參照的資源的類型與格式。

注意事項

links元素用於多重內容釋義EPUB時,用以指向內容釋義所映射的文件。

rootfile元素中full-path屬性的值與link元素的href屬性必需包含一個路徑部件(path component) [RFC3986] 其必需僅使用path-rootless [RFC3986] 形式。其路徑部件與根目錄為相對。

OCF處理器必需忽略container.xml檔案中的外圍元素與屬性。

3.5.2.2 加密檔案 (encryption.xml)

META-INF資料夾中選擇性的encryption.xml包含所有該容器內容的加密資訊。如果任何容器中的資源有受到加密,encryption.xml必需用於指出哪一份資源受到加密,以及提供如何解密的資訊。

本檔案是一個XML文件,其根元素為encryptionencryption元素包含類型子元素EncryptedKeyEncryptedData由 [XMLENC-CORE1] 所定義。EncryptedKey元素解釋了用於容器的每一個加密密鑰,而EncryptedData元素解釋了每一個加密檔案。每一個EncryptedData元素參照一個EncryptedKey,如在XML加密中所說明。

encryption.xml檔案之內容必需合乎定義在「encryption.xml使用的綱要」裡提供的綱要。

OCF獨立地加密個別檔案,以一些安全性交換效能的提升,允許容器內容能夠被遞增解密。但以這種方式加密會暴露目錄結構與整個包裝的檔案命名。

OCF採用XML加密 [XMLENC-CORE1] 來提供一個加密用的框架,允許使用多種演算法。XML加密指定一個程序供加密任意資料並且以XML表示其結果。儘管OCF抽象容器中可能包含非XML資料,但XML加密可用於加密OCF抽象容器中的所有資料。OCF加密僅支援對在容器中的整個檔案加密,而非檔案的一部分。若encryption.xml檔案存在,則其自身不得被加密。

在OCF抽象容器中,以加密資料置換未加密的資料。例如,如果一個名為photo.jpeg的影像為加密,photo.jpeg資源的內容應該被置換成其加密後的內容。在ZIP資料夾中,應該儲存加密後的檔案而非Deflate壓縮檔。

請注意在一些狀況下,需要模糊儲存被內容釋義參照的嵌入資源,以連接到「母」EPUB出版品並且使它們更難以在非限制的使用下解壓縮(例如,字體)。儘管模糊化並非加密,encryption.xml檔案用於對應資源模糊化演算法以識別哪些資源需要在使用前去模糊化。

以下檔案不得被加密,無論是使用預設或者特別的加密法:

  • mimetype
  • META-INF/container.xml
  • META-INF/encryption.xml
  • META-INF/manifest.xml
  • META-INF/metadata.xml
  • META-INF/rights.xml
  • META-INF/signatures.xml
  • 包裝文件

簽署的資源可以之後使用供XML簽章 [XMLENC-DECRYPT] 的解密變形法(Decryption Transform)加密。這項功能使應用程式,例如一個OCF客戶端在從檔案簽署前來辨別資料是否加密。只有在簽署後為加密的檔案必需要在計算其摘要用於查核簽名前解壓縮。

3.5.2.2.1 壓縮與加密順序

儲存在ZIP容器中,非編碼內容類型的資料流應該在加密前壓縮,必需使用Deflate壓縮。這種做法可確保存放在ZIP容器中的檔案能夠佔較少的空間。

編碼內容類型的資料不應在加密前壓縮。在這些案例中,額外的壓縮會在製作時產生不必要的處理程序(尤其在處理大型資源檔案時),以及在閱讀時將會影響影音播放效率。在某些案例中,某些加密綱要的組合壓縮可能會降低閱讀系統處理部分內容需求的能力(例如,HTTP位元組範圍byte range),由於技術上無法在媒體播放時判斷完整資源的長度(例如,HTTP內容長度檔頭Content-Length header)。

在加密前壓縮的資料流應該提供額外的EncryptionProperties詮釋資料來指定初始資源的大小(即為,在壓縮與加密前),如同下列每個CompressionXML元素所定義。加密前沒受壓縮的資料流可以提供額外的EncryptionProperties詮釋資料來指定初始資源的大小(即為,加密前)。

元素名稱

Compression

命名空間

http://www.idpf.org/2016/encryption#compression

用法

EncryptionProperty選擇性子元素。

屬性
Method [必要]

識別所使用的壓縮法。

值需為「0」(無壓縮)或「8」(Deflate演算法)。

OriginalLength [必要]

代表資源初始大小(位元組數)。

值為正整數。

內容模型

空白

3.5.2.3 宣告檔案 (manifest.xml)

META-INF資料夾裡選擇性manifest.xml檔案提供了對容器裡檔案的宣告。

OCF規格不強制指定宣告的格式。

請注意在包裝文件中的manifest元素為唯一用於處理該內容釋義的宣告。包含在ZIP封存中的額外宣告資訊或者選擇性manifest.xml不得被用於處理內容釋義。

注意事項
本功能僅為了相容於 [ODF] 續存。
3.5.2.4 詮釋資料檔案 (metadata.xml)

META-INF資料夾裡若有選擇性META-INF/metadata.xml檔案,則必需用於容器層級的詮釋資料。

若有metadata.xml檔案,其內容應該僅包含命名空間認可的元素 [XML-NAMES] 。該檔案應該包含根元素metadata,其命名空間為http://www.idpf.org/2013/metadata,但其他根元素可以用於向後相容目的。閱讀系統應該忽略根元素無法識別之metadata.xml

本版本的OCF規格不定義供metadata.xml檔案使用的詮釋資料格式。容器層級的詮釋資料可以在本規格的未來版本以及EPUB延伸規格中定義。

3.5.2.5 權利管理檔案 (rights.xml)

META-INF資料夾裡選擇性rights.xml為供數位權利管理(DRM)資訊所保留,目的為讓EPUB出版品能在權利人、中介與使用者間可被信任地傳遞。

本版本的OCF規格不要求特定格式的DRM資訊,但未來版本可能會要求。rights.xml的內容應該僅包含命名空間認可的元素 [XML-NAMES] ,以避免與未來的格式產生斷裂。

rights.xml檔案不存在時,該容器中沒有任何部分在容器層級上受到權利管控。但權利表述可能存在於容納的內容釋義。

如果rights.xml不存在時,OCF抽象容器沒有任何部分受到權利管控。

3.5.2.6 數位簽章檔案 (signatures.xml)
注意事項

添加數位簽章並不保證EPUB檔案不受到變更,主要因為閱讀系統不被要求必須確認簽章。

META-INF資料夾裡選擇性signatures.xml包含供容器與其內容的數位簽章。本檔案的內容必需合乎定義在「signatures.xml使用的綱要」裡提供的綱要。

signatures.xml檔案的根元素為signatures元素。該元素包含類型子元素Signature如 [XMLDSIG-CORE1] 所定義。簽章可套用於一本EPUB出版品的整體或者其部分,並且可以指定用於簽署任何種類的資料(即為,不只是XML)。

signatures.xml不存在時,該容器中沒有任何部分在容器層級上受到數位簽署。但EPUB出版品中可能存在數位簽署。

當資料簽章為該容器所創建,其簽章應該被加到signatures元素中最後一個子Signature元素。

注意事項

每一個在signatures.xml中的Signature由IRI所識別其簽章所適用的資料,使用 [XMLDSIG-CORE1] Manifest元素以及其Reference子元素。獨立涵蓋的檔案可以被分別或者一起簽署。對每個檔案個別簽署時會創建資源的摘要值以能被獨立驗證。這種方式會讓簽章元素變大。如果檔案被一起簽署,簽署檔案的集合可以被列於單一XML簽章Manifest元素以讓一或多個Signature元素參照。

所有位於容器中的檔案都可以被完整簽署,除了自身包含計算過的簽章資訊的signatures.xml檔案。不管signatures.xml如何被簽署或者簽署者的目的為何。

當簽署者想要為容器允許加入或者移除簽章,卻沒有無效化簽署者簽章時,signatures.xml不應被簽署。

如果簽署者想要對添加或者移除簽章以無效化簽署者的簽章時,可應用定義於6.6.4節中 [XMLDSIG-CORE1] 的Enveloped Signature transform以簽署整個預先存在的簽署檔,而非創建Signature。這種變形手段可以簽署所有之前的簽章,而在後續簽章加入套件時會變成無效。

注意事項

如果簽署者想要移除既有的簽章使簽署者的簽章無效化,但也希望能夠允許添加簽章,可以適用XPath transform來僅對存在的簽章進行簽署。然而,像這樣變形的細節在本規格的目的之外。

[XMLDSIG-CORE1] 規格與簽章的沒有任何語意關聯,使用者端可以包含語意資訊,例如,在簽章元素加入資訊來說明該簽章。 [XMLDSIG-CORE1] 規格解釋如何為簽章加入額外資訊,例如使用SignatureProperties元素。

4. OCF ZIP容器

4.1 導論

本章節為非規範性。

OCF ZIP容器為實體單一檔案,宣告了OCF抽象容器。該容器用於:

4.2 ZIP檔案需求

OCF ZIP容器使用ZIP格式如 [ZIP] 所描述,但有著以下限制與澄清:

以下限制適用於OCF ZIP容器封存的特殊欄位:

4.3 OCF ZIP容器媒體類型識別

OCF ZIP容器中第一個檔案必需mimetype檔案,其須符合以下需求:

注意事項

參考附錄C,application/epub+zip媒體類型以了解關於application/epub+zip媒體類型的進一步資訊。

5. 資源模糊化

5.1 導論

本章節為非規範性。

由於OCF ZIP容器基本上是一個ZIP檔案,一般常見的ZIP工具都可以用於從其包裝中解壓縮未加密的內容流。此外,ZIP檔案的特性表示其內容可以如其他原生容器在一些系統上(例如,資料夾)顯示。

ZIP檔案的單純很便於使用,但也產生了一個問題,不加密的副作用是易於提取資源,而這不是期盼的結果。例如,作者想要包含第三方字體時,一般不會希望字體被解壓縮並且被其他人使用。更重要的是,許多商用字體允許被嵌入,但嵌入字體即代表其為EPUB出版品整體的一部分,不只是隨著內容提供其原始字體。

雖然現在作業系統普遍整合了ZIP支援,但只是把字體置放到ZIP封裝並不足以表示其不想被用於其他脈絡的意圖。這種不確定性會損害EPUB出版品中相當有用的嵌入字體能耐。

為了避免字體受到使用,有些字體提供者可能僅會在以某些方法與EPUB出版品連結的狀況下,才允許使用它們的字體於EPUB出版品。即為,當字型檔案不能以預設工具被直接安裝在裝置中供作業系統使用,也不能被其他EPUB出版品所直接使用。

提供數位權利管理或者強制系統供這些資源使用超過本規格的目標。本章節則以定義模糊化的方法取代,其需要花額外的功夫在最終OCF收受端以增加對任何模糊化資源的一般性存取。

請注意,本規格並不將其宣稱為加密,也不能保障資源安全無虞不受侵權。然而,僅希望這項演算法將會符合多數提供者希望為其資源提供一些保障,而不會簡單地透過對容器解壓縮就能取出。

在字體的案例中,主要使用的方法是模糊化,定義的機制將簡單地提供阻擋方式來避免人們沒有注意到授權細節。其將無法避免有意圖的使用者獲得對字體的完整存取權。對該OCF容器而言,則可以套用該定義的演算法來取出原始字型檔案。本模糊手段是否能滿足個別字體的授權,依然還需詢問授權者與被授權者。

5.2 模糊化密鑰

用於模糊化演算法的密鑰,由預設內容釋義獨特識別碼所取得。

所有空白字元,如XML 1.0規格中2.3節 [XML] 所定義,必需由識別碼中移除 — 尤其是Unicode碼點U+0020U+0009U+000DU+000A

UTF-8表意的SHA-1摘要結果字串應該被取得以被安全雜湊標準(Secure Hash Standard) [FIPS-180-4] 所指定。其摘要即直接作為演算法密鑰使用。

5.3 模糊化演算法

部署供模糊化資源的演算法固定調整最初檔案的1040位元組(~1KB)。在罕見的狀態下,檔案小於1040位元組時,則整個檔案都會變動。

為了模糊化原始資料,結論上使用邏輯互斥或(logical exclusive or, XOR)於原始檔案的第一個位元組,以及將模糊化密鑰的第一個位元組儲存作為嵌入資源的第一個位元組。

本程序將逐來源檔案和密鑰的位元組重複,持續到所有密鑰的位元組都被使用完畢。此時,處理將會繼續從密鑰的第一個位元組與來源的第21個位元組開始。當1040個位元組以這種方式編碼後(或者到達來源的結束時),任何來源中剩下的資料都將直接複製到結果檔。

資源模糊化必需發生早於壓縮及加入OCF容器前。請注意模糊化不是加密,本需求不會違反加密檔案(encryption.xml在加密前先壓縮資源的規則。

為了恢復成原來的字型檔案,程序僅要簡單地反向進行:來源檔案變成模糊化資料,而其結果檔案將包含原始資料。

注意事項

對字體的模糊化早在EPUB 3.0.1版就已經允許使用,但沒有指定模糊化與壓縮的順序。結果而言,在解壓縮與去模糊化後可能會得到不合規的字體。在這些狀況下,在解壓縮前對資料進行去模糊化可能取得合規的字體。本規格不要求對這種逆向方法的支援,原因是不適用本版本規格,但其可能需要納入對EPUB 3內容的一般支援。

5.4 指定模糊化資源

儘管技術上並非對資料加密,所有模糊化資源必需在該EPUB出版品中的encryption.xml檔案中登錄(請見加密檔案(encryption.xml)。

EncryptedData元素必需包含每一個模糊化資源。每一個EncryptedData元素必需包含一個EncryptionMethod子元素,其Algorithm屬性之值設定為http://www.idpf.org/2008/embedding。這項屬性出現代表使用本規格所闡釋的演算法。對模糊化資源的路徑必需被列於CipherData元素中的 CipherReference子元素。

為了避免無意義地複製嵌入資源到其他EPUB出版品,模糊化密鑰不得encryption.xml檔案中提供。

A. 綱要(Schemas)

A.1 container.xml使用的綱要

container.xml檔案使用的綱要可於 https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/ocf-container-30.nvdl取得。

使用本綱要進行驗證需要支援 [RelaxNG-Schema] 及 [XMLSCHEMA-2] 的處理器。

A.2 encryption.xml使用的綱要

encryption.xml檔案使用的綱要包含在 [XMLSEC-RNGSCHEMA-20130411] 中。

A.3 signatures.xml使用的綱要

signatures.xml檔案使用的綱要包含在 [XMLSEC-RNGSCHEMA-20130411] 中。

B. 範例

本章節為非規範性。

以下範例示範了使用OCF格式於 OCF ZIP容器中包含簽署及加密的EPUB出版品。

C. application/epub+zip媒體類型

本章節為非規範性。

本附錄註冊媒體類型application/epub+zip供EPUB開放容器格式(Open Container Format, OCF)使用。

一個OCF ZIP容器,或EPUB容器,檔案為基於 [ZIP] 封存格式技術的容器。用於包覆EPUB出版品的內容釋義。OCF與其相關標準由World Wide Web Consortium (W3C)所維護並且定義。

MIME媒體類型名稱:

application

MIME子類型名稱:

epub+zip

必要參數:

無。

選擇性參數:

無。

編碼考量:

OCF ZIP容器檔案為以application/zip媒體類型編碼的二進位檔案。

安全性考量:

所有能夠讀取OCF ZIP容器檔案的處理器應該嚴密地對取得的檔案大小以及合規性進行檢查。

此外,因為各種不同內容類型可被嵌入到OCF ZIP容器檔案中,application/epub+zip可以敘述為擁有超過此處說明含有安全性問題的內容。然而在這些案例中,僅有在處理器辨別並且處理這些額外內容,或者將內容交派到其他處理器進行進一步處理時,才會遇到這些潛在的安全問題。在這些案例中,安全性問題落於本註冊文件的領域之外。

適用於application/zip的安全性考量也適用於OCF ZIP容器檔案。

互通性考量:

無。

已發表規格:

本媒體類型註冊供EPUB開放容器格式(Open Container Format, OCF)使用,如EPUB開放容器格式(OCF)3.2規格所敘述,位於https://w3c.github.io/epub-specs/archive/epub32/spec/epub-ocf.html。 EPUB OCF 3.2規格同時取代RFC 4839以及開放容器格式2.0.1規格,其位於https://www.idpf.org/doc_library/epub/OCF_2.0.1_draft.doc,其也使用application/epub+zip媒體類型。

使用該媒體類型的應用程式:

本媒體類型廣泛用於遞送EPUB格式的電子書。以下為非窮舉的應用程式列表:

  • Adobe Digital Editions
  • Aldiko
  • Azardi
  • Apple iBooks
  • Barnes & Noble NOOK
  • Bluefire Reader
  • Calibre
  • Google Play Books
  • Kobo
  • Microsoft Edge
  • Readium
額外資訊:
魔術數字:

0: PK 0x03 0x04, 30: mimetype, 38: application/epub+zip

副檔名:

OCF ZIP容器檔案多半可透過副檔名.epub進行識別。

麥金塔檔案類型代碼:

ZIP

斷片識別碼:

連結綱要註冊維護於https://www.idpf.org/epub/linking/。這些綱要部分定義了客製化斷片識別碼可解析到application/epub+zipapplication/oebps-package+xml文件。

進一步資訊的聯絡人與郵件位址:

public-epub3@w3.org

預計用途:

COMMON

作者/變更管控:

發布的規格是World Wide Web Consortium之EPUB 3社群小組的成果產品。W3C對本規格有變更的管控權。

D. 謝詞與貢獻者

本章節為非規範性。

EPUB 3由W3C EPUB 3社群小組所開發,並且與出版業界小組相互協力。

EPUB 3.2改版由以下主導:

此外向編輯群致敬,本版本EPUB若缺少以下人物的顯著貢獻,則不可能完成:

特別感謝IDPF的前會員,尤其是Markus Gylling與Bill McCoy,沒有他們EPUB不可能成真。

E. 參考資料

E.1 規範性文件

[CSSSnapshot]
CSS Snapshot. URL: https://www.w3.org/TR/CSS/
[EPUB32]
EPUB 3.2. URL: epub-spec.html
[FIPS-180-4]
FIPS PUB 180-4 Secure Hash Standard. U.S. Department of Commerce/National Institute of Standards and Technology. URL: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
[RelaxNG-Schema]
Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG. ISO/IEC. 2008. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c052348_ISO_IEC_19757-2_2008(E).zip
[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
[RFC3986]
Uniform Resource Identifier (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. January 2005. Internet Standard. URL: https://tools.ietf.org/html/rfc3986
[RFC3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://tools.ietf.org/html/rfc3987
[TR15]
Unicode Normalization Forms. URL: http://www.unicode.org/reports/tr15/
[Unicode]
The Unicode Standard. Unicode Consortium. URL: https://www.unicode.org/versions/latest/
[US-ASCII]
"Coded Character Set - 7-bit American Standard Code for Information Interchange", ANSI X3.4, 1986..
[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/
[XMLDSIG-CORE1]
XML Signature Syntax and Processing Version 1.1. Donald Eastlake; Joseph Reagle; David Solo; Frederick Hirsch; Magnus Nyström; Thomas Roessler; Kelvin Yiu. W3C. 11 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/xmldsig-core1/
[XMLENC-CORE1]
XML Encryption Syntax and Processing Version 1.1. Donald Eastlake; Joseph Reagle; Frederick Hirsch; Thomas Roessler. W3C. 11 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/xmlenc-core1/
[XMLENC-DECRYPT]
Decryption Transform for XML Signature. Merlin Hughes; Takeshi Imamura; Hiroshi Maruyama. W3C. 10 December 2002. W3C Recommendation. URL: https://www.w3.org/TR/xmlenc-decrypt/
[XMLSCHEMA-2]
XML Schema Part 2: Datatypes Second Edition. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-2/
[XMLSEC-RNGSCHEMA-20130411]
XML Security RELAX NG Schemas. Murata Makoto; Frederick Hirsch. W3C. 11 April 2013. W3C Note. URL: https://www.w3.org/TR/2013/NOTE-xmlsec-rngschema-20130411/
[ZIP]
.ZIP File Format Specification. 1 September 2012. Final. URL: https://www.pkware.com/documents/casestudies/APPNOTE.TXT

E.2 參考性文件

[EPUB32Changes]
EPUB 3.2 Changes. URL: epub-changes.html
[HTML]
HTML. W3C. W3C Recommendation. URL: https://www.w3.org/TR/html/
[ODF]
Open Document Format for Office Applications (OpenDocument) v1.0. 1 May 2005. URL: https://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf
[RFC]
Request for Comments. URL: https://www.ietf.org/standards/rfcs/