本文件為W3C於2019年05月08日發布之EPUB Packages 3.2的翻譯版本。此翻譯版本係由台灣數位出版聯盟(Taiwan Digital Publishing Forum, TDPF)自願翻譯,譯者盡可能維持英文原文本意與翻譯品質,唯翻譯內容仍可能有所錯誤。如有發現錯誤或不妥之處,請透過GitHub與譯者聯繫、修正或建立issue。
本翻譯文件僅供參考,唯一的正式版本請以W3C網站發布之英文原文版為準。
翻譯版本最後更新日期:2022年01月23日
Copyright © 1999-2019 International Digital Publishing Forum™ and W3C® (MIT, ERCIM, Keio, Beihang)
EPUB是國際數位出版論壇(IDPF, International Digital Publishing Forum)的註冊商標。
本規格定義了一個EPUB® 包裝的語意與適用性需求。每個包裝代表了一本EPUB出版品的一項內容釋義,並且由包裝文件所定義,其敘述了內容釋義的內容並且設置了出版品資源如何產生關連的需求。
本規格也定義了EPUB導覽文件,一份可由機器讀取和人類閱讀的特化EPUB內容文件,能夠提供導覽協助,如:目次。
本規格屬於組成 [EPUB32] 的規格群之一,其為基於XML與Web標準的數位出版品交換與遞送格式。要了解整體EPUB 3規格,需要與其他規格一併閱讀且理解。
可參考 [EPUB32Changes] 以了解本規格與其前版本的差異資訊。
本規格由EPUB 3社群小組所發表。並非W3C標準也不在W3C標準程序上。請注意本規格適用於W3C社群完整規範協議(FSA)。可進一步了解W3C社群與業界小組。
如果你想要對本文件提出意見,請寄送到public-epub3@w3.org(訂閱,存檔)。
專屬於EPUB 3的術語在本文件中以括號(譯注:英文版為首字大寫。範例如「作者」,「閱讀系統」)。術語與定義的完整清單提供於 [EPUB32] 。
每章節術語第一次出現時才會連結至其定義。
除了標註為非規範性的章節,本規格中所有製作指針、圖表、範例與注意事項都為非規範性。其餘本規格中的內容皆為規範性。
關鍵字:可以(MAY)、必需(MUST)、不得(MUST NOT) 選擇性(OPTIONAL)、推薦(RECOMMENDED)、應該(SHOULD)、不應(SHOULD NOT)應該以 [RFC2119] 之記述解釋。
為求方便,以下保留字首對應用於本規格中。
字首 | URI |
---|---|
dcterms
|
http://purl.org/dc/terms/
|
opf
|
http://www.idpf.org/2007/opf
|
rendition
|
http://www.idpf.org/vocab/rendition/#
|
一個合規的EPUB包裝必需滿足以下領域需求:
必需包含唯一的包裝文件,其內容必需符合定義在內容文件—內容適用性中的需求。
所有與包裝相關的出版品資源必需列於包裝文件(定義於宣告)。
必需包含一或多個EPUB內容文件,個別內容必需符合定義於 [ContentDocs32] 中的需求。
可以包含零或多個CSS樣式表,個別內容必需符合定義於CSS樣式表—內容適用性 [ContentDocs32] 中的需求。
可以包含零或多個PLS文件,個別內容必需符合定義在PLS文件—內容適用性 [ContentDocs32] 中的需求。
可以包含零或多個媒體層疊文件,個別內容必需符合定義在 [MediaOverlays32] 中的需求。
EPUB閱讀系統必需滿足以下領域需求:
必需以定義於包裝文件—閱讀系統適用性的方式處理包裝文件,且尊重所有使用包裝文件所表述的呈現邏輯(例如,閱讀順序,回退鏈,行頁方向與固定版面)。
處理包裝時不得使用任何未列於包裝文件外的資源(例如,META-INF
中的檔案( [OCF32] )或者專屬於該EPUB出版品中其他內容釋義的資源。)
本章節為非規範性。
包裝文件是一份包含一組元素的XML文件,各元素分別包含EPUB包裝各特殊用途的資訊。這些元素提供了集中的詮釋資料,組成包裝之個別資源的細節,並且提供閱讀順序以及其他必要的資訊來處理內容釋義。
以下列表歸納了能在包裝文件中取得的資訊:
一份包裝文件必需符合以下領域的需求:
必需符合定義在XML適用性 [EPUB32] 中的XML文件規定的適用性要求。
必需符合包裝文件定義中所表達的內容適用性規定。
有些內容適用性可以利用附錄A包裝文件綱要中提供的綱要來驗證內容文件進行檢查。
包裝文件的MIME媒體類別為application/oebps-package+xml
[RFC4839] 。
EPUB閱讀系統必需符合以下領域的需求:
除另有指定,本章節所有定義的 [XML] 元素都在http://www.idpf.org/2007/opf
命名空間 [XML-NAMES] 。
當定義在本章節中的元素有強制性文字內容,該內容在解釋的敘述中會提供元素的參考值。
package
元素package
元素是包裝文件的根元素,並且定義了EPUB包裝的各面向資訊(參考導論以了解概要)。
package
package
元素是包裝文件的根元素。
依此順序:
version
屬性專用於指定EPUB規格版本,決定該EPUB包裝適用哪一版本。該屬性的值必需為「3.0
」才能與本規格版本相容。
unique-identifier
屬性以一個IDREF [XML] 用以對照哪一個提供的dc:identifier
元素為偏好的、或主要的識別碼。請參照出版品識別碼以獲得更多資訊。
metadata
元素metadata
元素涵納了該內容釋義的詮釋資訊。
metadata
為package
必要的第一個子元素。
無
依任何順序:
dc:identifier
[一或多個]
dc:title
[一或多個]
dc:language
[一或多個]
DCMES Optional Elements
[零或多個]
meta
[一或多個]
link
[零或多個]
包裝文件的metadata
元素有兩個主要功能:
提供最小限的詮釋資訊讓閱讀系統能用於內部對EPUB出版品的分類,以及對使用者呈現(例如,在書架上顯示)。
提供存取所有處理用必要詮釋資料的機制,用來控制排版及顯示該內容釋義的內容(例如:固定版面的特性)。
包裝文件並非設計供複雜詮釋資料編碼使用。若需要對一本EPUB出版品提供詳細的資訊,可利用link
元素與詮釋資料記錄(合乎國際標準,例如 [ONIX] 或者各種特殊目的)進行關聯。這種做法讓詮釋資料能以其原生型態被處理,避免在轉譯成最小限包裝文件結構時產生潛在問題或丟失資訊。
為了維持這項理路,包裝文件僅需要以下最小限度的詮釋資料:必需包含 [DC11] title
、identifier
及language
元素加上 [DCTERMS] modified
特性,所有其他的詮釋資料都為選擇性。
meta
元素提供了通用機制來包含各種用語的詮釋資料特性。一般可用來包含定義於EPUB規格中的處理用詮釋資料,但可以用於各種詮釋資料用途。
請見 [EPUBAccessibility] 以了解無障礙輔助性詮釋資料建議。
identifier
元素 [DC11] 的identifier
元素包含與該內容釋義相關的識別碼,例如UUID、DOI或ISBN。
metadata
區塊必需包含一個identifier
元素,包含該內容釋義明確的識別碼。該識別碼必需在package
元素中透過unique-identifier
屬性被標記為獨特識別碼。
每一份內容釋義的獨特識別碼可以不同,且一份內容釋義可以包含額外的identifier元素。
為了區分同一EPUB出版品的不同版本,本規格切分出EPUB出版品用的獨特識別碼,以及發布識別碼用來辨識版本差異。
為了識別包裝後EPUB出版品的版本,發布識別碼可以透過組合獨特識別碼和該內容釋義的最後修改日期來建構。若要了解更多關於發布識別碼的語意以及要求,請參照發布識別碼章節。
無論內容釋義何時更動,都必需包含最新的更動日期。
為了辨別一個identifier
是否適用於既有的系統或者是否獲得發行端的認證,閱讀系統應該檢查identifier-type
特性。
閱讀系統在處理元素的值之前,必需刪除前後的空白 [XML] 。
本規格對於識別碼沒有額外的限制與要求,但必需至少在刪除空白後需要有一個字元長。並且強烈建議識別碼為具完整品質的URI。
title
元素 [DC11] title
元素呈現了給予EPUB出版品的名稱。
dc:title
http://purl.org/dc/elements/1.1/
metadata
必要的子元素。
文字
metadata
區塊必需包含至少一個title
元素,包含EPUB出版品的標題。
閱讀系統必需按照文件順序識別第一個title元素作為該EPUB出版品的主要標題(即為最主要,要顯示給使用者的那一個)。本規格不定義如何處理額外的title
元素。
每一份內容釋義的標題可以不同。
本規格對於標題沒有額外的限制與要求,但必需至少在刪除空白後需要有一個字元長。
language
元素 [DC11] language
元素指定了該內容釋義內容所使用的語言。本質不會由內容釋義中的個別元素所繼承。
metadata
區塊必需包含至少一個language
元素,其值適用於 [BCP47] 。
額外的language
元素可以被包含在多語文出版品中,但各個元素的值必需符合 [BCP47] 。文件中的第一個language
元素被視為該內容釋義的主要語言。
每一份內容釋義的語言可以不同。
除了identifier
、language
與title
外,所有其他 [DC11] 元素都設計為選擇性。這些元素需要符合以下通用定義:
contributor
| coverage
| creator
|
date
| description
| format
|
publisher
| relation
| rights
|
source
| subject
| type
http://purl.org/dc/elements/1.1/
metadata
的選擇性子元素,可重複。
文字
所有選擇性 [DC11] 元素的值,必需至少在刪除空白後需要有一個字元長。
本規格除了以下章節的注意事項外,不變更 [DC11] 元素定義。
contributor
元素 [DC11] 的contributor
元素用於表現一個人、組織或其他名字,作為創造本EPUB出版品內容次要地位的角色。
contributor
元素的要求,無論各種方面與對creator
元素的要求一樣。
creator
元素 [DC11] 的creator
元素用於表現一個人、組織或其他名字,對本內容釋義之內容創作負責。可以附加role
特性到本元素來指出創作者在內容創作中所扮演的功能角色。
creator
元素應該包含作者作為創作者名,用以對使用者顯示。可以添加file-as
特性來包含姓名正規化後的型態,以及alternate-script
特性來呈現創作者以另一種語文或文字的名稱。
如果一本EPUB出版品有多於一位的創作者,每一位都應該以不同的creator
元素包含於其中。
當決定顯示順序時,閱讀系統必需使用文件中metadata
區塊裡creator
元素的順序。第一個creator
元素就是主要創作者。如果一個閱讀系統要顯示創作者詮釋資料給使用者時,若可能,就應該包含所有列於metadata
區塊中的創作者(即為不考量顯示上的限制)。
次要貢獻者應該使用contributor
元素來呈現。
date
元素 [DC11] 的date
元素必需僅用於定義該EPUB出版品的出版日期。出版日期和最後修改日期(該內容釋義的最後修改時間)不一樣。
推薦日期字串符合 [ISO8601] ,尤其是W3C日期與時間格式 [DateTime] 的子集表述,那樣的字串可同時供人類與機器讀取。
額外的日期應該使用 [DCTERMS] 用語集中特化之日期特性或者之類的來表達。
一份EPUB出版品的出版日期在所有副本中可以相同,也可以因為副本而有所不同。(若該EPUB出版品為應需產製)。
僅允許一個date
元素。
subject
元素 [DC11] 的subject
元素用以識別該EPUB出版品的主題。該元素的值應該為人類閱讀用的標題或者標籤,但當主題語不提供分別的描述標籤時,可以為編碼的值。
作者可以使用authority
特性來識別該系統或者綱要中該元素的值。
當綱要被識別時,主題編碼必需使用term
特性來添加。
term
特性不得在沒有指定綱要的狀況下連結在subject
元素中。
subject
元素的值與term
特性在指定的綱要有所需求時,得區分大小寫。
type
元素 [DC11] type
元素用來識別EPUB出版品屬於哪種特化類別(即為,使用EPUB格式的註解或者字典)。
本元素所使用的特化EPUB出版品類別有一參考用的註冊檔,可以由 [TypesRegistry] 取得,但作者可以使用任何文字字串作為值。
meta
元素meta
元素提供用於包含包裝詮釋資料的通用方式。
meta
metadata
元素的子元素,可以重複。
文字
每個meta
元素定義了詮釋資料表述。其property
屬性包含了一個特性資料類別值來定義表述中的宣告,以及該元素的文字內容所代表的聲明(參考詞彙關聯機制以獲得更多資訊)。
本規格定義了兩種詮釋資料表述的類型,可以使用meta
元素進行定義:
meta
元素定義的表述之一,用來建立EPUB出版品的某些面向。沒有refines屬性的meta
元素可被定義為主要表述。meta
元素定義的表述之一,透過refines
屬性用以強化表述的意義或者參照到資源上。一個次要表述可能用以描述一段媒體片段的細節,例如,用以表述長度、透過定義該人物的角色來添加創作者或者貢獻者的表述。次要表述不限於提供主要表述與資源的細節;還可以用於對其他次要表述添加意義,可用於創造資訊鏈。
所有DCMES [DC11] 元素皆用於呈現主要表述,並且允許透過meta元素次要表述來強化。
本規格保留Meta特性用語用於property
的屬性。由其他用語來的術語可以透過提供字首來使用(參考保留的字首以取得不需要宣告的字首清單)。
scheme
屬性定義了系統或者綱要中元素的值來自何處。屬性的值必需為特性資料類型能夠解析到定義該綱要的資源。如果一個閱讀系統不能辨識scheme
的屬性值,其應該將元素的值視為字串。
閱讀系統應該忽略所有他們無法辨識的meta
元素之property
屬性。閱讀系統在遇到未知的表述時不可視為錯誤。
除非一項個別特性明確地定義了一項不同的空白字元正規演算法,閱讀系統在處理meta元素的值前,必需刪除所有開頭與結尾的空白 [XML] 。
每一項meta
元素所表述的值在空白正規化後,必需至少為一字元長。
link
元素link
元素用於讓內容釋義與資源進行關聯,例如詮釋資料記錄。
link
metadata
元素的子元素,可以重複。
href
[必要]
id
[選擇性]
media-type
[視狀況必需]
properties
[選擇性]
refines
[選擇性]
rel
[必要]
空
metadata
元素可以包含零或多個link
元素,每一項都透過必要的href
屬性識別連結資源的所在位置。
連結的資源並非出版品資源,同時也不得列於宣告中。連結的資源可以嵌入於列在宣告裡的出版品資源中,然而,在此狀況下,其必需為核心媒體類型資源 [EPUB32] (例如,一份EPUB內容文件可以包含一份詮釋資料記錄經序列化成 [RDFA-CORE] 或 [JSON-LD] )。
連結的資源可以位於本地或者遠端,但是作者需要注意閱讀系統對於取得遠端資源的支援為選擇性(即為資源可能無法取得)。
media-type
屬性為選擇性,當連結的資源位於EPUB容器之外,而同一個IRI可以提供多於一個的媒體類型。該屬性對所有本地資源皆為必要。
必要的rel
屬性由空格區分的特性值列表來建構內容釋義中的資源相關性。
閱讀系統不需要使用或者顯示連結的資源,就算他們可以透過定義的rel
屬性來識別關係。
media-type
屬性的值不會一直足以用於辨識連結資源的類型(例如,許多基於XML的紀錄格式使用媒體類型"application/xml
")。為了協助閱讀系統來辨識這種一般性的資源,可以properties
屬性來附加語意識別碼。
本規格在EPUB詮釋資料連結用語中,定義了可被識別的保留關係與特性清單。
作者可以透過定義於本規格中的詮釋資料延伸性機制來添加與其他用語集的關係與特性。作者也可以自己定義字首來添加新的值。想了解更多資訊,請參考用語關聯機制。
在連結詮釋資料紀錄的案例中,閱讀系統不得忽略處理包裝文件表達的詮釋資料,以及只使用紀錄中表達的訊息。連結記錄的目的是為了增強提供給閱讀系統的資訊,而包裝的詮釋資料通常只包含重要的顯示用資訊。閱讀系統可以從多個連結記錄中組譯詮釋資料;不必選擇其一。
當要處理包裝文件中表述的詮釋資料和連結詮釋資料紀錄的衝突與不一致時,閱讀系統必需按照link
元素在包裝文件中的順序來建立優先順序(例如,詮釋資料第一個連結的紀錄有最高優先順序,而包裝文件中的詮釋資料則為最低,無論link
元素放置在包裝metadata元素之前、其中或者之後)。
閱讀系統必需忽略任何包含在連結資源中,與EPUB出版品排版及顯示有關的程序。
因為可以被連結到EPUB出版品的詮釋資料紀錄格式與序列多種多樣,令比較詮釋資料特型變得相當複雜,本規格並不要求閱讀系統需處理連結的紀錄。
manifest
元素manifest
元素提供了出版品資源的窮舉清單,用以建構該內容釋義,每一項資源都由一個item
元素所表示。
本規格支援國際化資源名稱,所以參照出版品資源的元素與屬性接受IRI作為其值。為了與僅支援URI的舊版閱讀系統相容,資源名稱需要限制在ASCII字元集。
item
元素item
元素代表了一項出版品資源。
item
manifest
元素的子元素,可以重複。
fallback
[視狀況必需]
href
[必要]
id
[必要]
media-overlay
[選擇性]
media-type
[必要]
properties
[選擇性]
空白
每一個在manifest
裡的item
元素識別了一項出版品資源,於其href
屬性中提供了IRI [RFC3987] 。IRI可以為絕對或者相對。在相對IRI的案例中,閱讀系統必需將包裝文件的IRI所在位置視為根路徑來解析為絕對IRI。這使得絕對路徑的IRI在manifest
範圍中必需為唯一。
所有的出版品資源必需在manifest
中被參照,不分本地或者遠端資源。請參考出版品資源位置 [EPUB32] 以了解特別媒體類型資源位置的需求。
請注意manifest
非自我參照:不得包含一個item
元素參照到包裝文件自身。
由item
元素識別的出版品資源必需符合由其media-type
屬性所提供的MIME媒體類型所適用之規格。核心媒體類型資源必需使用支援的媒體類別 [EPUB32] 中列出的媒體類別。
fallback
屬性透過item
元素的IDREF [XML] 來辨識可回退到的出版品資源。核心媒體類型資源可以適用回退。(例如為有腳本的內容文件提供靜態的替代內容)。外圍資源的回退需求定義在宣告回退中。
本規格保留的EPUB宣告特性用語供properties
屬性使用。由其他用語集來的術語可以在添加字首的狀況下使用(請參考保留的字首以取得不需要宣告的字首清單)。
作者必需在本屬性中對每個出版品資源宣告所有可適用的描述性詮釋資料特性,這麼一來閱讀系統可以按照這些設定的特性對顯示進行最佳化(關閉某個排版處理或者使用回退)。閱讀系統必需忽視所有無法被辨識的描述性詮釋資料特性。
必需要有一個唯一的item
使用nav
特性宣告為EPUB導覽文件。
media-overlay
屬性使用IDREF [XML] 來識別用以解釋該item
資源的媒體層疊文件。請參考包裝 [MediaOverlays32] 以了解更多資訊。
manifest
中的item
元素順序不重要。內容文件的顯示序列由spine
所提供。
以下範例呈現僅包含核心媒體類型資源的manifest
。
<manifest>
<item id="nav"
href="nav.xhtml"
properties="nav"
media-type="application/xhtml+xml"/>
<item id="intro"
href="intro.xhtml"
media-type="application/xhtml+xml"/>
<item id="c1"
href="chap1.xhtml"
media-type="application/xhtml+xml"/>
<item id="c1-answerkey"
href="chap1-answerkey.xhtml"
media-type="application/xhtml+xml"/>
<item id="c2"
href="chap2.xhtml"
media-type="application/xhtml+xml"/>
<item id="c2-answerkey"
href="chap2-answerkey.xhtml"
media-type="application/xhtml+xml"/>
<item id="c3"
href="chap3.xhtml"
media-type="application/xhtml+xml"/>
<item id="c3-answerkey"
href="chap3-answerkey.xhtml"
media-type="application/xhtml+xml"/>
<item id="notes"
href="notes.xhtml"
media-type="application/xhtml+xml"/>
<item id="cover"
href="./images/cover.svg"
properties="cover-image"
media-type="image/svg+xml"/>
<item id="f1"
href="./images/fig1.jpg"
media-type="image/jpeg"/>
<item id="f2"
href="./images/fig2.jpg"
media-type="image/jpeg"/>
<item id="css"
href="./style/book.css"
media-type="text/css"/>
<item id="pls"
href="./speech/dict.pls"
media-type="application/pls+xml"/>
</manifest>
外圍資源在無法提供固有回退之下,也可以於脈絡中參照(例如,直接來自列於書脊的itemref
元素;來自XHTML內容文件的 [HTML] img
、iframe
以及link
元素;以及來自CSS樣式表中的@import
規則)。但這些狀況都必需提供宣告回退。
宣告回退使用宣告item元素中的fallback
屬性來呈現出版品資源。fallback
屬性的IDREF [XML] 值必需解析到另一項manifest
中的item
。回退item
自身可以指定另一個回退item
,以此類推。
所有ID參照的順序清單可以從某一個項目的fallback
屬性開始,代表了該項目的「回退鍊」。該回退鍊中的資源順序代表了作者希望的回退順序。如果閱讀系統支援回退鍊中的多個出版品資源,可以基於該資源的指定特性選擇其一,不然就應該尊重作者希望的回退順序。如果閱讀系統不支援任何回退鍊中的資源,則必需警告讀者該內容無法被顯示。
回退鍊必需適當地符合以下要求其一:
回退鍊不得包含任何item
元素的循環或者自身參照。使用者端遇到第一個曾被辨識的參照元素時,就必需中止回退鍊。
回退也可以用於為EPUB內容文件的頂層內容文件;閱讀系統可以選擇活用這樣的回退機制以找尋到所給予脈絡中最適宜的內容文件版本。活用這項功能的範例,如提供具備腳本內容的回退 [ContentDocs32] 。
bindings
元素 (不再推薦)bindings
元素定義了一系列對本規格不支援媒體類型的處理程序。不再推薦使用。
請參考 [Publications301] 了解本元素的更多資訊。
spine
元素spine
元素定義了宣告中item
參照的排序清單,表達該內容釋義的預設閱讀順序。
閱讀系統必需提供方法來按照定義在spine
中的順序處理排列內容釋義版面,包括:1)辨識第一個主要itemref
做為預設閱讀順序的開始,以及2)按照spine
給出的順序接續第一個項目處理排版。
所有透過超連結到列於spine
中出版品資源的出版品資源必需列於spine
之中,超連結定義為任何會引導使用者從現在資源中跳出的連結機制。一般的超連結機制包含 [HTML] 中a
以及area
元素和腳本化連結(例如使用DOM事件及/或form元素)的href屬性。對列出超連結資源的需求可遞迴適用(即為,所有的出版品資源連結到的出版品資源都需要被列出,以此類推)。
所有EPUB導覽文件超連結到的出版品資源也必需要列於spine
,無論導覽文件自身是否被列於spine
。
透過超連結參照的遠端資源並非出版品資源,所以不是需要包含於書脊的需求中的對象(例如網頁與資源)。
嵌入出版品資源(例如,透過 [HTML] iframe
元素)不需要列於spine
中。
page-progression-direction
屬性設定了全域的內容行進方向。可接受的值為ltr
(左向右)、rtl
(右向左)以及default
。當辨識為default
時,代表作者沒有偏好,所以閱讀系統可以選擇排版方向。default
值必需假設該屬性沒有指定。於此狀況下,閱讀系統應該基於第一個language
元素,挑選一個預設的page-progression-direction
。
因為page-progression-direction
屬性設定了全域的行進方向,個別以及部分內容文件可以複寫該項設定(例如透過CSS writing-mode
特性)。閱讀系統可以提供機制以覆蓋預設方向(例如,透過按鍵或者設定來允許套用替代樣式表)。
閱讀系統必需忽略pre-paginated
的XHTML內容文件的行頁方向。page-progression-direction
屬性定義了固定版面頁面到下一頁的行進方向。
itemref
元素spine
的itemref
子元素表示出版品資源的順序清單(一般為EPUB內容文件)。itemref元素的順序定義了該內容釋義預設的閱讀順序。
itemref
spine
元素的子元素,可以重複。
id
[選擇性]
idref
[必要]
linear
[選擇性]
properties
[選擇性]
空白
每一個itemref
元素必需參照宣告中的獨特item
,其ID [XML] 需要與其idref
屬性的IDREF [XML] 一致。(即是,不能有兩個或以上的idref
元素參照相同的item
)。
每一個被參照的宣告item
必需同時為a)一個EPUB內容文件或者b)另一種類型的出版品資源,其無論是否為核心媒體類型資源或者外圍資源,都必需在其回退鍊中包含一個EPUB內容文件。
linear
屬性指示是否參照的item
包含建構主要閱讀順序的內容,以及是否要被依序閱讀(「yes
」),或者為用來增強補添主要內容的輔助內容,並且可以在序列之外被存取「"no
」)。輔助內容範例包括:注意事項、解說以及答案表等。
linear
屬性讓閱讀系統得以分別內容是否為預設閱讀順序中使用者需要存取的一部分,或者可能是補充用內容,例如,顯示一個跳出視窗或者從聲音處理中跳過。
當處理一本EPUB出版品時,閱讀系統可以跳過非linear的內容,而不會出現在預設閱讀順序,也可以忽視linear
屬性,讓使用者接觸整本EPUB出版品的全部內容。本規格不強制規定閱讀系統需使用何種模型。閱讀系統也可以提供選項,讓使用者於兩種模型間切換。
每一份內容釋義都必需包含至少一個itemref
,其linear
屬性的值為未標示或者明確指定為「yes
」,一個沒有linear
屬性的linear
可推斷其值為「yes
」。
作者必需提供存取所有非線性內容的方法(例如,內容內加入超連結或者透過EPUB導覽文件)。
本規格保留EPUB書脊特性用語供properties
屬性使用。由其他用語來的術語可以在添加字首的狀況下使用(請參考保留的字首以取得不需要宣告的字首清單)。
所有定義於書脊特性用語中,適用的描述性詮釋資料特性應該被宣告。
閱讀系統必需忽視所有在properties
屬性中表述,無法辨識的詮釋資料特性。
collection
元素collection
元素定義了一組相關的資源。
collection
package
選擇性的第六個元素,可以重複。
依此順序:metadata
[零或一個]
, ( collection
[一或多個]
或 ( collection
[零或多個]
, link
[一或多個]
))
collection
元素能夠將資源組成邏輯上的群組供各種潛在用途使用:讓被切分為多個EPUB內容文件的內容重組為一個有意義的單元(例如跨多文件的索引)、識別供特殊目的使用的資源(例如預覽內容),或者將資源組合在一起來表示該內容釋義的附加資訊。
collection
元素,如本章節定義,呈現一個通用的框架來取得特化的內容(例如,透過EPUB子規格)。這些特化的內容必需在內容釋義中定義collection
元素的目的,也得在製作與使用上符合需求(特別是不同於以下所列通用框架的規則)。
每一個特化的內容都必需定義一個角色值,在所有適用的collection
元素中為唯一識別。包裝文件中每一個collection
元素的角色必需在其role
屬性中被指定,其值必需為一或多個NMTOKENs [XMLSCHEMA-2] 及/或絕對IRIs [RFC3987] 。為角色所保留的NMTOKEN的值並未定義在EPUB中,而由 [RoleRegistry] 所維護。未定義在其中的NMTOKEN值不合規,本章節不定義任何角色。
第三方可以為collection
元素定義客製化角色,但這些角色必需使用絕對IRIs來指定。客製化角色不得在其指定IRI的託管方元件(host component)中包含字串「idpf.org
」。
為了協助跨閱讀系統的客製化角色互通性,強烈鼓勵實作者在將實際使用collection
元素的狀況登記於 [RoleExtensions] 。
作為collection的選擇性子元素metadata
爲包裝metadata
元素的挪用,唯需遵循以下語法與語意的差異:
所有詮釋資料預設不為強制。
包裝層級對詮釋資料元素的限制可以被覆蓋。
所有主要詮釋資料表述適用於collection
。
refines
屬性不得參照不在該collection
內的元素。
不得包括OPF2 meta
元素。
collection
可以透過包含一或多個子collection
元素來定義子集合。
collection
的link
子元素為詮釋資料link
元素的挪用,唯需遵循以下語法與語意的差異:
rel
屬性為選擇性。
properties
屬性也接受沒有字首的宣告item
特性(即為,如此集合中可以宣告自己的導覽文件或者封面圖片)。
不得附加refines
屬性。
每一個link
元素必需參照到屬於該群組的資源。link
元素的順序不具重要意義。
collection
元素的特化可以透過定義於以上的需求來更有效地調整,以反映其需求(例如,要求詮釋資料、對於元素與屬性的使用賦予進一步的限制,或者讓link元素的順序更為明顯)。然而,最終的內容模型必需為合乎規定的本章節定義子集之一(例如特化不可以提出新的元素或者屬性,或者重新提出前面禁止使用的元素)。特化不得定義集合來覆蓋manifest
與spine
的需求。
在本規格的脈絡下,閱讀系統對集合的支援為選擇性。閱讀系統必需在無法辨識所定義角色的狀況下忽略該collection
元素。
處理內容釋義時不得依賴對collection
元素的辨識。內容必需在沒有資訊丟失或者其他明顯瑕疵的狀況下,能被使用者所閱讀。
meta
元素meta
元素 [OPF2] 是一個遺存功能,之前用來包含通用性詮釋資料的手段。在EPUB 3中被更新的meta
元素所取代,使用不同的屬性也要求文字內容。
若要了解更多關於meta
元素,請參考 [OPF2] 中的定義。
guide
元素guide
元素 [OPF2] 是一個遺存功能,之前為EPUB出版品提供機器可處理的關鍵結構導覽。在EPUB 3中被導覽文件的landmarks所取代。
若要了解更多關於guide
元素,請參考 [OPF2] 中的定義。
NCX [OPF2] 是一個遺存功能,之前為EPUB出版品提供目次。在EPUB 3中被導覽文件所取代。
若要了解更多關於NCX,請參考 [OPF2] 中的定義。
作者有必要在包裝文件的詮釋資料中包含一個主要識別碼,每一本EPUB出版品都需要獨特的識別碼。獨特識別碼,無論是自己挑選或者派發,都必需保存在dc:identifier
元素中,並且在package
元素的unique-identifier
屬性中被參照為獨特識別碼。
儘管並非固定,一本EPUB出版品的獨特識別碼應該盡可能地不受變更。新的識別碼不應在更新詮釋資料、勘誤、或者其他對EPUB出版品的小修改時發行。
閱讀系統不得依靠獨特識別碼作為辨識EPUB出版品的唯一依據。若要判斷是否兩個擁有同樣獨特識別碼的EPUB出版品是否為同一份出版品(見發布識別碼)還是不同出版品,可能需要檢查其他詮釋資料,如書名或者作者。
EPUB出版品的獨特識別碼一般不應隨著包裝或其內容的小更改而變動,獨特識別碼預期要最大限地持續使用,無論作為參照或者發行使用。但一本EPUB出版品每次發行的新版都需要被識別為獨特的新版本,故此,結論上需要一個可以被信任及可以變更的獨特識別碼。
為了在不變更獨特識別碼的狀況下處理辨識小改版與發行的問題,本規格定義了「發布識別碼(Release Identifier)」的語意,用以作為區別及依序排列具同一獨特識別碼的EPUB出版品之手段。
發布識別碼並非在包裝metadata
區塊中的實際特性,而是從詮釋資料中其他兩個強制性的部分所取得的值:獨特識別碼與內容釋義最後修改日期。當一起取得時,所結合的值可以作為一個獨特識別用以區別EPUB出版品的不同版本。
為確保發布識別碼能被建構,每一個內容釋義都必需包含唯一的 [DCTERMS] modified
特性包含其最後修改日期。該特性的值必需為一個 [XMLSCHEMA-2] 日期時間,適用以下形式:
CCYY-MM-DDThh:mm:ssZ
最後修改日期必需以世界協調時間(UTC)表述,也必需以「Z
」(Zulu)時區識別碼作結。
額外的modified特性可以包含在包裝詮釋資料中,但必需有不同主題(例如,需要透過refines
屬性參照到一個元素或者資源)。
儘管並非包裝詮釋資料的一部分,為了參照或其他用途,所有識別碼的字串表現形式都必需使用at符號(@
)作為區分來建構(例如,以此形式「id@
日期」。當連結字串時,空白不得包含在內。
注意區分符號可以出現在獨特識別碼中,這些識別碼可以為任何字串值。發布識別碼結果上要分解成組成元件時,必需以最後一個at符號來分割。
發布識別碼不能取代獨特識別碼,但能供遞送通路以及閱讀系統用以辨別相同EPUB出版品的不同版本。在不具這樣精確的識別碼知識時,也應用了格式中的時間標記來依序、依時序排列。
發布識別碼結果上允許一組EPUB出版品能被檢驗並且判斷他們是否為同一本出版品的相同版本、或為同一本EPUB出版品的不同版本,或為相似但不同EPUB出版品的組合。
本章節為非規範性。
property
、properties
、rel
及scheme
屬性使用特性資料類型來表達取自詮釋資料用語集的術語。和CURIE [RDFA-CORE] 類似,特性資料類型可以一組IRI [RFC3987] 作為表達的精簡形式,簡化從標準化用語集製作的詮釋資料的程序。
特性值為包含字首以及參照的表述,其字首 — 無論是字面還是隱含 — 是對應到一個IRI的縮寫,通常可解析到一個用語中的術語。當字首轉化到其IRI表述並且與參照結合時,結果可使IRI被正常地解析為用語集中的斷片,其包含該術語之人讀及/或機讀的資訊。
為協助閱讀系統處理特性值,本規格定義了三種機制來建立IRI與字首的對應:
預設用語為不需要宣告字首就可以使用的用語,而其術語必需不加字首。
包裝文件有著多個彼此無相關的詮釋資料術語用法,並不能為所有屬性定義單一的預設用語集。所以,定義了不同的預設用語集供接受特性資料類型的屬性使用,如下所示:
Meta特性用語定義作為meta
property
屬性的預設用語。
若屬性的值不包含字首,則必需要從以下IRI [RFC3987] 主幹中獲得結果IRI:http://idpf.org/epub/vocab/package/meta/#
詮釋資料連結用語定義作為link
rel
以及properties
屬性的預設用語。
若其中任何屬性的值不包含字首,則必需要從以下IRI [RFC3987] 主幹中獲得結果IRI:http://idpf.org/epub/vocab/package/link/#
宣告特性用語定義作為item
properties
屬性的預設用語。
如果其中任何屬性的值不包含字首,則必需要從以下IRI [RFC3987] 主幹中獲得結果IRI:http://idpf.org/epub/vocab/package/item/#
書脊特性用語定義作為itemref
properties
屬性的預設用語。
如果其中任何屬性的值不包含字首,則必須要從以下IRI [RFC3987] 主幹中獲得結果IRI:http://idpf.org/epub/vocab/package/itemref/#
與這些用語連結的IRI們不得使用prefix
屬性指派字首。
本規格保留以下字首組,作者可以用於包裝詮釋資料而不需宣告。
儘管保留字首是為了製作時的便利,依賴他們會造成相容性問題。例如,驗證工具可能經常性地推回新的字首直到更新。強烈建議作者宣告所有字首以避免這些狀況發生。
字首 | IRI |
---|---|
a11y | http://www.idpf.org/epub/vocab/package/a11y/# |
dcterms | http://purl.org/dc/terms/ |
marc | http://id.loc.gov/vocabulary/ |
media | http://www.idpf.org/epub/vocab/overlays/# |
onix | http://www.editeur.org/ONIX/book/codelists/current.html# |
rendition | http://www.idpf.org/vocab/rendition/# |
schema | http://schema.org/ |
xsd | http://www.w3.org/2001/XMLSchema# |
閱讀系統必需以其預定義的URI來解析所有用於包裝文件的保留字首,除非宣告了本地字首。保留字首不應在prefix
屬性中被覆蓋,但閱讀系統必需當遇到這些本地覆蓋時必須套用。
當保留字首有變更時,閱讀系統不會總能同步更新,閱讀系統遇到無法辨識的字首時,不得視為錯誤(即為,既非保留,也未使用prefix
屬性宣告)。
prefix
屬性prefix
屬性定義了本規格未保留附加的字首映射。
prefix
屬性的值是由空白分隔的清單,內有一或多個字首與IRI的映射,以此形式:
prefixes | = |
mapping , { whitespace, { whitespace } , mapping } ; | |
mapping | = |
prefix , ":" , space , { space } , ? xsd:anyURI ? ; | |
prefix | = |
? xsd:NCName ? ; | |
space | = |
#x20 ; | |
whitespace | = |
(#x20 | #x9 | #xD | #xA) ; |
為了避免衝突,prefix
屬性不得宣告映射到預設用語的字首。如果prefix
屬性包含對預定義字首的宣告,閱讀系統必需使用prefix
屬性中的URI映射定義,無論預定義的字首是否映射到相同的URI。
不得宣告「_」字首,該字元已被供未來處理RDFa [RDFA-CORE] 相容性所保留。
為了保障包裝文件未來對替代序列化的相容性,不得以prefix
屬性宣告供都柏林核心集使用的字首 /elements/1.1/namespace [DCTERMS] 。作者必需僅使用准許在包裝文件詮釋資料中使用的DC11] 元素。
property
)資料類別特性資料類型是一個用於表述一個IRI [RFC3987]的精簡的方法,也可透過分號添加選擇性的字首。
property | = |
[ prefix , ":" ] , reference; | |
prefix | = |
? xsd:NCName ? ; | |
reference | = |
? irelative-ref ? ; | /* as defined in [RFC3987] */ |
特性資料類型由定義在 [RDFA-CORE] 的CURIE資料類型延伸,表現為CURIEs的子集。
處理之後,該特性可透過以下IRI擴張:
http://purl.org/dc/terms/modified
dcterms:
字首為保留字首映射到IRI "http://purl.org/dc/terms/
"。
當一個字首在特性值中被忽略,所表達的參照代表了來自預設用語供該屬性使用的術語。
空白字串不表示合規的特性值,就算合乎以上定義亦然。
閱讀系統必需遵循以下規則來從特性中建立IRI [RFC3987] :
如果特性僅包含參照,IRI透過連結其IRI主幹讓預設用語與參照產生關聯。
如果特性包含一個字首和參照,IRI透過連結其IRI主幹讓字首與參照產生關聯。如果沒有對應的字首被定義,該特性為不合規,必需被忽視。
結果得到的IRI必需合乎 [RFC3987] 。然而,閱讀系統不需解析該IRI。
本章節為非規範性。
並非所有的顯示資訊都能透過EPUB建立時所依靠的技術。例如,儘管HTML與CSS提供了強大的排版能力,但這些能力受到文件排版目標的限制。
本章節定義了一般目的的特性,允許作者表示包裝層級的顯示意圖(例如,僅能由EPUB閱讀系統所實作的功能)。如果閱讀系統支援所期望的顯示效果,這些特性可讓使用者看到作者理想上設計的內容。
這些特性所參照的基礎IRI為:http://www.idpf.org/vocab/rendition/#
。
「rendition:
」字首為了包裝顯示特性而保留,不需於包裝文件中宣告。
rendition:flow
特性rendition:flow
特性指定作者的偏好,讓閱讀系統知道該怎麼處理內容流動。
當rendition:flow
特性在meta
元素中指定時,其指出作者偏好對全域內容進行流動處理(如,對所有書脊項目)。作者可以指示偏好為動態分頁或者捲軸顯示。對捲軸顯示內容,也可以指示是否連續的EPUB內容文件要被一起排版作為連續顯示的捲軸,或者該被分別排版顯示(例如,中間有著動態分頁)。
如果閱讀系統支援指定的排版顯示,其應該使用該方式處理流動內容,但可以提供選項讓使用者覆蓋所要求的排版方式。
當在metadata
區塊中,沒有meta
元素包含本特性時,閱讀系統必需推測預設值auto
為全域值。閱讀系統可以僅支援此預設值。
如果閱讀系統支援rendition:layout
特性,則在一個書脊項目被指定rendition:layout
值為pre-paginated
時,必需忽略rendition:flow
特性。
請注意當兩個可重排的EPUB內容文件依序出現在書脊時,預設對其 [HTML] body
元素的排版處理須為一致,當遇到page-break-before
[CSSSnapshot] 特性時,必須被設定為always
。此外,在使用rendition:flow
特性時,作者可以透過合適的樣式表宣告覆蓋其特性,只要閱讀系統支援這樣的覆蓋。
rendition:flow
不得被宣告超過一次。
以下值定義可供rendition:flow
特性使用:
作者可以對書脊itemref
元素個別指定以下特性來讓書脊項目覆蓋全域值:
每一個書脊項目都僅允許使用一個特性覆蓋。
對rendition:flow-scrolled-continuous
特性,捲軸方向定義關聯在itemref
元素所參照的XHTML內容文件之根元素之區塊流動方向。如果當區塊流動方向向下(由上而下),捲軸方向就為垂直。如果根元素的區塊流動方向是向右(由左而右)或者向左(由右而左),就為水平。
rendition:align-x-center
特性rendition:align-x-center
特性指定了該書脊項目在顯示範圍中或者跨頁時,應該要被水平置中。
當rendition:align-x-center
特性在書脊項目中設定時,其指出了,若可以適用,內容排版在顯示範圍(Viewport)或者跨頁應該被水平置中。本項特性並不影響書脊項目的排版,僅影響內容盒中的位置。
對可重排的內容而言,閱讀系統支援這項特性則必需讓每一個虛擬頁面都置中。
本版規格未定義當本特性不受支援,或未指定時預設的排版行為。閱讀系統可以以自己的設計排列處理書脊項目。
本特性開發主要用於處理"Naka-Tobira (中扉)"(章節標題頁),因為內容排版缺乏可靠置中控制項。CSS對分頁媒體的支援仍在進步,所以,本特性預期會不再支援。鼓勵作者在可以使用CSS方案處理時改用。
本章節為非規範性。
EPUB文件,不像印刷書或者PDF檔案,是為了變動而設計。內容流動或者可重排以適應螢幕或者使用者需求。如同排版與CSS的注意事項「內容呈現要適應讀者,而不是讓讀者得要適應特別的內容呈現。」 [EPUB3Overview]
但本原則不適用於所有類型的文件。有時候內容與設計彼此交纏而無法切分。任何對外觀的變更都可能改變意義或者失去所有意義。固定版面文件提供作者對呈現上更大的控制權,尤其在重排EPUB不適合該內容時。
本章節定義了一組詮釋資料特性,在EPUB脈絡下,允許宣告性表述固定版面文件的預期排版處理行為。
EPUB 3具備顯示固定版面內容的多重機制。當固定版面內容有必要時,作者對機制的選擇將取決於多種要素,包括希望的精準程度、檔案大小、無障礙功能等。本章節不試圖對作者如何做選擇做出指導。
rendition:layout
特性rendition:layout
特性指定了該內容釋義為重排或者預先分頁。
當rendition:layout
特性在meta
元素中指定時,其指示了整個內容釋義該為分頁或者重排版面形式(即套用於所有書脊項目)。
當在metadata
區塊中沒有meta
元素具備這項特性時,EPUB閱讀系統必需推測為預設值reflowable
並套用到全域。
當rendition:layout
特性設定為pre-paginated
時,閱讀系統不得在排版同步跨頁中加入調整內容的空白隙縫。
當書脊項目的值設定為pre-paginated
時,其內容空間必需被設定如固定版面的定義 [ContentDocs32] 。
rendition:layout
特性不得被宣告多於一次。
以下值被定義供rendition:layout
特性使用:
該內容釋義不是預先分頁。閱讀系統可以在排版處理時套用動態分頁。
該內容釋義為預先分頁。閱讀系統必需在排版處理時將每一個書脊itemref
處理成正好一頁。
閱讀系統一般限制或者拒絕套用使用者或者使用者代理樣式表到預先分頁的文件上,所以,這樣的文件得依靠固有特性,動態樣式變更極容易造成非預期的結果。作者選擇使用預先分頁來取代重排內容時,需要對這樣限制造成的使用性以及無障礙輔助性的負面結果做出考量。請參考指南1.4 — 提供文字組態 [UAAG20] 以獲得相關資訊。
作者可以對書脊itemref
元素個別指定以下特性來覆蓋書脊項目的全域值:
一個書脊項目僅允許套用其中一個覆蓋。
rendition:orientation
特性rendition:orientation
特性指定作者希望該內容釋義排版時的頁面方向。
當在meta
元素中指定了rendition:orientation
特性時,其指定的方向套用到內容釋義全域(即為,所有書脊項目)。
當在metadata
區塊中沒有meta
元素指定本特性時,閱讀系統必需推測為預設值auto
,並設定為全域值。
rendition:orientation
特性不得宣告多於一次。
以下值被定義供rendition:orientation
特性使用:
該內容釋義指示排版成landscape(橫寬直窄)。
該內容釋義指示排版成portrait(橫窄直寬)。
該內容釋義不指定方向。
支持多重頁面方向的閱讀系統應該傳達作者意圖表現的頁面方向給使用者,除非給出的值為auto
。意味由實作機制來判斷其想傳達的意圖。
作者可以對書脊itemref
元素個別指定以下特性來覆蓋書脊項目的全域值:
一個書脊項目僅允許套用其中一個覆蓋。
rendition:spread
特性rendition:spread
特性指示該內容釋義在閱讀系統同步跨頁行為的意圖。
當rendition:spread
指定於meta
元素時,其指定了套用內容釋義全域的同步跨頁行為的意圖(即為,所有書脊項目)。
當在metadata
區塊中沒有meta
元素指定本特性時,閱讀系統必需由推測為預設值auto
,並設定為全域值。
rendition:spread
特性不得宣告多於一次。
以下值被定義供rendition:spread
特性使用:
閱讀系統不得對包含的書脊項目做同步跨頁。
閱讀系統只有在裝置為landscape(橫寬直窄)方向時,應該對書脊項目以同步跨頁呈現。
不再推薦僅於portrait(橫窄直寬)方向時跨頁。
建議作者使用「both
」值取代,如此跨頁不僅在portrait方向時可以讀,在landscape時也可讀。閱讀系統應該將「portrait
」值視為「both
」的同義詞,無論方向都創造跨頁。
閱讀系統應該不管裝置方向都排版成同步跨頁。
不指定明確的同步跨頁行為。閱讀系統可以在指定或所有裝置方向使用同步跨頁,作為內容顯示區域最佳化利用的處理程序。
當同步跨頁用於HTML及SVG內容文件的脈絡時,透過viewport
meta
元素 [ContentDocs32] 以及viewBox
屬性 [ContentDocs32] 提供的空間代表跨頁中一頁的尺寸,應予尊重。
請參考書脊以獲得關於全域流動方向宣告的資訊,包括使用page-progression-direction屬性,以及在內容文件中指定個別page-progression-direction
。
作者可以對書脊itemref
元素個別指定以下特性來覆蓋書脊項目的全域值:
spread-portrait
特性不再推薦。請參考 [Publications301] 之定義以獲得更多資訊。一個書脊項目僅允許套用其中一種覆蓋。
rendition:page-spread-*
特性當閱讀系統進行同步跨頁排版時,預設行為是填充跨頁,透過將次一個EPUB內容文件排版放置到次一個未被填充的顯示範圍中。下一個可用的顯示範圍的位置取決於其行頁方向或者內容文件給予的個別宣告。作者可以覆蓋此項自動填充行為,透過在書脊itemref
元素指定以下特性之一,以強制文件被置放在特定的顯示範圍中。
rendition:page-spread-center
rendition:page-spread-center
特性指定強制將內容文件置放於一個同步跨頁中。rendition:page-spread-left
rendition:page-spread-left
特性為page-spread-left
特性的捷徑。rendition:page-spread-right
rendition:page-spread-right
特性為page-spread-right
特性的捷徑。rendition:page-spread-left
特性指出該書脊項目應該被排版置放於跨頁的左手邊空格,以及rendition:page-spread-right
應該被排版置放於右手邊空格。rendition:page-spread-center
特性指出同步跨頁模式應該被覆蓋,而以單一顯示範圍處理白板並置放於螢幕的中央。
rendition:page-spread-left
、rendition:page-spread-right
以及rendition:page-spread-center
特性適用於預先分頁與重排內容兩方,都只適用在閱讀系統創建同步跨頁時。
rendition:page-spread-*
特性無論XHTML內容文件中page-break-before
特性 [CSSSnapshot] 的值為何,都優先其處理。
rendition:page-spread-center
並不改變顯示範圍的尺寸比例。進一步說明,其並非在製作整個跨頁所建構的顯示範圍。這相當重要,因為可以讓一般頁面與置中頁面的縮放比例能夠保持恆定。
當重排的書脊項目跟隨在預先分頁的後面,同時缺少一個rendition:page-spread-*
的特性值時,重排項目應該由下一頁開始(如page-progression-direction
定義)。如果重排的書脊項目有一個rendition:page-spread-*
,則必需要被尊重(例如,在之間插入一個空白頁面)。
同樣的,當預先分頁的書脊項目跟在重排的後面,同時缺少一個rendition:page-spread-*
的特性值時,預先分頁項目應該由下一頁開始(如page-progression-direction
定義)。如果預先分頁書脊項目有一個rendition:page-spread-*
,則必需要被尊重(例如,插入一個空白頁面)。
儘管作者經常會指定裝置在特定的方向才跨頁,內容自身不呈現為真正的跨頁(例如,兩個接續的頁面需要被接連不分開地排版才能被閱讀,例如跨頁的地圖)。要指示兩個連續頁面顯示為真正的跨頁,作者應該使用rendition:page-spread-left
及rendition:page-spread-right
特性於鄰接的書脊項目中,並且忽略書脊項目的特性令單頁或雙頁呈現都同等能被接受。當閱讀系統遇到兩個書脊項目顯示為真正跨頁時,其應該創造中間沒有空白調整頁的跨頁。
只有一個page-spread-*
特性能在書脊項目中宣告。
rendition:page-spread-left
和rendition:page-spread-right
是對page-spread-left
和spread-right
特性的捷徑。其允許使用單一用語供所有固定版面特性。作者可以使用兩種特性組合,但是較舊的閱讀系統可能只認得無字首的版本。EPUB書脊特性與會不再延伸供包裝顯示詮釋資料使用,所以無字首的page-spread-center
不存在。
rendition:viewport
特性(不再推薦)rendition:viewport
特性讓作者能為rendition:layout
設定為pre-paginated
的XHTML及SVG內容文件表達CSS初始容器區塊(initial containing block, ICB) [CSS21] 。
不再推薦使用本特性,請參考其在 [Publications301] 的定義以獲得更多資訊。
一個供內容文件使用的非規範綱要(schema)可由此取得:https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/package-30.nvdl。
使用此綱要進行驗證,需要支援 [NVDL] 、 [RelaxNG-Schema] 、 [ISOSchematron] 及 [XMLSCHEMA-2] 的處理器。
NVDL綱要層可以被multi-pass驗證取代,而僅使用嵌入的RELAX NG以及ISO Schematron綱要。
這些綱要可能會在本規格正式改版外更新及更正。結論上來說,它們會隨時都可能更動。
application/oebps-package+xml
媒體類型本章節為非規範性。
本附錄為EPUB包裝文件註冊了媒體類型application/oebps-package+xml
。本註冊取代了 [RFC4839] 。
包裝文件是一個XML檔案,用來說明一本EPUB出版品的內容釋義。其定義了內容釋義中的資源並且提供詮釋資料資訊。包裝文件與其相關的規格由W3C的EPUB 3社群小組所維護並且定義。
application
oebps-package+xml
無。
無。
包裝文件為使用UTF-8或UTF-16編碼的XML。
包裝文件包含符合於XML 1.0規格的架構完整之XML。
進一步說明,有可能製作出惡意檔案,例如,包含形式不完整的資料。大多數XML解析器可以透過對適用性的嚴格檢查來保護自身免於這樣的攻擊。
所有讀取包裝文件的處理器應該嚴格地檢查其檔案大小並且驗證所取得的資料。
EPUB包裝3.2規格中,包裝文件格式目前沒有提供加密、簽署以及驗證的描述檔。
無。
本媒體類型註冊供EPUB包裝文件使用,如EPUB包裝3.2規格中所敘述,位於http://w3c.github.io/epub-specs/archive/epub32/spec/epub-packages.html。
EPUB包裝3.2規格取代Open Packaging Format 2.0.1規格,其位於http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm,其也使用application/oepbs-package+xml
媒體類型。
該媒體類型廣泛應用於EPUB格式電子書的遞送。以下應用程式列表並非窮舉。
Adobe Digital Editions
Aldiko
Azardi
Apple iBooks
Barnes & Noble Nook
Bluefire Reader
Calibre
Google Play Books
Kobo
Microsoft Edge
Readium
無
.opf
TEXT
連結綱要的註冊由http://www.idpf.org/epub/linking/
所維護。這些綱要定義的客製化斷片識別碼可解析到application/oebps-package+xml
文件。
public-epub3@w3.org
COMMON
發布的規格是World Wide Web Consortium之EPUB 3社群小組的成果產品。W3C對本規格有變更的管控權。
本章節為非規範性。
本用語中的特性可用於meta
元素的property
屬性。
沒有字首的特性可以使用基礎IRI做為參照http://idpf.org/epub/vocab/package/meta/#
。
meta
特性以下表格定義了供meta
元素的property
屬性使用的特性。
除非在其「延伸」區塊有特別指出,定義在此章節的特性用於定義子表意:換句話說,一個有定義在此區塊特性的meta
元素必需包含一個refines
屬性以參照到一個資源,或者想要附加的表述。
在每一個特性定義中,准許的值區塊指出值的預期類型(使用 [XMLSCHEMA-2] 資料類型),基數區塊指出該特性可以附加到另一個特性的次數,以及延伸區塊指出可以附加到哪些特性上。
名稱: |
alternate-script
|
---|---|
說明: |
此特性一般為了國際化目的而附加在 |
允許的值: |
xsd:string
|
基數: |
零或多個
|
延伸: | 所有特性。 |
名稱: |
belongs-to-collection
|
---|---|
說明: |
也可以鍊結到其他使用 為准許閱讀系統組織集合並且避免命名衝突(例如,不相關的集合分享同一個類似的名稱,或者發布一個集合的不同版本)。其識別碼應該提供用於識別集合副本的獨特性。 集合可以更精準地透過附加一個 EPUB出版品在集合中的位置可以透過提供附加的 |
允許的值: |
xsd:string
|
基數: |
零或多個
|
延伸: | 套用到該EPUB出版品,並且可以精緻化自身的其他副本。 |
名稱: |
collection-type
|
---|---|
說明: |
當 當沒有指定綱要時,閱讀系統應該辨識以下集合類型值:
|
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: |
belongs-to-collection
|
名稱: |
display-seq
|
---|---|
說明: |
此特性僅適用於處理尚未被定義的重要規則(例如定義創作者在文件順序中出現的前後)。 |
允許的值: |
xsd:unsignedInt
|
基數: |
零或一
|
延伸: | 所有特性。 |
名稱: |
file-as
|
---|---|
說明: | file-as 特性提供標準化形式以對相關的特性進行分類。 |
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: | 所有特性。 |
名稱: |
group-position
|
---|---|
說明: |
一本EPUB出版品可以屬於多於一個的群組。 |
允許的值: | 單一xsd:unsignedInt 或者一系列由小數點分隔的數字(例如1 或2.2.1 )。 |
基數: |
零或一
|
延伸: | 所有特性。 |
名稱: |
identifier-type
|
---|---|
說明: |
當 |
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: |
identifier , source
|
名稱: |
meta-auth
|
---|---|
說明: |
不再推薦使用 |
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: | 所有特性。 |
名稱: |
role
|
---|---|
說明: |
當 |
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: |
contributor , creator
|
名稱: |
source-of
|
---|---|
說明: |
本規格定義了 |
允許的值: |
pagination
|
基數: |
零或一
|
延伸: |
dc:source
|
請參照 [EPUBAccessibilityTechniques] 以取得如何提供無障礙頁面導覽的資訊。
名稱 |
term
|
---|---|
說明: |
|
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: |
subject
|
名稱 |
title-type
|
---|---|
說明: |
當 |
允許的值: |
xsd:string
|
基數: |
零或一
|
延伸: |
title
|
本章節為非規範性。
本用語中的特性可用於詮釋資料link
元素的rel
及properties
屬性。
沒有字首的連結特性可以使用基礎IRI做為參照http://idpf.org/epub/vocab/package/link/#
。
以下值可供link
元素的rel
屬性使用,以建立在href
屬性中參照資源的關係。
名稱 |
acquire
|
---|---|
說明: | 關鍵字acquire 用於EPUB預覽以辨識何處可以取得完整版本的EPUB出版品。 |
基數: |
零或多
|
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: |
<link rel="acquire" href="http://example.org/book/9781448103706"
media-type="text/html"/>
|
名稱 |
alternate
|
---|---|
說明: |
關鍵字
|
基數: |
零或多
|
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: |
<link rel="alternate" href="package.json"
media-type="application/json-ld"/>
|
名稱 |
marc21xml-record
|
---|---|
說明: | 不再推薦使用關鍵字marc21xml-record 。其由關鍵字record 取代,在media-type 屬性 [Packages] 中的值為「application/marcxml+xml 」。 |
基數: | 零或一 |
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: | <link rel="marc21xml-record" href="pub/meta/nor-wood-marc21.xml"/> |
名稱 |
mods-record
|
---|---|
說明: | 不再推薦使用關鍵字mods-record 。其由關鍵字record 取代,在media-type 屬性 [Packages] 中的值為「application/mods+xml 」。 |
基數: | 零或一 |
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: | <link rel="mods-record" href="pub/meta/nor-wood-mods.xml"/> |
名稱 |
onix-record
|
---|---|
說明: | 不再推薦使用關鍵字onix-record 。其由關鍵字record 取代,在特性屬性 [Packages] 的值為onix 。 |
基數: | 零或一 |
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: | <link rel="onix-record" href="pub/meta/nor-wood-onix.xml"/> |
名稱 |
record
|
---|---|
說明: |
指示所參照的資源為一個詮釋資料紀錄。 當指定此關鍵字時,紀錄的媒體類別可透過 在EPUB連結詮釋資料指南中,有一份常見連結詮釋資料紀錄類別的清單。 如果紀錄的類型無法從其媒體類型確認時,可以在 |
基數: |
零或多
|
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: |
<link rel="record" href="book/52.atom"
media-type="application/atom+xml;type=entry;profile=opds-catalog"/>
|
名稱 |
voicing
|
---|---|
說明: |
指示參照的聲音檔案提供了表達或者資源的口語呈現(一般來說,作者或者書名),透過refines屬性指定。 當指定該關鍵字時,該聲音檔案的媒體類別透過 |
基數: |
零或多
|
延伸: | 所有特性。當使用此值時,必需要有refines 屬性。 |
範例: |
<link refines="#title" rel="voicing" media-type="audio/mpeg" href="title.mp3" />
|
名稱 |
xml-signature
|
---|---|
說明: | 不再推薦使用關鍵字xml-signature 。也並未被其他連結方法所取代。識別XML簽名的方法將在未來版本的EPUB中描述。 |
基數: | 零或多 |
延伸: | 所有特性。 |
範例: | <link refines="#meta-authority-01" rel="xml-signature" href="../META-INF/signatures.xml#MAI-Signature"/> |
名稱 |
xmp-record
|
---|---|
說明: | 不再推薦使用關鍵字xmp-record 。其由關鍵字record 取代,在特性屬性中的值為xmp 。 |
基數: | 零或一 |
延伸: | 僅適用於EPUB出版品或者集合。當有refines 屬性時不得使用。 |
範例: | <link rel="xmp-record" href="pub/meta/nor-wood-xmp.xml"/> |
以下值可用於link
元素的properties
屬性,以建立參照資源所表達的紀錄之類型。這些供紀錄格式所提供的值,不能由其媒體類別被識別為獨特。
名稱 |
onix
|
---|---|
說明: | onix 特性指出所參照的資源為一個ONIX紀錄 [ONIX] 。 |
範例: |
<link rel="record" href="pub/meta/nor-wood-onix.xml" media-type="application/xml"
properties="onix"/>
|
名稱 |
xmp
|
---|---|
說明: | xmp 特性指出所參照的資源為一個XMP紀錄 [XMP] 。 |
範例: |
<link rel="record" href="pub/meta/nor-wood-xmp.xml" media-type="application/xml"
properties="xmp"/>
|
本章節為非規範性。
本用語中的特性可用於宣告中item
元素的properties
屬性。
沒有字首的特性可以使用基礎IRI做為參照http://idpf.org/epub/vocab/package/item/#
。
item
特性以下表格定義了供manifest
中item元素的properties屬性能使用的特性。
適用欄指出出版品資源類型可以被指定這些特性,基數欄指出在整個包裝文件範圍內,該特性必需在整份包裝文件中出現的次數,以及用法欄指出使用狀態。
名稱 |
cover-image
|
---|---|
說明: | cover-image 特性指示該出版品資源為出版品的封面圖片。 |
適用: | 所有點陣以及向量圖片類型 [EPUB32] |
基數: |
零或一
|
用法: | 選擇性。 |
名稱 |
mathml
|
---|---|
說明: | mathml 特性指示該出版品資源包含一或多個MathML標記副本。 |
適用: | EPUB內容文件 |
基數: |
零或多
|
用法: | 僅在符合說明中提及的狀況時,必需指定。 |
名稱 |
remote-resources
|
---|---|
說明: |
|
適用: | 所有能夠做內部參照的出版品資源(例如,XHTML內容文件、SVG內容文件、CSS樣式表以及媒體層疊文件)。 |
基數: |
零或多
|
用法: | 僅在符合說明中提及的狀況時,必需指定。 |
名稱 |
scripted
|
---|---|
說明: | scripted 特性指示了該出版品資源為有腳本的內容文件(例如,包含腳本內容及/或HTML表單元素)。 |
適用: | EPUB內容文件 |
基數: |
零或多
|
用法: | 僅在符合說明中提及的狀況時,必需指定。 |
名稱 |
svg
|
---|---|
說明: |
當SVG標記直接包含在資源中時,該特性必需被設定,當SVG由該資源參照(例如,使用 [HTML] |
適用: | XHTML內容文件;該值已隱含在SVG內容文件中。 |
基數: |
零或多
|
用法: | 僅在符合說明中提及的狀況時,必需指定。 |
當一個item
所參照的資源符合相關定義時,mathml
、remote-resources
及scripted
特性必需要被指定。這些特性不遞迴適用包含在資源中的內容(例如,透過HTML iframe
元素)。例如,如果一個沒有腳本的XHTML內容文件嵌入了一個腳本內容文件,只有被嵌入的文件之宣告item
properties
屬性要被給予scripted
值。
manifest
item
元素為EPUB導覽文件。<item properties="nav" id="c1" href="c1.xhtml" media-type="application/xhtml+xml" />
manifest
item
元素為封面圖片。<item properties="cover-image" id="ci" href="cover.svg" media-type="image/svg+xml" />
manifest
item
元素為有腳本的內容文件並且包含嵌入MathML。<item properties="scripted mathml" id="c2" href="c2.xhtml" media-type="application/xhtml+xml" />
本章節為非規範性。
本用語中的特性可用於書脊中itemref
元素的properties
屬性。
特性可以使用基礎IRI做為參照http://idpf.org/epub/vocab/package/itemref/#
。
itemref
特性以下表格定義了供itemref
元素的properties
屬性 [Packages] 使用的特性。
名稱 |
page-spread-left
|
---|---|
說明: | page-spread-left 特性指示關聯的item 元素之EPUB內容文件,其第一頁於兩頁跨頁時要顯示在左手端。 |
名稱 |
page-spread-right
|
---|---|
說明: | page-spread-right 特性指示關聯的item 元素之EPUB內容文件,其第一頁於兩頁跨頁時要顯示在右手端。 |
spine
中進行指定。<spine>
<itemref idref="title"/>
<itemref idref="ps-1-l" properties="page-spread-left"/>
<itemref idref="ps-1-r" properties="page-spread-right"/>
<itemref idref="toc"/>
…
</spine>
本章節為非規範性。
EPUB 3由W3C EPUB 3社群小組所開發,並且與出版業界小組相互協力。
EPUB 3.2改版由以下主導:
此外向編輯群致敬,本版本EPUB若缺少以下人物的顯著貢獻,則不可能完成:
特別感謝IDPF的前會員,尤其是Markus Gylling與Bill McCoy,沒有他們EPUB不可能成真。