本文件為W3C於2020年03月19日發布之Lightweight Packaging Format (LPF)的翻譯版本。此翻譯版本係由台灣數位出版聯盟(Taiwan Digital Publishing Forum, TDPF)自願翻譯,譯者盡可能維持英文原文本意與翻譯品質,唯翻譯內容仍可能有所錯誤。如有發現錯誤或不妥之處,請透過GitHub與譯者聯繫、修正或建立issue。
本翻譯文件僅供參考,唯一的正式版本請以W3C網站發布之英文原文版為準。
翻譯版本最後更新日期:2022年01月23日
Copyright © 2018-2020 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
本節不具規範性。
本規格定義了一個檔案格式,以及將構成一份數位出版品之組成資源與相關詮釋資料集封裝成單一檔案容器的處理模型。
本節解釋了本文件在其發布時的狀態。其他文件可能取代本文件。W3C的當前出版品清單以及本技術報告的最新版本可於位在https://www.w3.org/TR/之W3C技術報告索引中獲得。
本文件由出版工作小組以工作小組備忘形式發布。
推薦使用GitHub Issues對本規格進行討論。此外,你也可以將意見寄送到我們的郵寄列表。請寄送到public-publ-wg@w3.org(郵件封存紀錄)。
作為工作小組備忘的出版品並不意味著受到W3C會員所背書。這是一份草稿文件並且可能隨時受其他文件更新、取代或者淘汰。將本文件作為進行中工作以外的文件來引用是不合適的。
本文件是由在W3C專利政策下運作的小組所製作。
此小組不預期本文件會成為W3C推薦規格。
本文件受2019年3月1日W3C流程文件所規範。
本節不具規範性。
一份數位出版品封裝檔是用於:
在不同個人及(或)不同組織間交換製作中的封裝出版品。
出版社或者轉換業者提供已完成的封裝出版品給不同的分發商或者銷售管道。
提供封裝出版品給使用者(user)或者使用者代理程式(user agent)。
本規格是基於已受驗證的技術且允許數位出版品能被以簡單的方式進行封裝,因此其名稱使用了「輕量」的術語。
本節不具規範性。
本文件使用了定義於W3C備忘「Web上的出版與連結」 [publishing-linking] 中的術語,特別是包含了使用者(user)與使用者代理(user agent)。
此外,以下術語定義供本規格所使用:
本質為二進位格式性質的內容類型,例如為了壓縮最佳化所設計或者提供最佳化串流能力的影片及聲音等媒體類型。
因其內在資料結構特性而利於壓縮的內容類型,例如基於字元與字串之檔案格式(如HTML、CSS…等)。
由構成數位出版品的一組組成資源與相關詮釋資料集所形成的單一檔案容器。
數位出版品的首選起始資源,在某些案例中可用於發現其出版品宣告。
由一組組成資源與相關詮釋資料所組織在一起而型成的一個具獨特性的可識別群組。
採用 [pub-manifest] 中對數位出版品的定義並以 [JSON-LD] 形式呈現描述的數位出版品資源清單宣告。
封裝檔案系統的基底目錄。
每個術語僅在第一次於章節出現中時才會連結到其定義。
本節不具規範性。
除了標註為不具規範性的章節外,本規格中所有製作指引、圖表、範例與注意事項亦不具規範性。其餘本規格中的內容則均為具規範性。
本文件中出現之關鍵字可以(MAY)、必需(MUST)、應該(SHOULD)之解釋以BCP 14 [RFC2119] [RFC8174] 所描述為準,同時也僅在出現時以全大寫(中文為粗體)顯示。
本節不具規範性。
為了將構成數位出版品的組成資源與相關詮釋資料集封裝起來,本規格採用定義在ISO/IEC 21320-1:2015 ( [ISO21320] 與 [zip] )中之ZIP格式。
本節不具規範性。
當資源儲存於封裝檔中時,非編碼內容類型的資源應該被壓縮且必需使用Deflate壓縮演算法。這項實踐確保檔案實體能在封裝檔中以較小的尺寸存放。
編碼內容類型資源應該以無壓縮的方式儲存。因為在這情況下,壓縮會在產製過程中產生不必要的處理成本(尤其是大型資源檔案)並且可能會影響使用聲音/影片時的播放效能。
在一些情況下,壓縮與某些加密方案結合使用時可能會阻礙使用者代理的「處理部分內容請求」能力(例如,HTTP位元範圍),這是因為在技術上難以在媒體播放前就確認整個資源的長度(例如,HTTP Content-Length標頭)。
本節不具規範性。
根目錄本質上為虛擬的:使用者代理進行封裝檔的解封裝時,產生或不產生存放內容的實體根目錄均可。
這兩個檔案的內容必需不被加密。
封裝檔也必需包含所有在該數位出版品範圍中的資源,也就是從預設閱讀順序和出版品宣告所列的資源清單組合中獲得的所有資源集合。
這些資源檔案可以置放在根目錄下的任何子資料夾,或者放在根目錄中。
封裝檔中的內容必需透過相對URL字串 [url] 以參照到這些內容。
[zip] 規格對檔案與資料夾名稱允許使用的字元有些限制。當使用這類名稱時,作者必須小心使用這些字元,以使得在跨作業系統時能得到廣泛的互通性。
本節不具規範性。
若封裝檔在其根目錄中包含publication.json
檔案時,出版品宣告可於開啟及分析該檔案時取得。
除此之外,如果封裝檔在其根目錄中包含index.html
檔案時,出版品宣告可透過以下步驟取得:
index.html
檔案的內容為document
。text/html
或application/xhtml+xml
媒體類型(media type),結束此演算法。document
之樹狀結構中,第一個rel
屬性值為publication
的link
元素設為manifest link。null
,結束此演算法。href
屬性值為空字串,結束此演算法。如果manifest link的href
屬性值存在片段識別符號(fragment)且可識別出document
中的某個識別碼id時:
id
屬性與id相同且type
屬性為application/ld+json
的script
元素設為embedded manifest script。null
,結束此演算法。此分支流程用於當宣告內嵌於主要進入頁面時的情況。本演算法用來確認script
元素的位置並且取出宣告。
href
屬性的值。此分支流程用於當宣告位在獨立檔案時的情況。其展示了從封裝檔中取得宣告的標準程序。
如果封裝檔中同時存在index.html
與publication.json
,則主要進入頁面應該包含對publication.json
檔案之參照,其規則請參照本章節之定義。
application/lpf+zip
媒體類別本節不具規範性。
本附錄註冊了application/lpf+zip
媒體類型供輕量封裝格式使用。
輕量封裝格式(Lightweight Packaging Format, LPF)為一個基於 [zip] 封存格式之容器技術,用於將構成數位出版品的組成資源與相關詮釋資料集封裝成一個單一檔案容器。LPF和其相關標準由W3C所維護及定義。
application
lpf+zip
無
無
LPF檔案為ZIP格式的二進位檔案。
適用於application/zip
的安全性考量也適用於LPF檔案。例如,一個封存檔可能包含了一個解壓縮時會在硬碟上擴張填滿所有可用磁碟空間的壓縮內容。因此,讀取LPF檔案的使用者代理應該嚴格地檢查所取得資料之檔案大小與正確性。
此外,由於各種內容類型都可能嵌入於LPF檔案中,application/lpf+zip
可能會被視為有安全疑慮的內容,例如在封裝檔中被故意包含了惡意的可執行內容。然而這些潛在的安全問題只會發生於當使用者代理可識別並處理該額外內容,或者該內容被進一步交付給其他使用者代理處理時的情境。在這樣的案例中,安全性考量將不屬於本註冊文件之範圍。
任何基於LPF的格式,當使用內容加密時,必需選擇不同於本規格定義之MIME媒體類型與副檔名。
本媒體類型註冊供輕量封裝格式(Lightweight Packaging Format, LPF)使用,描述於位在https://www.w3.org/TR/lpf
的輕量封裝格式規格。
本媒體類型之目的係用於在多種互通性應用程式間進行電子書、有聲書、數位視覺敘與其他類型之數位出版品之分發與消費使用。
0: PK 0x03 0x04
LPF檔案多半可透過副檔名.lpf
識別。
ZIP
無
Ivan Herman (ivan@w3.org)
一般(COMMON)
此發布規格是World Wide Web Consortium(W3C)出版工作小組的成果產出。W3C對本規格有變更的管控權。
本節不具規範性。
編輯者感謝所有出版工作小組的成員對本規格的貢獻: