epub 3のファイルフォーマットその1


この記事はePub Advent Calendar 2015の2日目です。

epub3の中身

電子書籍(epub)ファイルはzip形式でOCF ZIP コンテナと呼びます。

どのepubファイルも
1. mimetype
2. 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個のファイルでした