(2)パッケージドキュメント(opfファイル)
OSBPS直下に、パッケージドキュメントcontent.opfファイルがあることがmanifest.xmlで記載されています。
content.opfファイルは、たとえば、次のようになっています。
------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="ja" unique-identifier="book-id"> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:identifier id="book-id"> urn:uuid:4d0a72f0-f26e-b20f-f937-5c327937561b </dc:identifier> <dc:title id="title">こんにちは世界</dc:title> <meta refines="#title" property="title-type">main</meta> <meta refines="#title" property="file-as">こんにちわせかい</meta> <dc:title id="subtitle">電子書籍入門</dc:title> <meta refines="#title" property="title-type">subtitle</meta> <dc:creator id="creator">鷲田豊明</dc:creator> <meta refines="#creator" property="file-as">わしだとよあき</meta> <dc:language>ja</dc:language> <meta property="dcterms:modified">2013-11-22T22:27:04Z</meta> <dc:subject>文学、フィクション</dc:subject> <meta name="ネット書房TONBO" content="1.0.1" /> </metadata> <manifest> <!-- manifest start --> <item id="text.nav.xhtml" href="text/nav.xhtml" media-type="application/xhtml+xml" properties="nav" /> <item id="style.nsepub.css" href="style/nsepub.css" media-type="text/css" /> <item id="style.nav.css" href="style/nav.css" media-type="text/css" /> <item id="text.hello.tonbo" href="text/hello.tonbo" media-type="application/xhtml+xml" /> <!-- manifest end --> </manifest> <spine page-progression-direction="rtl"> <!-- spine start --> <itemref idref="text.nav.xhtml" linear="yes" /> <itemref idref="text.hello.tonbo" linear="yes" /> <!-- spine end --> </spine> </package> -------------------------------------------------------
このcontent.opfファイルは、ユーザーが直接書き換えられないようになっています。
弊社のTONBOの場合は、ユーザーがファイルを加えたり、文章を変更したり、カバーをつけたり、設定を変えたりするたびに、このcontent.opfファイルの中身を自動的に書き換えますので、いちいちユーザーが書き換えなくてもよいことになっています。逆に、ユーザーがこのファイルを書き換えると、TONBOは、このファイルを書き換えられなくなってしまうので、ユーザーの書き換えを禁止しているのです。万が一、このcontent.opfファイルと、ユーザーの実際に編集している内容の整合性がとれなくなったら、tonboテキストファイルや画像ファイルなどを全て別な形で保存して、最初から作り直さなければならなくなります。
このcontent.opfファイルも、xmlファイルとして書かれていますが、xmlファイルは、基本的に、
<名前 属性>値</名前>
という構造(タグ)の形で、データないしは情報を表現するものだと理解してください。
第1行目は、特殊で、このファイルがxmlファイルであること、そのバージョン、文字コードが示されていているものです。それ以下が、実際のxmlファイルの内容になっています。
第2行目は、名前がpackageであることが示されていています。そして、この情報の終わりである、/packageはopfファイルの最後にありますから、packageという名前に関する値が、このファイルの内容の全てであることがわかります。
packageの属性には、xmlnsという記述がありますが、これは「名前空間:name space」といって、このpackageの中に入っている名前が、他のシステムの名前と混同しないように区別するための記述です。
version特性は、このファイルがepubのバージョン3.0で記載されていることを示しています。
lang属性は、ja、すなわち日本語を基本とすることを示しています。
unique-identifier属性には、この電子書籍を他の電子書籍から区別するユニークなIDがpackageの中の、book-idという属性をもったタグで与えられていることを示しています。
以上を前提に、package の中身を見てみましょう。package には、直下に、metadata、manifest、spineという名前をもった三つのタグ/情報があることがわかるでしょう。