OPF Package Document
是一个格式良好的 XML 1.0 文档;
UTF-8 或 UTF-16 编码;
可以通过
Appendix A 中的 XML Schema 验证;
可以由一个或者多个 XML 文件组成,但是只有一个文件可以以 .opf 作为扩展名;
OPF Package Document 的 media-type 是 application/oebps-package+xml。
OPF Publication
包含一个 OPF Package Document;
带 .opf 扩展名的那个 Package Document 必须作为 Package Document 的根文件(root file);
包含且只包含一个 manifest 元素,该元素中包含许多 item 元素,每个元素对应 OPS Publication 中的一个文件,但 OPF Package Document 文件本身不包含其中;
spine 元素中列出的每个文件都必须遵守
OPS Content Document requirements
每个 item 元素指明了文件所属的 MIME mdeia type,OPS Core Media Types:
http://idpf.org/epub/20/spec/OPS_2.0.1_draft.htm#Section1.3.7;
必须包含一个 UTF-8 或者 UTF-16 编码的 NCX 文件;
metadata 元素中必须包含至少1个 identifier, title 和 language 元素;
根元素 package 的 unique-identifier 属性必须是正确的某个 identifier 元素的 id;
任何 creator 和 contributor 元素的 OPF role 属性的扩展值必须取自
MARC Relator Code 列表或者以 oth. 开头;
任何 guide 元素的 type 属性的扩展值必须以 other. 开头;
package 元素的 version 属性必须是 2.0;
package 元素的 namespace 必须是:http://www.idpf.org/2007/opf,而且必须声明在 OPF Package Document 的根部;
(fallback? 是啥)
Dublin Core Metadata
metadata 中必须包含至少一个 identifier, title 和 language 元素,并且至少有一个 identifer 被 package 的 unique-identifier 引用;
Dublin Core 没有为 Metadata 定义任何属性,In the above example, the specification of the OPF namespace on the metadata element is present to resolve the scheme and role attributes used in the identifier and creator elements, respectively.
规范没有定义如何选择最恰当的那个 title 元素作为标题显示,你可以根据可用的字体、title 元素的 xml:lang 属性或者其它方法试探。如果没有这样的一个算法,阅读系统可以把第一个 title 元素,或者所有的 title 元素当作最适当的标题;
creator 元素用于标示出版物的主要创建者或者作者,其它次要的贡献者使用 contributor 元素。每个作者使用一个 creator 元素。定义的顺序即显示的顺序。opf:file-as 属性是格式对机器友好的姓名,如:
<dc:creator opf:file-as="King, Martin Luther Jr." opf:role="aut">
Rev. Dr. Martin Luther King Jr.
</dc:creator>
creator 的显示和 title 一样,但是在没有选择算法的情况下,阅读系统要显示出所有的 creator 姓名,使用适当的空格和 / 或者标点。
subject, description, publisher 元素,没有具体的规范;
contributor 次要贡献者,阅读系统可以选择不显示或显示 contributor 信息。跟 creator 一样,contributor 也有 role 和 file-as 属性。其中 role 属性必须是小写字母。
date 元素的格式定义:
http://www.w3.org/TR/NOTE-datetime。如果不带时间信息,格式必须为:YYYY-MM-DD,其中月份和具体的日期是可选的。date 元素有一个可选的 OPF event 属性,具体的值没有在规范中作出限制,可能出现的值有:creation, publication, 和 modification.
type, format 没有具体的规范,最佳实践是从某一个受约束的词汇表中选值,例如 MIME media types;
identifier 元素有一个可选的 OPF schema 属性,用于给生成 identifier 的系统或者权威机构命名,例如:"ISBN", "DOI"。
Spine
itemref 的 linear 属性默认为 "yes",表示该内容为 EPUB 当中的主要(primary)内容,为 "no" 时表示该内容为次要(auxiliary)内容。It is important that the publication author include some kind of internal reference, such as a hypertext link, to any OPS Content Document that is declared to be auxiliary; it is recommended that references be added to NCX for all auxiliary content. 至少有1个 itemref 必须声明为 primary。Reading Systems may use "next-page" style functionality when moving from one primary OPS Content Document to the next primary one in spine. 例子:
<manifest>
<item id="intro"
href="intro.html"
media-type="application/xhtml+xml" />
<item id="c1"
href="chap1.html"
media-type="application/xhtml+xml" />
<item id="c1-answerkey"
href="chap1-answerkey.html"
media-type="application/xhtml+xml" />
<item id="c2"
href="chap2.dtb"
media-type="application/x-dtbook+xml" />
<item id="c2-answerkey"
href="chap2-answerkey.html"
media-type="application/xhtml+xml" />
<item id="c3"
href="chap3.html"
media-type="application/xhtml+xml" />
<item id="c3-answerkey"
href="chap3-answerkey.html"
media-type="application/xhtml+xml" />
<item id="note"
href="note.html"
media-type="application/xhtml+xml" />
<item id="f1"
href="fig1.jpg"
media-type="image/jpeg" />
<item id="f2"
href="fig2.jpg"
media-type="image/jpeg" />
<item id="f3"
href="fig3.jpg"
media-type="image/jpeg" />
<item id="ncx"
href="toc.ncx"
media-type="application/x-dtbncx+xml" />
</manifest>
<spine toc="ncx">
<itemref idref="intro" />
<itemref idref="c1" />
<itemref idref="c1-answerkey" linear="no" />
<itemref idref="c2" />
<itemref idref="c2-answerkey" linear="no" />
<itemref idref="c3" />
<itemref idref="c3-answerkey" linear="no" />
<itemref idref="note" linear="no" />
</spine>
spine 元素必须有一个 toc 属性,值为 NCX document 在 manifest 中声明的 id 值。
分享到:
相关推荐
中文版的 EPUB之OPF部分。台湾版得官方文档,当然内容是准确的了。对应的EPUB版本为2.01
OPF (Open Packaging Format) 转换工具,支持 epub 和 mobi 格式文件。目前只支持繁体到简体的转换 (欢迎提交 patch 加入其他转换模式)。 使用方法 $ git clone https://github.com/jjgod/opf-cc.git $ cd opf-cc $ ...
//本处修改了toc.ncx文件中的和content.opf中的标签内容. List<String> titlesList = new ArrayList(); titlesList.add("test book"); book.getMetadata().setTitles(titlesList); //write epub ...
3、oebps目录(可以是别的名字,但建议用这个名字),包含了: image子目录(不一定总有)存放了所有的图片文件 content.opf 文件名可以是其它的,扩展名一定是opf,就是一个xml格式的包内的文件列表 toc.ncx 又说...
OPF 文件(开放包装格式) 通过 container.xml 链接 <metadata> :集中出版物的元数据(作者、出版商、ISBN ...) <manifest> :构成出版物的文件的详尽列表(html、css、图像、目录...) <spine> : "Backbone",...
OPF232 RS-232/塑料光纤转换器pdf,OPF232 OPF485 无源RS-232/塑料光纤转换器RS-485/422/232/塑料光纤转换器一、用途波仕电子的OPF232无源RS-232塑料光纤转换器用于实现RS-232的塑料光纤传输、特别是只有收(RXD)、...
CMMI关于OPF项目过程管理的教材,CMMI三级教材
最优化潮流计算的matlab程序代码,可以试用于初级学者
CMMI组织级CMMI-OPD+OPF+过程管理过程域
在本文中,将最优潮流(OPF)问题扩展为考虑与电网负荷跟踪控制相关的成本。负荷跟踪控制成本通过线性二次调节器(LQR)表示。 电力网络由一组非线性微分代数方程(DAE)描述。通过围绕已知平衡点对DAE进行线性化,...
DC OPF non smooth cost
可绘制来自不同文件的曲线。 刷新曲线方便。数据文件变化后,仅按一个按钮即可刷新曲线。 局部放大曲线方便、快捷。用鼠标左键向下拉,可放大局部;向上拉,恢复缺省显示。 时间轴的单位可以是秒或周波。...
电力系统分析-IEEE标准14节点最优潮流计算程序(OPF)
ePub Reader扩展程序将上下文菜单项添加到浏览器链接上下文中,以在浏览器选项卡中打开并呈现* .epub和* .opf文件,从而无需安装本机软件即可轻松访问。 此扩展使用“阅读器视图”界面,该界面提供了三种配色方案...
使用验证软件包文件: $ java -jar "/path/to/epubcheck.jar" "./template.epub"字数要从html源获取单词数,请使用提供PHP脚本: $ php ./count-words.php "./template/Content/text/ch*.xhtml"使用OPF中的数字: &...
与HTML编辑器一起,它可以用作EPUB创作系统(例如Calibre,Sigil…)的轻量级替代方案,以生成目录,OPF文件或完整的EPUB3书籍。 该脚本还可以用于提取在线Web内容并创建本地EPUB存档以供离线阅读。安装 npm ...
Using CPLEX Solver in MATPOWER to perform DC-OPF
tab2opf 为 Kindle 重新制作 tab2opf 字典生成器 用于将制表符分隔的字典文件转换为 opf 文件以与 kindlegen 一起运行的脚本,以便将其转换为 Kindle 的翻译查找字典。 基于 Klokan Petr Přidal ( ) 于 2007 年...
matpower最优潮流计算,利用多次潮流算法。
opf.js NodeJS 的 OPF(开放发布格式)编辑器。