epub3 in action: epub3文件格式简介
epub3文件就是一个符合epub3标准,以epub为扩展名的zip压缩文件。epub3标准则是基于html5、css3、svg等web标准以及mathML等来展示内容。下图就是一个简单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文件要比以上所描述的内容复杂的多。
epub3 in action: epub3文件格式简介的更多相关文章
- HDR文件格式简介及其读写函数
转自:http://blog.csdn.net/lqhbupt/article/details/7828827 1.HDR简介HDR的全称是High-DynamicRange(高动态范围).在此,我们 ...
- Contextual Action bar(2) 简介,启动,各函数介绍
一.Context Action Bar简介 它是一个ActionBar,有各种操作项,但它不是始终显示的ActionBar,它需要上下文才显示.样式如下: 二.Context Action Bar的 ...
- YAML文件格式简介
一.yaml简介 yaml是一种用来写配置文件的序列化语言,跟json有些像,yaml又称作json的超集,yaml的设计则是为了友好可读性,主要用于配置信息的书写,而json设计的目的则是为了简 ...
- HDF5 文件格式简介
三代测序下机的原始数据不再是fastq格式了,而是换成了hdf5 格式,在做三代数据的分析之前,有必要先搞清楚hdf5 这种文件格式; 官网的链接如下:https://support.hdfgroup ...
- 26、HDF5 文件格式简介
转载:庐州月光 http://www.cnblogs.com/xudongliang/p/6907733.html 三代测序下机的原始数据不再是fastq格式了,而是换成了hdf5 格式,在做三代数据 ...
- 时序数据库 Apache-IoTDB 源码解析之文件格式简介(三)
上一章聊到在车联网或物联网中对数据库的需求,以及 IoTDB 的整体架构,详情请见: 时序数据库 Apache-IoTDB 源码解析之系统架构(二) 打一波广告,欢迎大家访问IoTDB 仓库,求一波 ...
- Spring in Action --- 第一章 简介
简化java开发 基于POJO的轻量级和最小入侵性编程 通过依赖注入和面向接口实现松耦合 基于切面和管理进行声明式编程 通过切面和模板减少样板式代码 bean的生命周期 Spring对bean进行实例 ...
- .yaml 文件格式简介
命名 YAML 的意思其实是:"Yet Another Markup Language"(仍是一种置标语言)的缩写. 功能 YAML的语法和其他高阶语言类似,并且可以简单表达清单. ...
- Action 语法的简介
https://www.cnblogs.com/LipeiNet/p/4694225.html https://www.cnblogs.com/Gyoung/archive/2013/04/04/29 ...
随机推荐
- ajaxSubmit() 上传文件和进度条显示
1. 首先引用js文件 <script type="text/javascript" src="/js/jquery/jquery.form.js"&g ...
- API获得ip,JS获得IP地理信息
<script type="text/javascript" src="http://zone.xmp.kankan.xunlei.com/find_area_ ...
- Linux简介及Ubuntu安装
Linux简介及Ubuntu安装 常见指令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 vim使用 用户及用户组管理 文件权限管理 大牛笔记-www.weix ...
- 关于修改动态库DLL的问题
最近在做一个小软件,需要做到新建.修改动态链接库(DLL)的功能.新建很简单,但是在修改的时候我突然发现问题来了.首先软件会在启动的时候将所有协议加载出来,然后做展示.此时你可以添加或减少动态库中的属 ...
- PHP学习笔记(4) - 实现自己的MVC框架
在PHP中实现一个所谓的MVC框架非常简单.这里说一下思路. 一.首先用spl_autoload_register函数实现自己的类型自动加载机制.这样其他代码都不需要再考虑如何将类所在的文件inclu ...
- Delphi 文字跑马灯
//跑马灯 procedure Tfr_Main.tme_TitleTimer(Sender: TObject); var strTrim: Widestring; begin strTrim := ...
- Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
[root@localhost ~]# cd /usr/local/mysql [root@localhost mysql]# chown -R mysql.mysql . [root@loc ...
- 【BZOJ】3309: DZY Loves Math 莫比乌斯反演优化
3309: DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007) ...
- Google地图数据算法
Google Maps与Google Earth中的每个级别的每一副图片都有一个URL,例如下面这幅我们学校的图的地址是http://kh.google.com/kh?v=3&t=trstrq ...
- php分页类的二种调用方法(转载)
php分页类的二种调用方法 原文地址:http://www.xfcodes.com/php/fenye/25584.htm 导读:php分页类的二种调用用法,ajax调用php分页类,非ajax方式调 ...