.OPF文件剖析
OPF文档是epub电子书的核心文件,且是一个标准的XML文件,依据OPF规范,主要由五个部分组成:
1、<metadata>,元数据信息,由两个子元素组成:
- <dc-metadata>,其元素构成采用dubline core(DC)的15项核心元素,包括:
- <title>:题名
- <creator>:责任者
- <subject>:主题词或关键词
- <description>:内容描述
- <contributor>:贡献者或其它次要责任者
- <date>:日期
- <type>:类型
- <format>:格式
- <identifier>:标识符
- <source>:来源
- <language>:语种
- <relation>:相关信息
- <coverage>:履盖范围
- <rights>:权限描述
- <x-metadata>,即扩展元素。如果有些信息在上述元素中无法描述,则在此元素中进行扩展。
2、<menifest>,文件列表,由于列出OEBPS文档及相关的文档,有一个子元素构成,
- <item id="" href="" media-type="">,该元素由三个属性构成:
- id:表示文件的ID号
- href:文件的相对路径
- media-type:文件的媒体类型
- 例如:<item id="page01" href="page01.xhtml" media-type="application/xhtml+xml"/>
- <item id="img000"href="001.png"media-type="image/png" />
- <item id="img001"href="002.jpg"media-type="image/jpeg" />
3、<spine toc="ncx">,脊骨,其主要功能是提供书籍的线性阅读次序。由一个子元素构成:
- <itemref idref="">,由一个属性构成:
- idref:即参照menifest列出的ID
- 例如:<itemref idref="page01"/>
4、<guide>,指南,依次列出电子书的特定页面, 例如封面、目录、序言等, 属性值指向文件保存地址。一般情况下,epub电子书可以不用该元素。
5、<tour>,导读。可以根据不同的读者水平或者阅读目的, 按一定次序, 选择电子书中的部分页面组成导读。一般情况下,epub电子书可以不用该元素。
content.opf实例
<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE package PUBLIC "+//ISBN 978-7-308-05831-5//DTD OEB 1.2 Package//EN""http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd">
<package unique-identifier="bookid"xmlnspf="http://www.idpf.org/2007/opf"xmlns="http://www.idpf.org/2007/opf"version="2.0">
<metadata>
<dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:dcterms="http://purl.org/dc/terms/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dc:title>数字档案馆理论与技术研究</dc:title>
<dc:creator>金更达</dc:creator>
<dc:subject>数字档案馆</dc:subject>
<dc:subject>电子文件管理</dc:subject>
<dc:subject>元数据</dc:subject>
<dc:subject>数字化</dc:subject>
<dc:subject>档案化</dc:subject>
<dc:description>当……<dc:description>
<dc:publisher>机械工业出版社</dc:publisher>
<dc:contributor/>
<dc:date>2007-09</dc:date>
<dc:type>普通图书</dc:type>
<dc:format>Text/html(.html,.htm)</dc:format>
<dc:identifier id="bookid"opf:scheme="ISBN">isbn:978-7-111-04961-6</dc:identifier>
<dc:source/>
<dc:language>chi</dc:language>
<dc:relation/>
<dc:coverage/>
<dc:rights>机械工业出版社版权所有</dc:rights>
</dc-metadata>
<x-metadata/>
</metadata>
<manifest>
<item id="ncx"href="toc.ncx"media-type="application/x-dtbncx+xml"/>
<item id="style"href="style.css"media-type="text/css"/>
<item id="cover"href="cover.htm"media-type="text/html"/>
<item id="tableofc"href="toc.xhtml"media-type="application/xhtml+xml"/>
<item id="forword"href="forword.xhtml"media-type="application/xhtml+xml"/>
<item id="chap01"href="chap01.xhtml"media-type="application/xhtml+xml"/>
<item id="chap02"href="chap02.xhtml"media-type="application/xhtml+xml"/>
<item id="chap03"href="chap03.xhtml"media-type="application/xhtml+xml"/>
<item id="chap04"href="chap04.xhtml"media-type="application/xhtml+xml"/>
<item id="chap05"href="chap05.xhtml"media-type="application/xhtml+xml"/>
<item id="chap06"href="chap06.xhtml"media-type="application/xhtml+xml"/>
<item id="chap07"href="chap07.xhtml"media-type="application/xhtml+xml"/>
<item id="chap08"href="chap08.xhtml"media-type="application/xhtml+xml"/>
<item id="chap09"href="chap09.xhtml"media-type="application/xhtml+xml"/>
<item id="chap10"href="chap10.xhtml"media-type="application/xhtml+xml"/>
<item id="reference"href="reference.xhtml"media-type="application/xhtml+xml"/>
</manifest>
<spine toc="ncx">
<itemref idref="cover"/>
<itemref idref="tableofc"/>
<itemref idref="forword"/>
<itemref idref="chap01"/>
<itemref idref="chap02"/>
<itemref idref="chap03"/>
<itemref idref="chap04"/>
<itemref idref="chap05"/>
<itemref idref="chap06"/>
<itemref idref="chap07"/>
<itemref idref="chap08"/>
<itemref idref="chap09"/>
<itemref idref="chap10"/>
<itemref idref="reference"/>
</spine>
<guide/>
</package>
.OPF文件剖析的更多相关文章
- inittab文件剖析[CentOS 5.X](第二版)
inittab文件剖析[CentOS 5.X] grep -v "^#" /etc/inittab | more #过滤掉以#开头的行 inittab文件格式 id:runleve ...
- 架构师成长之路2.4-Kickstart文件剖析
点击返回架构师成长之路 架构师成长之路2.4-Kickstart文件剖析 kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别. 创建kickstart文件注意 ...
- Linux下的压缩文件剖析 (tar/gzip的区别)
Linux下的压缩文件剖析 对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是, ...
- 「2.0」一个人开发一个App,小程序从0到1,文件剖析
不知你是不是见到“文件剖析”这4个大字,才点进来看一看的?如果真是的话,那我可以坦诚.真心.负责任地告诉你:你上当了,你上了贼船啦,如果你现在想跳的话,还来得及,反正茫茫大海中,鲨鱼正缺搞程序的人.说 ...
- mk文件剖析
一个Android.mk file用来向编译系统描述你的源代码.具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次.你可以在每一个Android.mk file中定义一个 ...
- 003.android资源文件剖析(Resources)
android的资源文件使用的重要性,不言而喻.让我们从潜到深逐渐来了解吧. 一:android的基本资源: 1.字符串资源 android的资源文件保存在:res\values\ 2.布局资源 an ...
- Maven setting.xml 文件剖析
全局配置: ${M2_HOME}/conf/settings.xml (配置环境变量 新建 M2_HOME 安装目录到版本名那里(D:\apache-maven-3.0.2) 编辑path 环 ...
- Android SAX、DOM、Pull解析xml文件剖析与案例讲解
XML介绍 XML(Extensible Markup Language) 即可扩展标记语言,与HTML一样,都是SGML(Standard Generalized Markup Language,标 ...
- .ncx文件剖析
ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx. ncx文件是一个XML文件,该标准由DAISY Consortium发布(参见http://www ...
随机推荐
- Java 注解(Annotation)秒懂,你可以这样学,
文章开头先引入一处图片. 这处图片引自老罗的博客.为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的.至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明.好了,可以开始今天的博文了. Anno ...
- spring mvc: rss(xml)输出
准备: rss包插件 Rome 库及其依赖项rome-utils,jdom和slf4j <!-- rss源依赖 --> <!-- https://mvnrepository.com/ ...
- LightOJ - 1151概率dp+高斯消元
概率dp+高斯消元 https://vjudge.net/problem/LightOJ-1151 题意:刚开始在1,要走到100,每次走的距离1-6,超过100重来,有一些点可能有传送点,可以传送到 ...
- 【Error】Creating Server TCP listening socket *:6379: bind: No such file or directory
redis 运行服务时报错: Creating Server TCP listening socket *:6379: bind: No such file or directory 解决方法,依次输 ...
- 基于centos的docker安装
1. 安装需求 内核版本3.10以上 Centos 7以上 64位版本 2. 使用root登录或者具有sudo权限 3. 确保系统是最新的 yum update 4. 添加yum源 tee /etc/ ...
- 【zznu-夏季队内积分赛3-I】逛超市
题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“我宝儿姐背包学的太差了,你们谁能帮我解决这道题,我就让他做我的男朋友!宝儿姐现在在逛超市,超市里的种类实在是太多了,每种都有很多很 ...
- 利用Docker编译Hadoop 3.1.0
前言 为什么要使用Docker编译,请自行百度 操作系统环境:Centos 6.8 uname -r 内核版本:2.6.32-642.el6.x86_64 除非有把握否则不要在Centos6.8中直接 ...
- LeetCode OJ:Regular Expression Matching(正则表达式匹配)
Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...
- vue.js 源代码学习笔记 ----- instance index
import { initMixin } from './init' import { stateMixin } from './state' import { renderMixin } from ...
- C语言学习之指针
指针这块,看了好久才有点头绪,稍微有点理解了. 一.指针申明以及赋值 int *p; 这样就声明了一个int型的指针p,这个p就是指针变量,可能上述的书写方式会混淆我们队指针的理解(*号) 我们可以这 ...