• この文書は IDPF の作成した文書 OEBPS Container Format (OCF) 1.0 を日本語に翻訳したものです。
  • この日本語版は参考にすぎません。翻訳上の誤りや不適切な表現が含まれている可能性がありますので、ご自身の責任でご利用ください。
  • おかしな点、お気付きの点がありましたら、informationspectrum@gmail.com までメールで、もしくは @naokisatoname までTwitterで、お知らせください。
    公開日: 2010/04/28 (April 28, 2010)
    翻訳者: 佐藤直樹 (http://naoki.sato.name/)

    その他の関連文書日本語訳 (翻訳者: ろす さん)


OEBPS Container Format (OCF) 1.0


勧告仕様書
2006年9月11日


Copyright © 2006 by International Digital Publishing Forum™.


無断複写・転載を禁止する。本書は合衆国法典第17編の下に保護されている。 International Digital Publishing Forum の書面による許可を得た場合を除き、内容の変化を伴う複製と再頒布を禁止する。



目次

目次 ............................................................................................................................ ii

1    概説 ...................................................................................................................... 1

    

1.1    目的と適用範囲 ........................................................................................... 1

    

1.2    定義 ............................................................................................................... 1

    

1.3    他の仕様との関係 ....................................................................................... 3

    

1.4    適合性 ........................................................................................................... 3

    

    

1.4.1   コンテナの適合性 ................................................................................. 4

    

    

1.4.2   リーディングシステムの適合性 ......................................................... 4

    

1.5    アクセシビリティ......................................................................................... 4

    

1.6    将来の方針..................................................................................................... 5

2    OCFの概要 ........................................................................................................... 5

    

2.1    OCF: 汎用的なコンテナ技術 ...................................................................... 5

    

2.2    「抽象コンテナ」 VS. 「物理コンテナ」 ................................................ 5

    

2.3    例 .................................................................................................................... 6

    

    

2.3.1   単純な出版物と抽象コンテナ、ZIPコンテナの場合 ........................ 6

    

    

2.3.2   一つのコンテナが複数の表示形式を持つ場合 .................................. 7

3    OCFコンテナコンテンツ .................................................................................... 8

    

3.1    ファイルとディレクトリ構造 ..................................................................... 8

    

3.2    他の要素を参照するための相対IRI ............................................................ 9

    

3.3    ファイル名 ..................................................................................................... 9

    

3.4    コンテナメディアタイプの判別 ............................................................... 10

    

3.5    META-INF...................................................................................................... 11

    

    

3.5.1   コンテナ – META-INF/container.xml (必須) ..................................... 11

    

    

3.5.2   マニフェスト – META-INF/manifest.xml (オプション) .................. .13

    

    

3.5.3   メタ情報 – META-INF/metadata.xml (オプション) ......................... 13

    

    

3.5.4   デジタル署名 – META-INF/signatures.xml (オプション) ............... 13

    

    

3.5.5   暗号化 – META-INF/encryption.xml (オプション) ........................... 15

    

    

3.5.6   著作権管理 – META-INF/rights.xml (オプション) ............................ 16

4    ZIPコンテナ.......................................................................................................... 17

附録 A: RELAX NG OCFスキーマ.......................................................................... 19

附録 B: 例.................................................................................................................... 20

附録 C: 貢献者............................................................................................................ 24


1

    概説

1.1

    目的と適用範囲

この仕様書はOEBPS Container Format (OCF)を定義するものである。OCFは汎用のコンテナ技術である。この仕様書ではOEBPS出版物の場合、および付加的に(OPTIONAL)他の表示形式を持つ場合のカプセル化における汎用コンテナ技術について示す。しかしながら、本稿で示される汎用コンテナ技術は最終的に他のバンドルアプリケーションにおいても利用されると予想される。
OCFは、汎用コンテナ形式として、関連する一連のファイルを一つのファイルであるコンテナに集約する。様々なドキュメント形式やアプリケーションクラスのファイルを集約するためにOCFを利用することが可能である。一つのファイルとすることで、一連のファイルの受け渡しや管理、およびアクセスが容易となる。
OCFはZIPアーカイブ中の物理的なファイル構成(物理コンテナ)と抽象的なファイルのコレクション(抽象コンテナ)とを対応付けるためのルールを定義する。ZIPコンテナのルールはOpen Document Format (ODF) 1.0におけるZIP技術に基づいており、互換性を有している。
OCFはOEBPS出版物に対して推奨される(RECOMMENDED)単一ファイルコンテナ技術である。出版の一連の流れにおいて、OCFは次のように利用され得る(MAY)
1.2

    定義

ASCII

American Standard Code for Information Interchange。英文アルファベットを7bitで符号化したもの(ANSI X3.4-1986)。本稿において、ASCIIは印字可能文字である33(10進)から126(10進)の範囲、およびスペース文字32(10進)を指す。

IRI

Internationalized Resource Identifier (http://www.ietf.org/rfc/rfc3987.txt)。

OCFコンテナ [OCF CONTAINER]

本仕様書にて定義する形式に従うコンテナファイル。

OCF

本仕様書にて定義されるOEBPS Container Format。

コンテンツプロバイダ [CONTENT PROVIDER]

出版社、著者、個人およびその他情報の供給者で、本仕様書にて示されたOCFを利用して出版物を配布元、販売元、あるいは直接一つ以上のOCFリーディングシステムに提供する者を指す。

ODF

Open Document Format (http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf)。

OEBPS

Open eBook Publication Structure (http://www.idpf.org/oebps/oebps1.2/index.htm)。

OEBPSドキュメント [OEBPS DOCUMENT]

OEBPS 1.2の仕様に従うXMLマークアップドキュメント。一般的にはOEBPS出版物のテキストコンテンツを含む。

OEBPSパッケージ [OEBPS PACKAGE]

OEBPS 1.2の仕様に定義された形式でOEBPS出版物について記述したXMLファイル。出版物のすべてのファイルを識別し、説明情報を提供する。

OEBPS出版物 [OEBPS PUBLICATION]

OEBPS 1.2の仕様に定義された、OEBPSドキュメント、OEBPSパッケージファイル、構造化されたテキストと図を含む様々なメディアタイプのファイルの集合体の内、出版物の不可分な構成単位となるものを指す。

OCFリーディングシステム [OCF READING SYSTEM]

(OCFコンテナにパッケージ化された)OEBPS出版物を受け取り、コンテンツの消費者が利用できるようにするための、ハードウェアおよび/またはソフトウェアの組み合わせを指す。OCFリーディングシステムは多様なアーキテクチャを持つことができる。OCFリーディングシステムは完全に一つのデバイスとして実装してもよい(MAY)し、また複数のコンピュータ間に分割して実装してもよい(MAY)。全てのOCFリーディングシステムはOEBPS出版物を受け取らなければならない(MUST)が、OEBPS出版物を直接受け取るのが特にOCFリーディングシステムのひとつのコンポーネントであるリーディングデバイスである必要はない(need not)。リーディングシステムは、圧縮、インデックス化、暗号化、権利管理、配信などの付加的な処理機能を持ってもよい(MAY)

MIME

Multipurpose Internet Mail Extensions (http://www.isi.edu/in-notes/rfc2045.txt)。「MIMEメディアタイプ」はオブジェクトのコンテントタイプを指定する標準的な方法である。

RFC

字義では「Request For Comments」の意であるが、一般的にはInternet Engineering Task Force (IETF)により出版されたドキュメントを指す。 http://www.ietf.org/rfc.html 参照。

RELAX NG

XMLのスキーマ言語 (http://www.relaxng.org/)。

ルートファイル [ROOTFILE]

出版物を表示する際にトップレベルに来るファイルを指す。他のすべての要素を参照する「ルート」ファイル、もしくは表示自体をカプセル化したファイル。OEBPSのルートファイルはOEBPSパッケージファイルである。PDFの表示を含むPDFファイルもルートファイルと成り得る。

XML

Extensible Markup Language (http://www.w3.org/TR/xml11/)。

ZIP

業界のデファクトスタンダードであるバンドルおよび圧縮形式 (http://www.pkware.com/business_and_developers/developer/appnote)。

1.3

    他の仕様との関係

本仕様では他の仕様のサブセットおよびアプリケーションが組み合わされている。これらは互いに、電子文書の構築、編成、表示および明確な変換を容易にしている。

  1. The XML 1.1 Extensible Markup Language specification (http://www.w3.org/TR/xml11/)
  2. The OEBPS 1.2 Open eBook Publication Structure specification (http://www.idpf.org/oebps/oebps1.2/index.htm)
  3. The XML 1.1 namespace specification (http://www.w3.org/TR/xml-names11/)
  4. The Unicode Standard, Version 4.0. Reading, Mass.: Addison-Wesley, 2003, 新たなバージョンの発表によって時折アップデートされる (標準規格とUnicode Character Databaseに関する最新バージョンと他のバージョンの追加情報については http://www.unicode.org/unicode/standard/versions を参照)。
  5. Particular MIME media types (http://www.ietf.org/rfc/rfc4288.txt および http://www.iana.org/assignments/media-types/index.html)
  6. Open Document Format for Office Applications (Open Document) v1.0 (http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf)
  7. ZIP format (http://www.pkware.com/business_and_developers/developer/appnote)
  8. XML-Signature Syntax and Processing (http://www.w3.org/TR/2002/REC-xmldsig-core-20020212)
  9. XML Encryption Syntax and Processing (http://www.w3.org/TR/2002/REC-xmlenc-core-20021210)
  10. Web Content Accessibility Guidelines 1.0 (http://www.w3.org/TR/WCAG10/)

1.4

    適合性

本稿で使用されるキーワード、「~しなければならない(MUST)」、「~してはならない(MUST NOT)」、「~する必要がある(REQUIRED)」、「~するべきである(SHALL)」、「~するべきではない(SHALL NOT)」、「~するべきである(SHOULD)」、「推奨する(RECOMMENDED)」、「~してもよい(MAY)」、「付加的な(OPTION)」はRFC 2119 (http://www.ietf.org/rfc/rfc2119.txt) において説明されているとおり解釈されなければならない(MUST)
このセクションではOCFの適合性について定義する。

1.4.1

    コンテナの適合性

用語「適合OCF抽象コンテナ」(Conforming OCF Abstract Container)は、本仕様書にて定義されるすべての適合基準を満たすOCF抽象コンテナ(セクション2.2参照)を表す。用語「適合OCF ZIPコンテナ」(Conforming OCF ZIP Container)は、コンテンツが適合OCF抽象コンテナから成り、関連するZIPコンテナの適合基準(セクション4参照)を満たすZIPアーカイブを表す。
この仕様書に定義された他の適合基準に加え、適合OCF抽象コンテナは以下の条件を満たさなければならない(MUST)

1.4.2

    リーディングシステムの適合性

用語「適合OCFリーディングシステム」(Conforming OCF Reading System)は、本仕様書により定義された必要な機能をすべてサポートしたOCFリーディングシステムを表す。
OCFリーディングシステムが本仕様書で定義された機能をすべてサポートしない場合、そのOCFリーディングシステムは適合性を主張してはならない(MUST NOT)。また、そのOCFリーディングシステムがサポートしている機能を容易に判別できるドキュメントを提供すべきである(SHOULD)
OCFリーディングシステムはサポートしているアクセシビリティ機能を容易に判別できるドキュメントを提供すべきである(SHOULD)。このドキュメントはW3C Web Content Accessibility Guidelines (セクション1.5参照)の適切なバージョンを満たすべきである(SHOULD)

1.5    アクセシビリティ

電子書籍は、著者および出版社がその制作時にアクセシビリティを考慮し業界標準に従うことで、障害のあるユーザでも読書を可能にし得る(MAY)。OCFを利用してパッケージ化/配布されるOEBPSは、この形式で配布される書籍を可能な限り多くのユーザが利用できることを保証するため、先にOEBPSワーキンググループにより制定されたaccessibility standards set (http://www.idpf.org/idpf_groups/oebpswg.htm) に従うべきである(SHOULD)。これにはW3C Web Content Accessibility Guidelines 1.0 (http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/) を順守すること、また正式版がリリースされた場合にはWeb Content Accessibility Guidelines 2.0を順守すること (ドラフトは http://www.w3.org/TR/WCAG20/ にて入手できる)が項目として含まれる。OCFを利用してパッケージ化/配布されるOEBPS出版物は、コンテンツの表示のされ方に関わらず、コンテンツのアクセシビリティを確保するためのいかなる機能も妨げてはならない(MUST NOT) (例えば、特定のOCFリーディングシステムにのみ対応した形式や、コンテナ内のOEBPS自体を配布形式としてはならない)。

1.6    将来の方針

本仕様の後続バージョンはリリース1.0にて定められた方向性の延長線上に位置するものになると考えられる。具体的には以下の項目が期待される。
OCF仕様の後続バージョンは以下の項目を含む可能性がある(MAY)

2    OCFの概要

2.1    OCF: 汎用的なコンテナ技術

OCFは、OEBPSに限らず他のファイル形式においても利用できるよう設計された汎用的なコンテナ技術である。特に、OCFはODFの後続バージョンがOCFを利用できるよう、ODF 1.0で利用されるコンテナ技術に対して上位互換となるように設計されている。

2.2    「抽象コンテナ」 vs. 「物理コンテナ」

「抽象コンテナ」はコンテナのコンテンツのためにファイルシステムのモデルを定義するものである。ルートディレクトリがひとつだけ存在し、コンテナのすべてのコンテンツがその中に存在しなければならない(MUST)。OCFに必須の(REQUIRED)特定のファイルについては、ルートディレクトリ直下の META-INF ディレクトリに存在しなければならない(MUST)。出版物で利用されるすべての電子データはコンテナのルートディレクトリから始まるディレクトリツリーの中に属していなければならない(MUST)。
「物理コンテナ」は抽象コンテナの物理的な構造を示すものである。本仕様書では、ファイルシステムコンテナおよびZIPコンテナの二つの物理コンテナ技術に対し、どう抽象コンテナを対応付けなければならない(MUST)かを定義している。
出版物は、ファイルシステムコンテナ、ZIPコンテナのいずれを使用した場合でも同じように表示されなければならない(MUST)。どちらの場合であっても、OCFリーディングシステムは出版物の表示形式を決定するためルートファイルを開く。 

2.3    

(このセクションは参考情報。)
このセクションでは単一の表示形式のみのコンテナ、および複数の表示形式を持つコンテナの例を示す。厳密な説明に関してはセクション3.5.1を参照の事。

2.3.1    単純な出版物と抽象コンテナ、ZIPコンテナの場合

前セクションのおさらいとして、OEBPS 1.2形式のDickensの電子書籍「大いなる遺産」 ("Great Expectations") の場合を考える。この電子書籍はOEBPS 1.2パッケージファイル ("Great Expectations.opf") と、カバーページのHTMLファイル (例えば"cover.html")、各章のHTMLファイル (例えば"chapter01.html") から構成されているとする。このとき、出版物のコンテンツは次のようになる。

OEBPS 1.2出版物:
     Great Expectations.opf
     cover.html
     chapters/
          chapter01.html
          chapter02.html
          ... 各章のHTMLファイル ...

抽象コンテナのコンテンツは、これら出版物のすべてのデータと、OCFで定義されている META-INF ディレクトリおよびその中に入ったいくつかのファイルとなる。container.xml は必ず必要となることに注意して欲しい。 META-INF ディレクトリ内の各ファイルの詳細についてはセクション3を参照のこと。

抽象コンテナ:
     META-INF/
          container.xml
          [manifest.xml]
          [metadata.xml]
          [signatures.xml]
          [encryption.xml]
          [rights.xml]
     OEBPS/
          Great Expectations.opf
          cover.html
          chapters/
               chapter01.html
               chapter02.html
               ... 各章のHTMLファイル ...

上記の抽象コンテナをファイルシステムコンテナと対応付ける場合、ファイルシステム内のディレクトリ構造は上のOCF抽象コンテナのディレクトリ構造と完全に対応する。

ファイルシステムコンテナ:
    ...ファイルシステム内のディレクトリ.../
    META-INF/
        container.xml
        [manifest.xml]
        [metadata.xml]
        [signatures.xml]
        [encryption.xml]
        [rights.xml]
    OEBPS/
        Great Expectations.opf
        cover.html
        chapters/
             chapter01.html
             chapter02.html
             ... 各章のHTMLファイル ...

上記の抽象コンテナをZIPコンテナに格納する場合は、ZIPアーカイブのコンテンツ自体は上のディレクトリ構造と対応するが、それに加えてコンテナのメディアタイプを判別しやすくするため、ZIPアーカイブの最初のファイルとして"mimetype"を含まなければならない(MUST) (セクション3.4参照)。

ZIPコンテナ:
     mimetype
     META-INF/
          container.xml
          [manifest.xml]
          [metadata.xml]
          [signatures.xml]
          [encryption.xml]
          [rights.xml]
     OEBPS/
          Great Expectations.opf
          cover.html
          chapters/
               chapter01.html
               chapter02.html
               ... 各章のHTMLファイル ...

このときの META-INF/container.xml の内容は次のようになる。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
          <rootfiles>
          <rootfile full-path="OEBPS/Great Expectations.opf"
           media-type="application/oebps-package+xml" />
          </rootfiles>
     </container>

注意: 名前空間の値 "urn:oasis:names:tc:opendocument:xmlns:container" については、OASIS技術委員会の承認が降りるまでは暫定的なものである。

2.3.2     一つのコンテナが複数の表示形式を持つ場合

場合によっては、OCFコンテナが同じ出版物ではあるが異なる表示形式を持つことがある。例えば、閲覧にはOEBPS出版物を使う一方、印刷用にPDFを持つようなコンテナが考えられる。名前の衝突を防ぐため、各表示形式はそれぞれ個別のサブディレクトリに格納し、container.xmlでは複数の <rootfile> を定義することが推奨されている(REOCMMENDED)

抽象コンテナ:
     META-INF/
          container.xml – 注: 複数の <rootfile> 要素を持つ
          [manifest.xml]
          [metadata.xml]
          [signatures.xml]
          [encryption.xml]
          [rights.xml]
     OEBPS/
          Great Expectations.opf
          cover.html
          chapters/
               chapter01.html
               chapter02.html
               ... 各章のHTMLファイル ...
     PDF/
          Great Expectations.pdf

このときの META-INF/container.xml の内容は次のようになる。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="
urn:oasis:names:tc:opendocument:xmlns:container">
          <rootfiles>
               <rootfile full-path="OEBPS/Great Expectations.opf"
                media-type="application/oebps-package+xml" />
               <rootfile full-path="PDF/Great Expectations.pdf"
                media-type="application/pdf" />
          </rootfiles>
     </container>

3     OCFコンテナコンテンツ

3.1     ファイルとディレクトリ構造

OCF「抽象コンテナ」の仮想的なファイルシステムでは、そのコンテナ内のすべてのコンテンツを含むルートディレクトリがひとつだけ存在しなければならない(MUST)
ルートディレクトリ内の以下のファイル名は予約されている。
"mimetype"ファイルについてはセクション4で扱う。 META-INF/ ディレクトリ以下にはOCFで利用される予約ファイルが含まれる。抽象コンテナに含まれる"mimetype"はルートレベルもしくは META-INF/ ディレクトリ内に存在する必要があるが、その他の出版物に利用されるすべてのファイルはルートディレクトリ以下の任意の場所に存在してもよい(MAY)
複数の表現方法が利用されるような場合、あるいは本仕様書の後続バージョンにおいて複数の出版物を含んだコンテナがサポートされた場合に名前の衝突が発生する可能性を小さくするため、個々の出版物はそれぞれ専用のサブディレクトリ以下に格納することが推奨される(RECOMMENDED)

3.2     他の要素を参照するための相対IRI

抽象コンテナ内のファイルは、その物理コンテナの種類に関わらず(ファイルシステムコンテナでもZIPコンテナでも)、相対IRI参照 (http://www.ietf.org/rfc/rfc3987.txt および http://www.ietf.org/rfc/rfc3986.txt) によりにより互いを参照する。例えば、"chapter1.html"内で同じディレクトリ内に存在する画像"image1.jpg"を参照する場合、"chapter1.html"には次のように記述する。

     <img src="image1.jpg" alt="" …/>

相対IRI参照について、ベースIRI (RFC 3986参照)は与えられたファイル形式についての適当な言語仕様によって決定される。例えば、CSSスタイルシートとプロパティ宣言における相対IRI参照の働きはCSS仕様によって定義される。対象の言語仕様がRFC 3987以降のRFCを参照している場合、その言語のコンテンツに対しては先のRFCが適用される。
多くの言語仕様の場合とは異なり、 META-INF/ ディレクトリ内の各ファイルのベースIRIは、デフォルトでは抽象コンテナのルートフォルダとなる。例えば、 META-INF/container.xml が以下のような内容であった場合、"OEBPS/Great Expectations.opf"は META-INF/ ディレクトリではなく抽象コンテナのルートディレクトリからの相対パスとなる。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="
urn:oasis:names:tc:opendocument:xmlns:container">
          <rootfiles>
               <rootfile full-path="OEBPS/Great Expectations.opf"
                media-type="application/oebps-package+xml" />    
          </rootfiles>
     </container>

3.3     ファイル名

「ファイル名」は、抽象コンテナ内のディレクトリもしくはディレクトリ内のファイルのいずれかの名前を示すものである。抽象コンテナ内のあるディレクトリに対し、「パス名」はフルパスに含まれるすべてのディレクトリ名を "/" でつないだ文字列となる。抽象コンテナ内のあるファイルに対する「パス名」は、すべてのディレクトリ名を "/" でつなぎ、更に "/" に続いてファイル名をつなげた文字列である。下記に示した「ファイル名」の制限は、現在一般的に用いられるオペレーティングシステムにおいて、ディレクトリ名およびファイル名を修正することなく利用できることを考慮している。本仕様書では、OCF準拠のファイル名を表すことができないOCFリーディングシステムにおいて、どのようにその非互換性を扱うかについては示さない。
「Conforming OCF Content」(適合OCFコンテンツ)は次の要求を満たす。
ZIPツールの中には、ファイル名としてUnicodeの範囲をすべてサポートしていないもの、あるいはASCIIのみサポートしているものがあることに注意が必要である。そのような制限のあるZIPツールを利用する場合は、ファイル名をASCIIの範囲に限定してしまうことがベストかも知れない(MAY)。伸長時にファイルの名前が保持できない場合、コンテンツ内でURIによってそれらのファイルが参照されている際は名前を置き換える必要があり得る。

3.4     コンテナメディアタイプの判別

アプリケーションがファイルのメディアタイプを判別する必要がある、というケースは少なくない。通常はファイルの拡張子で判断する。アプリケーションはファイルの内部を調べること無く簡単にファイルの形式を判断できる。OCFコンテナファイルは、アプリケーションがOCFコンテナであることを判断できるように、拡張子".epub"を使用するべきである(SHOULD)
ファイルの拡張子からメディアタイプを判別するために、一般的にそのファイルを処理するエージェントはオペレーティングシステムにファイル拡張子とメディアタイプとの関係を登録する。OCFコンテナファイルを対象とするアプリケーションは、メディアタイプ"application/epub+zip"と、対応する拡張子".epub"を登録すべきである(SHOULD)
しかしながら実際は、ファイル拡張子による判別は全く信用できない。ゆえに、ファイル名や拡張子によらずそのファイルを判断するより強固な方法が必要となる。そのために発展した一つの手法が、ファイルの特定のオフセットに特定の情報を埋め込む決まりとする、というやり方である。ファイルを処理するエージェントは特定の位置をチェックし、ファイルがOCFコンテナであるかを判断できる。
ZIPアーカイブでこの手法を実現するには、ZIPアーカイブの最初ファイルに"mimetype"という無圧縮・非暗号化ファイルを配置する。ファイルのコンテンツはその("mimetype")ファイルのメディアタイプとなる。OCFコンテナは、ZIPアーカイブの最初のファイルとして、ASCII文字列で"application/epub+zip"と記述した"mimetype"ファイルを配置しなければならない(MUST)。この手法に関する詳細はセクション4を参照のこと。

3.5     META-INF

すべての有効なOCFコンテナは、コンテナファイルシステムのルートレベルに"META-INF"というディレクトリを持たなければならない(MUST)。このディレクトリには、下記に示す、出版物に関するコンテンツ、メタ情報、デジタル署名、暗号化、著作権管理およびその他の情報を記述したファイルが含まれる。
下記に示す、"META-INF/"階層に存在する可能性のある(MAY)ファイルのセマンティック(意味)は指定されている。適合OCFリーディングシステムでは、"META-INF/"階層のその他のファイルは無視されなければならない(MUST)

3.5.1     コンテナ – META-INF/container.xml (必須)

(以下、規定。)

すべての有効なOCFコンテナは、コンテナファイルシステムのルートレベルにある"META_INF"内に"container.xml"というファイルを持たなければならない(MUST)。container.xml ファイルは、出版物のOEBPS形式のルートファイル、および付加的に(OPTIONAL)コンテナに含まれる表示形式のMIMEタイプおよびパスを判別しなければならない(MUST)
container.xmlファイルは暗号化されてはならない(MUST NOT)
container.xmlファイルはXMLであり、その要素および属性に "urn:oasis:names:tc:opendocument:xmlns:container" という名前空間を利用している。このバージョンに準拠するすべてのコンテナは"version="1.0""という属性を含まなければならない(MUST)
container.xmlのルート要素とならなければならない(MUST) <container> 要素を記述するRELAX NG OCFスキーマについては附録Aを参照のこと。
<rootfiles> 要素は、"application/oebps-package+xml"というメディアタイプを持つ <rootfile> 要素を少なくとも一つ含まなければならない(MUST)。メディアタイプが"application/oebps-package+xml"である <rootfile> 要素は一つとするべきである(SHOULD)。メディアタイプが"application/oebps-package+xml"の最初の <rootfile> 要素により参照されるファイルがOEBPSのルートファイルと見なされる。OEBPSのルートファイル(OEBPSパッケージファイル)は暗号化されてはならない(MUST NOT)
各 <rootfile> 要素にて、含まれる出版物の各表示形式のルートファイルを指定する。多くの場合、ルートファイルは表示に必要なファイルの一覧を含む。OEBPSの場合であれば、ルートファイルはOEBPSパッケージファイルとなるが、そのファイルの <manifest> 要素はOEBPSの表示に使われるファイルの一覧となる。逆に、ルートファイルがただ一つのファイルとなる場合もあり得る(MAY)

 (例: 参考情報。)

次の例は、OEBPS出版物を含むOCFコンテナの場合の container.xml のサンプルである。ルートファイル(OEBPSパッケージファイル)は"OEBPS/My Crazy Life.opf"とする。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
          <rootfiles>
               <rootfile full-path="OEBPS/My Crazy Life.opf"
                media-type="application/oebps-package+xml" />
          </rootfiles>
     </container>

 (例: 参考情報。)

次の例は、出版物のPDFを追加した場合のサンプルである。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
          <rootfiles>
               <rootfile full-path="OEBPS/My Crazy Life.opf"
                media-type="application/oebps-package+xml" />
               <rootfile full-path="PDF/My Crazy Life.pdf"
                media-type="application/pdf" />
          </rootfiles>
     </container>

(以下、規定。)

OEBPSパッケージファイルに含まれる <manifest> 要素は、OEBPSの処理において利用されるただ一つのマニフェストを指定する。ZIPアーカイブ内の補助的なマニフェスト情報、あるいは付加的な(OPTIONAL) "manifest.xml"ファイルはOEBPSの処理を目的として使われてはならない(MUST NOT)。ZIPアーカイブ内の無関係なファイル(すなわち、META-INF内のファイルや別の表示形式のファイルなど、ZIPアーカイブに含まれるファイルの内、パッケージファイルの <manifest> 要素にリストされていないもの)はOEBPS出版物の処理には使われてはならない(MUST NOT)
フルパス属性の値は、(RFC 3986で定義される) "path-rootless"の形式だけからなる(RFC 3986で定義される) "path component"を含まなければならない (MUST)。各path componentは、それらが使われるコンテナのルートとの相対となる。
適合OCFユーザエージェント (Conforming OCF User Agent)では、認識されない要素(およびコンテンツ)や属性はcontainer.xmlファイルの中で無視されなければならない(MUST)。これには他の名前空間からの、認識されない要素や属性も含まれる。
適合するcontainer.xmlファイルは、他の名前空間からの要素(および要素の子ノード)と属性を取り除いた結果、ルート要素として <container> 要素を持つRELAX NG OCFスキーマに対してvalid(妥当)でなければならない(MUST)

 (例: 参考情報。)

次の場合は適合する。

     <?xml version="1.0"?>
     <container version="1.0"
      xmlns="
urn:oasis:names:tc:opendocument:xmlns:container"
      foo:xmlns="..."
      
foozle:xmlns="..." />
          <foo:bar />
          <rootfiles foozle:identifier=
"bar"]]>
          ...
          </rootfiles>
     </container>

次の場合は、 <foo> 要素がnon-namespace-qualifiedな使い方となっているため、適合しない。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"]]>
          <foo />
          <rootfiles>
          ...
          </rootfiles>
     </container>

次の場合は、 <rootfiles> 要素の "identifier" 属性がnon-namespace-qualifiedな使い方となっているため、適合しない。

     <?xml version="1.0"?>
     <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"]]>
          <rootfiles identifier=
"bar"]]>
          ...
          </rootfiles>
     </container>

3.5.2     マニフェスト – META-INF/manifest.xml (オプション)

有効なOCFコンテナは、ルートレベルにある"META-INF"内に付加的に(OPTIONAL) "manifest.xml"というファイルを持つ場合がある。ファイルが存在する場合、その内容はODF 1.0マニフェストスキーマ (http://www.oasis-open.org/committees/download.php/12570/OpenDocument-manifest-schema-v1.0-os.rngに定義された通りでなければならない(MUST)
manifest.xmlが存在する場合、このファイルは暗号化されてはならない(MUST NOT)

3.5.3     メタ情報 – META-INF/metadata.xml (オプション)

有効なOCFコンテナは、ルートレベルにある"META-INF"内に"metadata.xml"というファイルを持つ場合がある。ファイルが存在する場合、コンテナレベルのメタ情報として利用されなければならない(MUST)。OCF 1.0では、そのようなコンテナレベルのメタ情報は明示されない。このファイルに関しては、将来拡張される可能性が高い(SHOULD)
"META-INF/metadata.xml"が存在する場合、その内容はnamespace-qualifiedな要素からなるvalid(妥当)なXMLでなければならない(MUST)。これは、後続バージョンのOCFにおいて、このファイルの要素と属性について特定の文法と名前空間を指定する可能性があり(MAY)、その際の衝突を避けるためである。
metadata.xmlが存在する場合、このファイルは暗号化されてはならない(MUST NOT)

3.5.4     デジタル署名 – META-INF/signatures.xml (オプション)

コンテナファイルシステムのルートレベルにある"META-INF"に付加的に(OPTIONAL)存在する場合のある"signatures.xml"は、コンテナおよびそのコンテンツのデジタル署名を持つ。このファイルは、ルート要素を <signatures> とするXMLドキュメントである。 <signatures> 要素は、"XML-Signature Syntax and Processing" (http://www.w3.org/TR/2002/REC-xmldsig-core-20020212) に定義されている通りに、 <Signature> 型の子要素を含む。署名は出版物やその他の表示形式に対して適用することができ、その対象は全体でも一部の表示形式でもよい。XML Signatureは、XMLだけでなく、任意の種類のデータの署名を指定することができる。
signatures.xmlが存在する場合、このファイルは暗号化されてはならない(MUST NOT)
signatures.xmlが存在しない場合、OCFコンテナがコンテナレベルで署名状況の情報を提供することはない。しかしながら、付加的に含まれる表示形式でデジタル署名が存在することは可能である。
signatures.xmlのルート要素とならなければならない(MUST) <signature> 要素を記述するRELAX NG OCFスキーマについては附録Aを参照のこと。
OCFエージェントがコンテナ内にデータの署名を作成する場合、signatures.xmlファイルの <signatures> 要素の新しい子要素 <Signature> として署名を追加するべきである(SHOULD)
signatures.xmlファイルの各 <Signature> 要素は、XML Signatureの <Manifest> 要素およびその下位要素 <Reference> を用いて、署名を適用するデータをIRIで特定する。それぞれ格納されたファイルが個別に署名される場合、もしくは一括して署名される場合がある(MAY)。各ファイルを個別に署名する場合、要素の妥当性を判断するダイジェスト値が個別に作成される。このアプローチではSignature要素が大きくなるかもしれない(MAY)。各ファイルが一括して署名される場合は、署名する一連のファイルがXML Signatureの <Manifest> 要素に列挙され、一つ以上の <Signature> 要素から参照される。
signatures.xmlファイルを除き、コンテナ内のすべてのファイル、あるいはその一部にそのまま署名することが可能である。signatures.xmlを署名するべき(SHOULD)か、また署名する場合はどのようにするべき(SHOULD)かは、署名者の目的による。
XML Signatureは署名とセマンティック(意味)とを結びつける事はないが、例えばSingature要素に署名の説明を加えるなどの方法で、特定のエージェントがセマンティック(意味)の情報を含むことはあるかもしれない(MAY)。XML Signatureは、(例えばSignatureProperties要素により)どのように署名に付加情報が加えられ得るかを記述する。

 (例: 参考情報。)

次のXMLは"signatures.xml"ファイルの例であり、"XML-Signature Syntax and Processing"のセクション2の例に基づいている。この例では、コンテナ内に署名を一つ含み、その署名は OEBPS/book.html と OEBPS/images/cover.jpeg の二つに適用される。

     <signatures>
          <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
               <SignedInfo>
               <CanonicalizationMethod 
                Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
               <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
               <Reference URI="#Manifest1">
                    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                    <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
               </Reference>
          </SignedInfo>
          <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
          <KeyInfo>
               <KeyValue>
                    <DSAKeyValue>
                         <P>...</P><Q>...</Q><G>...</G><Y>...</Y>
                    </DSAKeyValue>
               </KeyValue>
          </KeyInfo>
          <Object>
          <Manifest Id="Manifest1">
               <Reference URI="OEBFPS/book.xml">
                    <Transforms>
                         <Transform
                          Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                    </Transforms>
               </Reference>
               <Reference URI="OEBFPS/images/cover.jpeg"/>
                    </Manifest>
               </Object>
          </Signature>
     </signatures>

3.5.5     暗号化 – META-INF/encryption.xml (オプション)

コンテナファイルシステムのルートレベルにある"META-INF"に付加的に(OPTIONAL)存在する場合がある"encryption.xml"は、コンテナ内のコンテンツに対するすべての暗号化の情報を持つ。このファイルは、ルート要素が <encryption> となるXMLドキュメントである。 <encryption> 要素は、XML Encryption Syntax and Processing” (http://www.w3.org/TR/2002/REC-xmlenc-core-20021210) に定義されている通り、 <EncryptedKey> および <EncryptedData> を子要素して持つ。EncryptedKey 要素には、一つ以上のコンテナファイルがどのように暗号化されているかが記述される。したがって、コンテナ内の何らかの要素が暗号化されている場合、その要素が暗号化されていること、そしてその要素がどのように暗号化されているかを"encryption.xml"に明示しなければならない(MUST)
<EncryptedKey> 要素はコンテナ内で利用される各暗号化キーを表し、 <EncryptedData> 要素は暗号化された各ファイルを示す。それぞれの <EncryptedData> 要素は、XML Encryptionにて示されている通り、それぞれ一つの <EncryptedKey> 要素を参照する。
encryption.xmlのルート要素とならなければならない(MUST) <encryption> 要素を記述するRELAX NG OCFスキーマについては附録Aを参照のこと。
encryption.xmlが存在しない場合、OCFコンテナが暗号化状況の情報を提供することはない。
OCFでは各ファイルが個別に暗号化される。これはセキュリティとパフォーマンスのトレードオフによるものであり、この方法によりコンテナのコンテンツを順次的に復号化できる。また、パッケージ全体のディレクトリ構造やファイル名も残る。
OCFではXML Encryptionを暗号化のフレームワークとしており、多数の選択肢の中から使用するアルゴリズムを選択できる。XML Encryptionは任意のデータの暗号化と結果をXMLで表現するプロセスを指定している。OCFコンテナ内にXML以外のデータが含まれるかもしれないが(MAY)、OCFコンテナ内の全てのデータの暗号化にXML Encryptionを利用できる。OCF暗号化はファイル全体の暗号化のみをサポートしている。encryption.xmlが存在する場合、このファイルは暗号化されてはならない(MUST NOT)
データが暗号化された場合はOCFコンテナの暗号化されていないデータを置き換える。例えば、"photo.jpeg"という画像を暗号化する場合、もとのphoto.jpegを暗号化した内容で置き換えるべきである(SHOULD)。ZIPコンテナに格納する際は、データは暗号化前に圧縮されていなければならない(MUST)。すなわち、Flateアルゴリズムが使われなければならない(MUST)。ZIPディレクトリ内では、Flateアルゴリズムよりも、暗号化したファイルを格納すべきである(SHOULD)。
次のファイルは(暗号化の形式に関わらず)決して暗号化されてはならない(MUST NOT)
  • mimetype

  • META-INF/container.xml

  • META-INF/manifest.xml

  • META-INF/metadata.xml

  • META-INF/signatures.xml

  • META-INF/encryption.xml

  • META-INF/rights.xml

  • OEBPS rootfile (OEBPSパッケージファイル)

XML SignatureのDecryption変換により、署名された要素がさらに暗号化される可能性がある(MAY)。この機能により、例えばOCFエージェントのようなアプリケーションで、署名される前に暗号化されたデータと、署名された後に暗号化されたデータとを判別することが可能となる。署名された後に暗号化されたファイルに関してのみ、署名の妥当性を判断するダイジェストの計算前に復号化されなければならない(MUST)

 (例: 参考情報。)

次の例は、"XML Encryption Syntax and Processing"のセクション2.2.1からの抜粋であり、image.jpegという要素がsymmetric key algorithm (AES)で暗号化され、更に対応するsymmetric keyがJohn Smithのキーとのasymmetric key algorithm (RSA)で暗号化されている。

     <encryption
      xmlns ="urn:oasis:names:tc:opendocument:xmlns:container"
      xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
      xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
          <enc:EncryptedKey Id="EK">
               <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
               <ds:KeyInfo>
                    <ds:KeyName>John Smith</ds:KeyName>
               </ds:KeyInfo>
               <enc:CipherData>
                    <enc:CipherValue>xyzabc</enc:CipherValue>
               </enc:CipherData>
               </enc:EncryptedKey>
          <enc:EncryptedData Id="ED1">
               <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>
               <ds:KeyInfo>
               <ds:RetrievalMethod URI="#EK"
                Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
               </ds:KeyInfo>
          <enc:CipherData>
               <enc:CipherReference URI="image.jpeg"/>
          </enc:CipherData>
          </enc:EncryptedData>
     </encryption>

3.5.6     著作権管理 – META-INF/rights.xml (オプション)

有効なOCFコンテナは、ルートレベルにある"META-INF"内に付加的に(OPTIONAL) "rights.xml"というファイルを持つ場合がある。このファイルは、権利保有者、仲介者、ユーザの間での出版物の正当な流通を目的としたdigital rights management (DRM)情報のためのものである。OCF 1.0ではDRM情報の必須の(REQUIRED)フォーマットは存在しないが、本仕様書の後続バージョンではDRM情報の特定のフォーマットを指定する可能性がある(MAY)

"META-INF/rights.xml"が存在する場合、そのファイルは利用するXML名前空間に適合した整形式のXMLドキュメントでなければならず(MUST)、その内容はnamespace-qualifiedな要素からなるvalid(妥当)なXMLであるべきである(SHOULD)。これは、後続バージョンのOCFにおいて万一このファイルの特定のフォーマットを指定した場合(MAY)の衝突を避けるためである。

rights.xmlファイルは暗号化されてはならない(MUST NOT)
rights.xmlが存在しない場合、OCFコンテナがそのいかなる内容についても著作権の情報を提供することはない。 

4     ZIPコンテナ

OCFのZIPコンテナは、http://www.pkware.com/business_and_developers/developer/appnote/ のアプリケーションノートで指定されるZIPフォーマットを、下記の範囲でサポートする。
ZIPアーカイブには下記の特別なフィールドが設定される。
ZIPコンテナの最初のファイルは、MIMEタイプ(すなわちASCIIで"application/epub+zip"。パディングやスペース、大文字は入れないこと)が記述された、ファイル名がASCIIで'mimetype'のファイルでなければならない(MUST)。このファイルは圧縮・暗号化されてはならず(MUST NOT)、ZIPヘッダに拡張フィールドが存在してはならない(MUST NOT)。この場合、RFC 2048にあるように、ZIPコンテナは便利な"magic number"をサポートすることになる。

附録 A: RELAX NG OCFスキーマ

<?xml version="1.0" encoding="UTF-8"?>
<choice xmlns="http://relaxng.org/ns/structure/1.0">
     <element name="container">
          <attribute name="version">
               <value>1.0</value>
          </attribute>
          <attribute name="xmlns">
               <value>urn:oasis:names:tc:opendocument:xmlns:container</value>
          </attribute>
          <element name="rootfiles">
               <oneOrMore>
                    <element name="rootfile">
                         <attribute name="full-path">
                              <text/>
                         </attribute>
                         <attribute name="media-type">
                              <text/>
                         </attribute>
                    </element>
               </oneOrMore>
          </element>
     </element>

     <element name="signatures">
          <attribute name="xmlns">
               <value>urn:oasis:names:tc:opendocument:xmlns:container</value>
          </attribute>
          <oneOrMore>
               <element name="Signature" ns="
http://www.w3.org/2001/04/xmldsig#">
               <externalRef
                href="
http://www.w3.org/Signature/2002/07/xmldsig-core-schema.rng"/>
               </element>
          </oneOrMore>
     </element>

     <element name="encryption">
          <attribute name="xmlns">
               <value>urn:oasis:names:tc:opendocument:xmlns:container</value>
          </attribute>
          <oneOrMore>
          <choice>
               <element name="EncryptedData" ns="
http://www.w3.org/2001/04/xmlenc#">
                    <externalRef
                     href="
http://www.w3.org/Encryption/2002/07/xenc-schema.rng"/>
               </element>
               <element name="EncryptedKey" ns="
http://www.w3.org/2001/04/xmlenc#">
                    <externalRef
                     href="
http://www.w3.org/Encryption/2002/07/xenc-schema.rng"/>
               </element>
          </choice>
          </oneOrMore>
      </element>

</choice>

[訳注:  http://www.daisy.org/epub/issues/attribute-namexmlns-bug にて、
     <attribute name="xmlns">
     はバグであることが指摘されている。]

附録 B: 例

次の例は、ZIPコンテナ内に署名および暗号化されたOEBPS出版物とPDFを持つ場合のOCF形式の使い方を示したものである。

Ordered list of files in the ZIP Container:
     mimetype
     META-INF/container.xml
     META-INF/signatures.xml
     META-INF/encryption.xml
     OEBPS/As You Like It.opf
     OEBPS/book.html
     OEBPS/images/cover.png
     PDF/As You Like It.pdf

The mimetype file:

     application/epub+zip

The META-INF/container.xml file:

<?xml version="1.0"?>
<container version="1.0" xmlns="
urn:oasis:names:tc:opendocument:xmlns:container">
     <rootfiles>
          <rootfile full-path="OEBPS/As You Like It.opf"
               media-type="application/oebps-package+xml" />
          <rootfile full-path="OEBPS/As You Like It.pdf"
               media-type="application/pdf" />
     </rootfiles>
</container>

The META-INF/signatures.xml file:

<?xml version="1.0"?>
<signatures xmlns="
urn:oasis:names:tc:opendocument:xmlns:container"> 
  <Signature Id="AsYouLikeItSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">

    <!-- SignedInfo is the information that is actually signed. In this case -->
    <!-- the SHA1 algorithm is used to sign the canonical form of the XML    -->
    <!-- documents enumerated in the Object element below                    -->
    <SignedInfo>
      <CanonicalizationMethod 
       Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>

      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>

      <Reference URI="#AsYouLikeIt">

        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

        <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
      </Reference>
    </SignedInfo>

    <!-- The signed value of the digest above using the DSA algorithm -->

    <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>

    <!-- The key to use to validate the signature -->
    <KeyInfo>
      <KeyValue>

        <DSAKeyValue>
          <P>...</P><Q>...</Q><G>...</G><Y>...</Y> 
        </DSAKeyValue>
      </KeyValue>
    </KeyInfo>

    <!-- The list documents to sign. Note that the canonical form of XML   -->
    <!-- documents is signed while the binary form of the other documents -->
    <!-- is used -->
    <Object>
      <Manifest Id="AsYouLikeIt">
        <Reference URI="OEBPS/As You Like It.opf">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
          </Transforms>
        </Reference>
        <Reference URI="OEBPS/book.html">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
          </Transforms>
        </Reference>
        <Reference URI="OEBPS/images/cover.png" />
        <Reference URI="PDF/As You Like It.pdf" />
      </Manifest>

    </Object>

  </Signature>
</signatures>

The META-INF/encryption.xml file:

<?xml version="1.0"?>
<encryption
 xmlns="urn:oasis:names:tc:opendocument:xmlns:container" 
 xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
 xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

  <-- The RSA encrypted AES-128 symmetric key used to encrypt the data -->
  <enc:EncryptedKey Id="EK”>
    <enc:EncryptionMethod  Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
    <ds:KeyInfo>
      <ds:KeyName>John Smith</ds:KeyName>
    </ds:KeyInfo>
    <enc:CipherData>
      <enc:CipherValue>xyzabc...</enc:CipherValue>
    </enc:CipherData>
  </enc:EncryptedKey>

  <!-- Each EncryptedData block identifies a single document that has been    -->
  <!-- encrypted using the AES-128 algorithm. The data remains stored in it’s -->
  <!-- encrypted form in the original file within the container.              -->
  <enc:EncryptedData Id="ED1">

    <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>

    <ds:KeyInfo>

      <ds:RetrievalMethod URI="#EK"

       Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>

    </ds:KeyInfo>

    <enc:CipherData>

      <enc:CipherReference URI="OEBPS/book.html"/>

    </enc:CipherData>

  </enc:EncryptedData>


  <enc:EncryptedData Id="ED2">

    <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>

    <ds:KeyInfo>

      <ds:RetrievalMethod URI="#EK"

       Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>

    </ds:KeyInfo>

    <enc:CipherData>

      <enc:CipherReference URI="OEBPS/images/cover.png"/>

    </enc:CipherData>

  </enc:EncryptedData>


  <enc:EncryptedData Id="ED3">

    <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128"/>

    <enc:KeyInfo>

      <enc:RetrievalMethod URI="#EK"

       Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>

    </enc:KeyInfo>

    <enc:CipherData>

      <enc:CipherReference URI="PDF/As You Like It.pdf"/>

    </enc:CipherData>

  </enc:EncryptedData>


</encryption>

The OEBPS/As You Like It.opf file:

<?xml version="1.0"?>
<!DOCTYPE package PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN"
 "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd">
<package unique-identifier="Package-ID">
  <metadata>
    <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.0"
                 xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0">
    <dc:Identifier id="Package-ID">ebook:guid-6B2DF0030656ED9D8</dc:Identifier>
      <dc:Title>As You Like It</dc:Title>
      <dc:Creator role="aut">William Shakespeare</dc:Creator>
      <dc:Identifier>0-7410-1455-6</dc:Identifier>
      <dc:Subject></dc:Subject>
      <dc:Type></dc:Type>
    <dc:Date event="publication">3/24/2000</dc:Date>
    <dc:Date event="copyright">1/1/9999</dc:Date>
    <dc:Identifier scheme="ISBN">0-7410-1455-6</dc:Identifier>
      <dc:Publisher>Project Gutenberg</dc:Publisher>
    <dc:Language></dc:Language>
   </dc-metadata>
  </metadata>
  <manifest>
    <item id="4915" href="book.html" media-type="text/x-oeb1-document"/>
    <item id="7184" href="images/cover.png" media-type="image/png" />
  </manifest>
  <spine>
    <itemref idref="4915"/>
  </spine>
</package>

The OEBPS/book.html file:

署名・暗号化されているため、実際にはバイナリ形式の可能性がある。復号化された結果は以下のようになる。

<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC
 
 "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Document//EN"
  "http://openebook.org/dtds/oeb-1.2/oebdoc12.dtd">
<html>
<head>
 
  ...

</head>
<body>

  ...

<img src="images/cover.png" alt="Cover image: a picture of the Bard of Avon" />

  ...

</body>
</html>

The OEBPS/images/cover.png file:

cover.pngを暗号化したバイナリファイルとなる。

The OEBPS/As You Like It.pdf file:

PDFを暗号化したバイナリファイルとなる。

附録 C: 貢献者

本仕様書は出版社、リーディングシステムのベンダー、ソフトウェア開発者、関連する標準規格の専門家たちの協力によって生み出された。

本仕様書のバージョン 1.0 は the International Digital Publishing Forum (IDPF) Unified OEBPS Container Format Working Groupによって作成された。リビジョン1.0 が発表された時点でのワーキンググループのメンバーは以下のとおりである。

 Kelley L. Allen (Random House)
 Angel Ancin (iRex Technologies)
 Ryan Bandy (Random House)
 Richard Bellaver (
Ball State University)
 Nick Bogaty (IDPF) - Working Group Secretary
 Thierry Brethes (Mobipocket)
 Janice Carter (Benetech/Bookshare.org)
 Richard Cohn (Adobe Systems Inc.)
 Garth Conboy (eBook Technologies) - Working Group Co-Chair
 Jon Ferraiolo (
IBM) - Working Group Vice-Chair
 Neil De Young (Hachette Book Group USA)
 Linh N. Do (Random House, Inc.)
 Geoff Freed (WGBH)
 Liang Gang (TriWorks Asia)
 Peter Ghali (Motricity, ereader.com)
 Markku T. Hakkinen (DAISY Consortium)
 Gillian Harrison (NetLibrary)
 Jonathan Hevenstone (Publishing Dimensions)
 Theresa Horner (HarperCollins)
 Karen Iannone (Houghton Mifflin)
 Claire Israel (Simon & Schuster)
 Mattias Karlsson (Dolphin Computer Access)
 Bill Kasdorf (Apex Publishing)
 George Kerscher (DAISY Consortium)
 Steve Kotrch (Simon & Schuster)
 Bill McCoy (Adobe Systems, Inc.)
 Bill McKenna (Follett)
 Bonnie Melton (Houghton Mifflin College Division)
 Jon Noring (OpenReader Consortium) - Invited Expert
 Sayu Osayande (Motricity, ereader.com)
 Lee Passey - Invited Export
 Steve Potash (OverDrive)
 John Rivlin (eBook Technologies) - Working Group Co-Chair
 Tyler Ruse (Codemantra)
 Mike Smith (Harlequin)
 Kimi Sugeno (John Wiley & Sons)
 Gary Varnell (Osoft.com)
 Xin Wang, Ph.D. (ContentGuard, Inc.)
 Andrew Weinstein (Lightning Source)
 Tom Whitcomb (NetLibrary) 
 Andy Williams (
Cambridge UniversityPress)
 Eli Willner (Green Point Technology Services)