この記事はePub Advent Calendar 2015の2日目です。
#epub3の中身
電子書籍(epub)ファイルはzip形式でOCF ZIP コンテナと呼びます。
どのepubファイルも
- mimetype
- META-INF/container.xml
の二つはファイルエントリに含まれます。
##mimetype
mimetype
application/epub+zip
メディアタイプを書きます。type/mediaTypeName[+suffix]
typeがapplication
mediaTypeNameがepub
suffixがzip
##META-INF/container.xml
META-INF/container.xml
<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="opfファイル" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
OCF 抽象コンテナ(META-INFディレクトリ)にcontainer.xmlが入っています。
rootfileタグのfull-path属性にOCF ZIP コンテナからopfファイルへのフルパスを書きます。
ここから先の追加ファイルはOCF 抽象コンテナ(META-INFディレクトリ)以外で作る人の好きな所にファイルを設置できます。
IDPFのサンプルではOPSディレクトリにpackage.opfを設置しているので
META-INF/container.xml
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
<rootfiles>
<rootfile full-path="OPS/package.opf" media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
full-path属性はOPS/package.opfになります。
以上、epubファイルの中身に必ずある2個のファイルでした