做人要厚道:http://blog.sina.com.cn/s/blog_6441e0640100gmi8.html
Packaging Format 元数据文件
该文件名没有特殊要求,扩展名为opf。它指定了图书中所有内容的位置,如文本和图像等其他媒体。它还给出了另一个元数据文件,内容的 Navigation Center eXtended (NCX) 表,有的称其为逻辑目录。
该 OPF 文件是 EPUB 规范中最复杂的元数据。让我们来看一看它的内容吧:
包含示例元数据的 OPF content 文件
<?xml version='1.0' encoding='utf-8'?>
<package xmlns="http://www.idpf.org/2007/opf"
</package>
我们来一步一步的分析它的各个部分。
OPF 文档本身必须使用名称空间 http://www.idpf.org/2007/opf,元数据则使用 Dublin Core Metadata Initiative (DCMI) 名称空间 http://purl.org/dc/elements/1.1/。
最好现在将 OPF 和 DCMI 模式添加到 XML 编辑器中。
Dublin Core 定义了一组常用的元数据,可用于描述各种不同的数字资料,它不是 EPUB 规范的一部分。所有这些术语都可以出现在 OPF 元数据部分。编写要分发的 EPUB 时,这里可以放很多内容,目前来说下面的内容就足够了。
OPF 元数据摘要
...
<metadata>
</metadata>
...
有两个术语是必须的,即 title 和 identifier。按照 EPUB 规范,标识符必须是惟一的,但是这个惟一的值要靠数字图书的创建者来定义。对于图书出版商来说,这个字段一般包含ISBN编号。对于其他 EPUB 创建者,可以考虑使用 URL 或者很大的随机生成的惟一用户 ID(UUID)。要注意,属性 unique-identifier 的值必须和 dc:identifier 元素的 ID 属性匹配。
其他和内容相关的可以考虑添加的元数据包括:
语言(如 dc:language)。
出版日期(如 dc:date)。
出版商(如 dc:publisher)。(可以是公司或个人的名称)。
版权信息(如 dc:rights)。
EPUB 规范没有要求包含 name
属性值为 cover
的 meta
元素,但为了增加封面和图像的可移植性,建议这样做。一些 EPUB 呈现程序喜欢使用图像文件作为封面,另一些则愿意使用包含内联封面图像的 XHTML 文件。该例子显示了这两种情况。meta
元素的 content
属性的值应该是图书封面图像在 manifest 中的 ID 号,manifest 是 OPF 文件的一部分。
OPF manifest 列出了 EPUB 内容(不包括元数据)中的所有资源。就是说,通常是组成电子图书文本的一组 XHTML 文件再加上一些相关的媒体如图像。EPUB 鼓励使用 CSS 设定图书内容的样式,因此 manifest 中也包含 CSS。进入数字图书的所有文件都必须在 manifest 中列出。
下面给出了一个menifest的一部分:
...
<manifest>
</manifest>
...
第一项 toc.ncx
是必须的。所有的项都有相应的 media-type
值,XHTML 内容的媒体类型为application/xhtml+xml
。媒体类型必须正确,不能 是 text/html
或者其他类型。
EPUB支持四种核心图像文件类型:JPEG、PNG、GIF 和 Scalable Vector Graphics (SVG)。
href
属性的值应该是一个相对于该 OPF 文件 的统一资源标识符(URI)。(很容易和 container.xml 中对 OPF 文件的引用混淆,其中的引用是相对于 EPUB 的整体引用)。这里的 OPF 文件位于和内容相同的 OEBPS 目录中,因此不需要路径信息。
manifest 告诉 EPUB 阅读器哪些文件属于档案,spine 则指定这些文件出现的顺序或 — 按照 EPUB 的说法 — 数字图书的线性阅读顺序。可以将 OPF spine 看作是书中 “页面” 的顺序。按照文档顺序从上到下依次读取 spine。
下面为OPF spine 的一部分
... <spine toc="ncx"> <itemref idref="cover" linear="no"/> <itemref idref="content"/> </spine> ... 每个 |
<guide>
</guide>
...
guide 可以为 EPUB 阅读系统提供语义信息。manifest 定义了 EPUB 中的物理资源,spine 提供了这些资源的顺序信息,guide 负责解释这些部分的含义。下面是可以出现在 OPF guide 中的部分值:
cover
: 图书封面title-page
: 包含作者和出版商信息的页面toc
:目录
完整的列表请参阅 OPF 2.0 规范