CyberLibrarian

【注意】 このドキュメントは、IDEFのePUBの仕様の一つであるOpen Publication Structure (OPS) 2.0 v1.0 Recommended Specification September 11, 2007の和訳です。
このドキュメントの正式版はIDEFのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。

First Update: 2010年5月28日


オープン・パブリケーション・ストラクチャ(OPS) 2.0 v 1.0

勧告仕様 2007年9月11日

目次

1.0: 概要

1.1: 目的と範囲

1.2: 定義

1.3: 他の仕様との関係

1.3.1: XMLとの関係

1.3.2: XML名前空間との関係

1.3.3: NVDLとの関係

1.3.4: XHTMLおよびDTBookとの関係

1.3.5: CSSとの関係

1.3.6: Unicodeとの関係

1.3.7: MIMEメディア・タイプ

1.3.8: XMLスタイルシート処理命令

1.4: 適合性

1.4.1: OPSコンテンツ・ドキュメントの適合性

1.4.1.1: OPSコンテンツ・ドキュメント

1.4.1.2: XHTMLコンテンツ・ドキュメントの要件

1.4.1.3: DTBookコンテンツ・ドキュメントの要件

1.4.1.4: アウト・オブ・ラインXMLアイランド・コンテンツ・ドキュメントの要件

1.4.2: 読書システムの適合性

1.4.3: 将来のバージョンとの互換性

1.4.4: OPSバージョン2.0の互換性

1.5: 拡張性

1.6: アクセシビリティ

1.7: 将来の方針

2.0: OPSコンテンツ・ドキュメント語彙

2.1: 概論

2.2: OPS優先語彙におけるXHTMLモジュール

2.2.1: 必須モジュール

2.3: XHTML 1.1とは異なる意味や制約の要素と属性

2.3.1: URI参照に関する一般的なコメント

2.3.2: body要素

2.3.3: cite属性

2.3.4: img要素

2.3.5: link要素

2.3.6: objectおよびparam要素

2.3.7: scriptおよびnoscript要素

2.3.8: style要素のtype属性

2.3.9: align属性の値

2.4: DTBook優先語彙

2.4.1: 概論

2.4.2: DTBookの使用要件

2.4.2.1: DAISY/NISO標準の第4項の例外

2.5: SVG

2.5.1: SVGの使用に関する一般的な注記

2.5.2: 独立した画像ファイルとしてのSVGの使用

2.5.3: 同一ドキュメントにおけるSVGとXHTMLマークアップの併用

2.6: XMLアイランド

2.6.1: XMLアイランド概論

2.6.1.1: ユースケース

2.6.1.2: 表示ガイドライン

2.6.2: アウト・オブ・ラインXMLアイランド

2.6.2.1: ドキュメント要件

2.6.2.2: フォールバック要件

2.6.2.3: リンク要件

2.6.2.3.1: ドキュメント・レベルのリンク

2.6.2.3.2: フラグメント・リンク

2.6.3: インラインXMLアイランド

2.6.3.1: switch要素と包含要素

2.6.3.1.1: switch要素

2.6.3.1.2: case要素

2.6.3.1.2.1: required-namespace属性

2.6.3.1.2.2: required-modules属性

2.6.3.1.3: default要素

2.6.3.2: インラインXMLアイランドの処理

2.6.3.3: インラインXMLアイランドの表示

2.6.3.3.1: 高度な表示動作

2.6.3.3.2: アイランドのスタイリング

2.6.3.4: リンクに関する留意事項

2.6.3.4.1: switch要素へのリンク

2.6.3.4.2: リンク切れ

2.6.3.5: NCXの要件

2.7: 読書システム上のドキュメントの表示

3.0: OPSスタイルシート

3.1: セレクタ

3.2: 値の型

3.2.1: URI値

3.2.2: 整数と実数

3.2.3: 長さ

3.2.4: パーセンテージ

3.2.5: 色

3.2.6: 時間

3.2.7: 周波数

3.2.8: 文字列

3.3: プロパティ

3.4: 組み込みフォント

付録A: XHTMLコンテンツ・ドキュメントのNVDL定義

付録B: OPSスキーマ

付録C: 貢献者

付録D: 謝辞

付録E: サポート情報と正誤表

1.0: 概要

1.1: 目的と範囲

電子書籍技術が市場において広く成功を収めるためには、読書システムは、多くの様々な著作物に容易にアクセスできる必要があります。オープン・パブリケーション・ストラクチャ(OPS)仕様は、電子出版物のコンテンツを表現するための標準を記述しています。具体的には、次のとおりです。

  • 仕様は、コンテンツ提供者(例えば、出版者、著者、その他の表示するコンテンツを有している人)と出版ツール提供者に対し、様々な読書システムにおける電子的コンテンツの忠実さ、精度、アクセシビリティ、および適切な表示を保証する、最小限かつ共通のガイドラインを提供することを目的としています。
  • 仕様は、既存のコンテンツ形式の標準の反映に努めています。
  • この仕様の目標は、電子ブックの提供者(出版者、取次、著者など)が用いる標準的なコンテンツの記述方法を定義し、このようなコンテンツが複数の読書システムに提供され、全読書システムで等しく表示できるようになることを最大限に確保することです。

関連するもう一つの仕様(オープン・パッケージング・フォーマット(OPF)仕様)では、OPS出版物の様々な構成要素を結びつけるメカニズムを定義し、電子出版物に構造とセマンティクスを追加します。具体的には、OPFは次のとおりです。

  • 電子出版物のすべての構成要素(マークアップ・ファイル、画像、ナビゲーション構造など)を記述し、参照付けを行う。
  • 出版物レベルのメタデータを提供する。
  • 出版物の読み順を指定する。
  • OPSに拡張を用いる際のフォールバック情報を提供する。
  • 宣言型目次(NCX)を指定するためのメカニズムを提供する。

パッケージング方法の記述と、コンテンツの記述を切り離してモジュール化するため、OPF仕様はOPSマークアップ仕様とは別になっています。これにより、他の標準化団体(例えば、DAISY)が、非OPSコンテキストで、パッケージング技術を容易に使用できるようになるでしょう。

3つ目の仕様(OEBPSコンテナ・フォーマット(OCF)仕様)では、電子出版物のすべての構成要素を送信、配信、保存するために一つのアーカイブ・ファイルにまとめてパッケージ化する標準メカニズムを定義しています。

1.2: 定義

コンテンツ提供者

出版者、著者、または、この仕様に記述されている形式で1つ以上の読書システムに出版物を提供するその他の情報提供者。

非推奨

この仕様では認められているが、推奨(recommended)されない機能。このような機能は、将来の改定で削除されるかもしれません。適合した読書システムは、非推奨の機能をサポートしなければなりません(must)。

拡張モジュール

モジュール化されたXML語彙のモジュール(すなわち、その仕様内に名前付きモジュールが定義されている)で、その仕様でサポートされている必要がないもの(例えば、OPSコンテキストにおけるXHTMLのrubyやformsのモジュール)。

インラインXMLアイランド

インラインXMLアイランドは、OPS出版物のXHTML優先語彙ドキュメント内に存在する非優先語彙を用いるか、拡張モジュールを用いたXMLドキュメントのフラグメントです。

NCX

宣言型目次(Navigation Center eXtended、すなわち、NCX)。

NVDL

NVDL(Namespace-based Validation Dispatching Language)は、ドキュメントのスキーマ間の検証を可能にする仕様です。この仕様では、様々なスキーマをOPSのコンテキストの中で扱う方法を明確に定義する手段としてNVDL言語を用いています。

OCF

OEBPSコンテナ・フォーマット(OEBPS Container Format)は、OPS出版物のすべての構成要素を一つのファイル・システムのエンティティに結合できるメカニズムを定義します。

OEBPS

Open eBook Publication Structure。この仕様(OPS)の以前のバージョンとその関連仕様(OPF)は、OEBPSという一つの仕様に統合されていました。当バージョンでは、仕様のモジュール採用をサポートするために、OEBPSをOPSとOPFの仕様に分けました。以前の統合仕様の最終バージョンは、OEBPS 1.2でした。

OPF

オープン・パッケージング・フォーマット(Open Packaging Format)は、この標準の姉妹標準です。これは、メタデータ、読み順、ナビゲーション情報とともに、この標準に準拠して出版された作品の全構成要素をOPS出版物にパッケージ化するメカニズムを定義します。

OPFパッケージ・ドキュメント

OPS出版物を記述し、OPFパッケージ・ドキュメント自身の一部ではないOPS出版物が使用するすべてのファイルを参照するXMLドキュメント。出版物内の他のすべてのファイルを識別し、それに関する説明情報を提供します。OPFパッケージ・ドキュメントは、OPF仕様で定義されています。

OPS

Open Publication Structure ― この標準

OPSコンテンツ・ドキュメント

OPFパッケージ・ドキュメントのspineに正当に表示可能な、この仕様に準拠したXHTMLやDTBookやアウト・オブ・ラインXMLアイランド。

OPSコア・メディア・タイプ

すべての読書システムがサポートしなければならない(must)MIMEメディア・タイプ。

OPS出版物

OPSコンテンツ・ドキュメント、OPFパッケージ・ドキュメント、そして、一般的に構造化テキストや図を含む様々なメディア・タイプのその他のファイルの集合で、出版物の結合ユニットを構成するもの。

アウト・オブ・ラインXMLアイランド

アウト・オブ・ラインXMLアイランドは、OPS出版物内のXMLドキュメントで、優先語彙を用いて記述されていないもの、または優先語彙を用いて記述されているが、拡張モジュールを用いるもの。これは、完全に独立した、完全で有効なXMLドキュメントです。

優先語彙

OPSをサポートしたXHTMLモジュール、および/または、DTBookマークアップのみで構成されるXML。

読者

出版物を読む人。

読書装置

出版物を表示する物理的なプラットホーム(ハードウェアとソフトウェア)。

読書システム

OPS出版物(OCFコンテナでパッケージ化されているだろう)を受け入れ、コンテンツの消費者がそれを利用できるようにするハードウェア、および/または、ソフトウェアの組み合わせ。読書システムのアーキテクチャは、非常に多様でありえます。読書システムは、完全に1台の機器として実装可能です(may)が、数台のコンピュータに分散することもできます(may)。特に、読書システムの構成要素である読書装置は、OPS出版物を直接受け入れる必要はありません(need not)が、すべての読書システムはそれを受け入れなければなりません(must)。読書システムには、圧縮、インデックス化、暗号化、権利管理、配信などの追加処理機能を含むことができます(may)。

XMLドキュメント

XMLドキュメントは、XML 1.1(http://www.w3.org/TR/xml11/)で定義されている完全で有効なXMLドキュメントです。

XMLドキュメント・フラグメント

ドキュメント・フラグメントまたはXMLフラグメントと呼ばれ、Document Object Model Level 1(http://www.w3.org/TR/REC-DOM-Level-1/)で定義されていますが、整形式であるという追加要件があります。

XMLアイランド

インラインXMLアイランドまたはアウト・オブ・ラインXMLアイランド。

XML名前空間

XML名前空間、または単に名前空間とも呼ばれ、XML名前空間(http://www.w3.org/TR/xml-names11/)に準拠していなければなりません。

1.3: 他の仕様との関係

この仕様は、他の仕様のサブセットとアプリケーションを組み合わせて作成しています。組み合わせることにより、電子文書の構築、編成、提供、厳密な交換が容易になります。

  1. Extensible Markup Language (XML) 1.1 (Second Edition)仕様 (http://www.w3.org/TR/xml11/)、および
  2. Namespaces in XML 1.0 (Second Edition)仕様 (http://www.w3.org/TR/xml-names11/)、および
  3. Document Object Model (Core) Level 1 (http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html)、および
  4. XML Pointer Framework (http://www.w3.org/TR/2003/REC-xptr-framework-20030325/)、および
  5. XHTML? 1.1 - Module-based XHTML - Second Edition仕様 (http://www.w3.org/TR/xhtml11/)、および
  6. Specifications for the Digital Talking Book (DTB) (http://www.niso.org/standards/resources/Z39-86-2005.html)、および
  7. Scalable Vector Graphics (SVG) 1.1 Specification (http://www.w3.org/TR/SVG11/)、および
  8. Cascading Style Sheets, level 2仕様 (http://www.w3.org/TR/REC-CSS2)、および
  9. Unicode Standard, Version 4.0. Reading, Mass.: Addison-Wesley, 2003, 新バージョンの公表により時々更新される。(標準およびUnicode Character Databaseのバージョンの最新バージョンや追加情報に関しては、http://www.unicode.org/unicode/standard/versionsを参照)、および
  10. 特定のMIMEメディア・タイプ (http://www.ietf.org/rfc/rfc4288.txthttp://www.iana.org/assignments/media-types/index.html)、および
  11. Associating Style Sheets with XML Documents (http://www.w3.org/TR/xml-stylesheet)、および
  12. Web Content Accessibility Guidelines 1.0 (http://www.w3.org/TR/WCAG10/)、および
  13. RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. (http://www.ietf.org/rfc/rfc2119.txt)、および
  14. OPF仕様 (http://www.idpf.org/opf/opf2.0/download/)、および
  15. Namespace-based Validation Dispatching Language (NVDL) (http://standards.iso.org/ittf/PubliclyAvailableStandards/c038615_ISO_IEC_19757-4_2006(E).zip)

1.3.1: XMLとの関係

XMLは一般性と簡潔さを備えており、XMLドキュメントが将来の技術や利用にうまく適合する可能性が高いという理由により、OPSはXMLに基づいています。また、XMLは、ドキュメントの構文に関する明確な規則を提示しているため、実装コストが下がり、システム間の非互換性が減少します。さらに、XMLは拡張可能で、いかなる特定の種類のドキュメントや要素の形式にも縛られず、国際化をサポートし、ドキュメントのマークアップにより、ドキュメント内の一部をより直接的に表現できるようになり、自動設定や他の種類のコンピュータ処理に適合できるようになります。

  • 読書システムは、XML 1.1で定義されているXMLプロセッサでなければなりません(must)。すべてのOPSコンテンツ・ドキュメントは、個々のスキーマに従った有効なXMLドキュメントでなければなりません(must)。

1.3.2: XML名前空間との関係

読書システムは、http://www.w3.org/TR/xml-names11/のXML名前空間勧告に従ってXML名前空間を処理しなければなりません(must)。

名前空間接頭辞は、異なるXML語彙に属する同じ名前を識別します。XMLドキュメントのXML名前空間宣言は、名前空間接頭辞を一意のURIに関連付けます。そして、その接頭辞を、ドキュメントの要素や属性名に使用できます。一方で、XMLドキュメントの名前空間宣言は、URIをデフォルト名前空間として識別し、名前空間接頭辞がない要素に適用できます(may)。XML名前空間接頭辞は、接尾語要素や属性名とコロンで区切られています。

例:

xmlns:ops="http://www.idpf.org/2007/ops"

すべてのOPSコンテンツ・ドキュメントのルート要素は、ドキュメントの名前空間を明確に指定しなければなりません(must)。XHTML優先語彙では、この名前空間は、http://www.w3.org/1999/xhtmlです。DAISY録音図書優先語彙では、この名前空間はhttp://www.daisy.org/z3986/2005/dtbook/です。OPS名前空間をドキュメントで用いる場合は、それがhttp://www.idpf.org/2007/opsであると明確に宣言しなければなりません(must)。名前空間接頭辞を用いる場合は、著者がops接頭語をその名前空間に結びつけ、opsを他の名前空間の接頭辞として使用しないことを推奨(recommended)します。

例:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ops=" http://www.idpf.org/2007/ops">

OPSには、推奨されるドキュメント・タイプやXMLアイランド以外に、追加機能や検証要件があるため、OPSに関連付けられた他の名前空間が存在しており、これは特定のコンテキストで用いられます。

1.3.3: NVDLとの関係

この仕様では、この仕様で用いる様々なスキーム間のインタラクションを明確に定義するための手段としてNVDL言語(http://standards.iso.org/ittf/PubliclyAvailableStandards/c038615_ISO_IEC_19757-4_2006(E).zipを参照)を用います。NVDLにより、様々なXMLスキーマ言語間のインタラクションと検証が可能になります。OPSの規範的なNVDLの定義に関しては、付録Aを参照してください。

OPSドキュメントの検証にNVDLツールを利用できます(may)が、この仕様では、そのような検証に必ずしもNVDLツールを用いる必要はありません

1.3.4: XHTMLおよびDTBookとの関係

この仕様は、現在のソフトウェア・ツール、レガシー・データ、出版の慣習、および市況の重要性を認識しており、したがって、特定のXHTML 1.1ドキュメント・タイプ・モジュールとDTBookを優先語彙として組み込んでいます。このアプローチにより、コンテンツ提供者は、現在のXHTML、DTBookコンテンツ、ツール、専門技術を活用することができます。

読書システムの実装者(電源とディスプレイに制約がある装置に取り組んでいるかもしれない)の実装の負担を最小限にするため、優先語彙には、XHTML 1.1のすべての要素および属性を含んでいるわけではありません。さらに、XHTML 1.1仕様から選択したモジュールは、XHTMLの動向と整合性があるものにしました。

XHTML 1.1で非推奨の構造子は、この仕様でも非推奨か削除されているかのいずれかです。このようなケースのほとんどにはCSSベースの同等物を提供しています。スタイルシートの構造子は、XHTMLが提供する以上の新たな表示機能にも用います。

1.3.5: CSSとの関係

この仕様では、CSS 2に基づくスタイル言語を定義しています。(CSS 2.1仕様のステータスが現在まだ「草案」であることに注意してください。) スタイルシートのMIMEタイプtext/x-oeb1-cssは非推奨となり、text/cssが採択されています。

CSSベースのこの仕様のスタイルシートの構造子は、必須の表示機能を定義しています。読書システムの開発者と装置の製造者の負担を最小限にするため、すべてのCSS 2のプロパティを含んでいるわけではありません。ページ・レイアウト、ヘッダー、フッターをサポートするために、いくつかのプロパティや値を追加しています。これらを合わせて、OPS CSS 2.0の必須のサブセットが構成されています。

この仕様では、多くの場合、標準のCSSスタイルシートが要求しうるすべての表示機能を読書システムが実現することは求めていません。例えば、モノクロ・ディスプレイを採用している読書システムもあるでしょう。すべての読書システムをモノクロに制限することも、OPSを超えた非標準の拡張を用いて色を宣言することも許されないでしょう。そのような場合でも、CSSの設定は可能で、その意味は保持されます。しかし、適合した読書システムは、より簡単な表示へと正常に機能を低下させることができます(may)。

適合した読書システムは、OPS CSS 2.0の必須のサブセット・プロパティをすべて表示しなければなりません(must)。読書システムは、OPS CSS 2.0の必須のサブセット以上のCSSのプロパティをサポートすることもできます(may)が、サポートされていないプロパティは、CSS 2.0仕様に従って正常に機能を低下させなければなりません(must)。

この仕様では、style属性(非推奨ですが)、style要素、外部スタイルシートをサポートしています。読書システムは、スタイルシートを処理している間に、XML-名前空間の処理を行わなければなりません(must)。

スタイルシートは、いくつかの方法でOPSコンテンツ・ドキュメントに関連付けることができます。

  • 特定のXHTML要素(非推奨)のstyle属性によって。そして、
  • XHTMLのhead要素内のstyle要素によって。そして、
  • XHTMLのhead要素内のlink要素で外部スタイルシートを指定して。そして
  • 処理命令のxml-stylesheet(1.3.8項を参照)で外部スタイルシートを指定して。

最初の3つのケースの相対的な優先順位は、XHTML 1.1とCSS 2に定義されているとおりです。処理命令によってリンクされているスタイルシートは、XHTMLのlink要素でリンクされているかのように扱われ、実際のいかなるXHTMLのlink要素よりも優先されます。適合性の項で定義しているとおり、要素にスタイルシートが定義されていない場合や、適用できるスタイルが見あたらない場合には、この仕様のほかの部分で定義しているとおり、XHTMLの表示はデフォルトです。

XHTMLのlink要素や処理命令xml-stylesheetによってリンクされている外部スタイルシートには、CSSやXSLなどのような他のあらゆるスタイル言語を使用できます(may)(http://www.w3.org/TR/xslを参照)。読書システムは、ここで指定しているCSS以上のスタイルシート言語をサポートする必要はありません。

OPS CSS 2.0の必須サブセットのみを実装した読書システムは、他のスタイル言語を用いたスタイルシートを無視できます(may)。拡張スタイルシートの機能をサポートした読書システムは、他のあらゆる外部スタイルシートを選択できます(may)。OPS CSS 2.0の必須サブセット以外にサポートされているあらゆるスタイルシート言語に対して、MIMEメディア・タイプを一つだけ定義することと、MIMEメディア・タイプを調べればそれらの言語のスタイルシートを検出できるようにすることを強く推奨します(strongly recommended)。

CSS位置プロパティ値(すなわち、absolutefixed)を用いて絶対位置を実現しないことを、強く推奨します。

1.3.6: Unicodeとの関係

出版物は、Unicodeで定義されている(http://www.unicode.org/unicode/standard/versionsを参照)全Unicode文字集合を、UTF-8またはUTF-16の符号化により使用できます(may)。Unicodeの使用により、国際化と多言語ドキュメントが容易になります。しかし、読書システムは、すべてのUnicode文字に応じたグリフを提供する必要はありません(not required)。

読書システムは、UTF-8とUTF-16のすべての文字を(XMLの要求に応じて)適切に解析しなければなりません(must)。読書システムは、一部の文字の表示ができなくても構いません(may)が、表示できない文字が存在していることを何らかの方法で示せなければなりません(must)。読書システムは、Unicode文字が単なる8ビットの文字であるかのように表示してはなりません(must not)。例えば、有害物質の記号(0x2623)を、正しいグリフの採用によってサポートする必要はありません(need not)が、そのコンポーネント・バイトが「&#」(0x0026 0x0023)の2文字であるかのように解析したり表示したりしてはなりません(must not)。

読書システムの一貫した検索やソート機能の実装をサポートするためには、Unicode正規形C(NFC)を使用する必要があります(required)(http://www.w3.org/TR/charmod-norm/を参照)。

1.3.7: MIMEメディア・タイプ

この仕様では、すべての読書システムがサポートしなければならず(must)、出版物に含むことができる(may)OPSコア・メディア・タイプのリストを定義しています。出版物は、他のメディア・タイプの資源を含むこともできます(may)が、そのような個々の資源には、この仕様やOPF仕様に基づいて定義されている方法でOPSコア・メディア・タイプの代替資源を含まなければなりません(must)。

OPS Coreメディア・タイプは次の通りです。

MIMEメディア・タイプ 参照 説明
image/gif http://www.w3.org/Graphics/GIF/spec-gif89a.txt ラスター画像に用いる。
image/jpeg http://www.w3.org/Graphics/JPEG/ ラスター画像に用いる。
image/png RFC 2083 ラスター画像に用いる。
image/svg+xml http://www.w3.org/TR/SVG11/ ベクター画像に用いる。
application/xhtml+xml XHTML 1.1 OPSコンテンツ・ドキュメントに用いる。
application/x-dtbook+xml http://www.niso.org/standards/resources/Z39-86-2005.html OPSコンテンツ・ドキュメントに用いる。
text/css CSS 2.0 OPS CSSサブセット・スタイルシートに用いる。
application/xml http://www.w3.org/TR/xml11/ アウト・オブ・ラインXMLアイランドに用いる。
text/x-oeb1-document OEBPS 1.2仕様 非推奨。基本または拡張OEBPS 1.0.1および1.2ドキュメントに用いる。
text/x-oeb1-css OEBPS 1.2仕様 非推奨。OEBPS 1.0.1および1.2のCSSサブセット・スタイルシートに用いる。
application/x-dtbncx+xml DTBook仕様 NCX

1.3.8: XMLスタイルシート処理命令

この仕様では、W3C勧告「Associating Style Sheets with XML Documents」で定義されているXMLスタイルシート処理命令xml-stylesheet(http://www.w3.org/TR/xml-stylesheet)をサポートしています。この処理命令は、XMLドキュメントのプロローグに置かれます。これは、linkと同じだけ、複数回記述できます。

1.4: 適合性

このドキュメントの「しなければならない」(must)、「してはならない」(must not)、「必須である/要求される」(required)、「することになる」(shall)、「することはない」(shall not)、「すべきである/する必要がある」(should)、「推奨される」(recommended)、「することができる/してもよい」(may)、および「選択できる/任意である」(optional)というキーワードは、RFC 2119で記述されているとおりに解釈されなければなりません(must)。

この項では、OPSコンテンツ・ドキュメントと読書システムの適合性を定義しています。

1.4.1: OPSコンテンツ・ドキュメントの適合性

この項では、OPSコンテンツ・ドキュメントの適合性について定義しています。

1.4.1.1: OPSコンテンツ・ドキュメント

次の場合に限り、ドキュメントは、OPSコンテンツ・ドキュメントであると見なされます。

  1. このドキュメントで定義しているXHTMLサブセットと、インラインXMLアイランドやインラインSVGなどのOPS固有のコンテンツ拡張子との組み合わせを用いていること。または、
  2. DTB仕様(http://www.niso.org/standards/resources/Z39-86-2005.html)に準拠したMIMEメディア・タイプapplication/x-dtbook+xmlを持つドキュメントであり、インラインXMLアイランドやインラインSVGなどのOPS固有のコンテンツ拡張を使用してはならない(must not)こと。または、
  3. 他のMIMEメディア・タイプのXMLドキュメント、すなわち、アウト・オフ・ラインXMLアイランドであること。

1.4.1.2: XHTMLコンテンツ・ドキュメントの要件

適合したXHTMLコンテンツ・ドキュメントは、次の条件を満たさなければなりません(must)。

  1. (XML 1.1で定義されている)整形式のXMLドキュメントであること。そして、
  2. UTF-8かUTF-16でコード化されていること。そして、
  3. 付録Aで提供しているNVDLスキーマのインタラクションに従った有効なXMLドキュメントであること。そして、
  4. application/xhtml+xmltext/x-oeb1-document(非推奨)のどちらかのMIMEメディア・タイプを持っていること。そして、
  5. インラインXMLアイランドに含まれていないすべてのXHTML要素と属性を、このドキュメントで識別されているXHTMLサブセットから得られること。

1.4.1.3: DTBookコンテンツ・ドキュメントの要件

次の場合に限り、ドキュメントは、DTBookコンテンツ・ドキュメントです。

  1. (XML 1.1で定義されている)整形式のXMLドキュメントであること。そして、
  2. UTF-8かUTF-16でコード化されていること。そして、
  3. DTBook DTDに従った有効なXMLドキュメント(http://www.daisy.org/z3986/2005/dtbook-2005-2.dtd)であること。そして、
  4. application/x-dtbook+xmlのMIMEメディア・タイプを持っていること。

1.4.1.4: アウト・オブ・ラインXMLアイランド・コンテンツ・ドキュメントの要件

次の場合に限り、ドキュメントは、アウト・オブ・ラインXMLアイランド・コンテンツ・ドキュメントです。

  1. (自身のスキーマに従った)整形式の有効なXMLドキュメントであること。そして、
  2. UTF-8かUTF-16でコード化されていること。そして、
  3. application/xhtml+xmltext/x-oeb1-documentapplication/x-dtbook+xml以外のMIMEメディア・タイプを持っていること。

1.4.2: 読書システムの適合性

この仕様では、読書システムの適合性レベルを1つだけ定義しています。読書システムは、次のとおりにドキュメントを処理する場合に限り、適合しています。

OPSコンテンツ・ドキュメントが提示された場合、読書システムは次のとおりでなければなりません(must)。

  1. 整形式エラーの取り扱い要件を含め、XML 1.1の仕様で求められているとおりに正しくXMLを処理すること。そして、
  2. この仕様に従って記述されているすべてのマークアップを認識し、この仕様や、XHTML 1.1、CSS 2、DTBookの仕様の対応する説明と矛盾なく処理すること(衝突がある場合には、この仕様が優先する)。そして、
  3. フォールバックがない場合には、サポートされていないメディア・タイプのimgまたはobject要素を表示しないこと。これらのフォールバックについては、img2.3.4項で、object2.3.6項で明確に定義しています。そして、
  4. XML名前空間との関係の項で定義されているとおりに、適切な名前空間の指定があることを確認すること。

1.4.3: 将来のバージョンとの互換性

この仕様に対して貢献者が意図しているのは、この仕様の後継となる世代が現在確立されている方針を継続することです。具体的には、次のとおりです。

  • コンテンツ形式の標準は、W3C、IETF、その他の適用可能な標準と互換性があること。そして、
  • この仕様の将来のバージョンは、OPSに適合した読書システムのXML処理性能を更に求めたり、他の適切なXML関連標準のサポートを可能とするなど、XMLベースの仕様との整合性を強化し続けることが期待される。そして、
  • この仕様の将来のバージョンは、OPSドキュメントにおけるハイパーリンクの豊かさを改良することが期待される。そして、
  • 関連する公的な標準にはない必須機能は、適切な標準化団体への最終提案と一致する形で、既存の標準に対する拡張として定義されること。そして、
  • 関連するOPF仕様との整合性を維持すること。そして、
  • OCFコンテンツ・パッケージング標準との整合性および統合化を継続すること。

1.4.4: OPSバージョン2.0の互換性

OPSのバージョン2.0は、以前のバージョンであるOEBPS 1.2に対し、かなり重要な強化を行っています。バージョン2.0が1.2に行った実質的な機能強化には、コンテンツの忠実な表示に対するコントロールの強化、拡張メカニズムの強化、アクセシビリティの向上、OPSが基づいている標準との整合性の改善が含まれます。具体的には、次の点が最も実質的な追加点です。

  • XML 1.1を組み込み、XMLの「整形式」からXMLにおける妥当性へと制約を高めた。
  • XML名前空間の処理が必須となった。
  • 基本および拡張ドキュメントという概念を削除し、2つのXML優先語彙と新たなXMLアイランド・ベースの拡張メカニズムに置き換えた。
  • XHTML要素セットのOPSサブセットをXHTML 1.1内の特定モジュールへの参照に置き換えた。
  • DTBookの要素セットを優先語彙にした。
  • SVGのサポートを追加した。
  • 組み込みフォントのサポートを追加した。
  • ナビゲーションとアクセシビリティの強化のためにOEBPS 1.2パッケージを拡張し、それに関するドキュメントは別のOPF仕様に移した。
  • OEBPS固有の古いMIMEタイプを非推奨とし、より広く使用されている標準的なMIMEタイプに置き換えた。

OEBPS 1.2からOPS 2.0への最大の変更点は、以前の機能を撤廃ではなく非推奨とすることでしたが、OEBPS 1.2は、OPSバージョン2.0の完全互換のサブセットというわけではありません(新たな名前空間処理の要件など)。

1.5: 拡張性

XMLアイランドは、優先語彙がサポートする以上の機能、情報、構造を追加するための推奨(recommended)メカニズムです。

アウト・オブ・ラインXMLアイランドは、あらゆる出版物に使用できます(may)。XHTML優先語彙以外を用いて記述されたドキュメント内でインラインXMLアイランドを用いてはなりません(must not)。

1.6: アクセシビリティ

この仕様では、読書に障害を持つ人々にとって、アクセシブルなコンテンツの利用を確保する機能を組み込んでいます。この仕様には、ワールド・ワイド・ウェブ・コンソーシアム(W3C)によって開発された、コンテンツのアクセシビリティに関するXHTML 1.1の既存のアクセシビリティ機能が組み込まれています。

OPS XHTMLコンテンツ・ドキュメントは、できる限り広範なユーザがOPS形式で提供されている図書に対するアクセス手段を持つことを保証するために、W3CのWeb Content Accessibility Guidelines1.0(http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/)に従うか、Web Content Accessibility Guidelines 2.0(現在の草案は、http://www.w3.org/TR/WCAG20/で利用可能)がワーキンググループの活動期間中に公表されれば、それに従って記述すべき(should)です。

加えて、OPS実装者は、読書システムがアクセシビリティ要件に適合していることを保証するために、W3CのHTML 4.0 Guidelines for Mobile Access(http://www.w3.org/TR/NOTE-html40-mobile/)と、W3Cウェブ・アクセシビリティ・イニシアティブが提案したUser Agent Guidelines(http://www.w3.org/TR/WD-WAI-USERAGENT/)の勧告をレビューし適用すべきです。

1.7: 将来の方針

この仕様は、現在の取り組みを利用しながらも、将来の開発に備えることを目指しています。この仕様の後続バージョンの詳細については未定ですが、パブリケーション・ストラクチャ・ワーキンググループは、漸進的な開発が継続的に起こると予想しています。OPSバージョン2.0作成の原動力となったテーマは、標準の順守(例えば、名前空間の完全サポート)、アクセシビリティのサポート、広範なXMLドキュメント語彙のサポート、ナビゲーションのサポート強化、忠実なコンテンツ表示の改善です。

すべての関連標準との整合性を維持しつつも、将来のバージョンにおいて重要と考えられるその他のテーマには、コンテンツと表現のより厳格な分離、アクセシビリティの向上、国際的なコンテンツのサポート強化、読書装置固有の表示制御および/または読書装置のプロファイル、出版物間のリンクのサポート強化、出版物内のマークアップのレイヤー化と管理(例えば、印付け、ハイライト、注記)、アプリケーション固有のマークアップ(例えば、数学や化学の)、複数の読み順、動的コンテンツのサポート(例えば、マルチメディア、スクリプト)が含まれます。さらに、この仕様のこのバージョンに対する下位互換性は、最優先で維持されるべきです。将来の方針については、http://www.idpf.orgで追うことができます。

2.0: OPSコンテンツ・ドキュメント語彙

2.1: 概論

OEBPS 1.2およびそれ以前の仕様では、すべての読書システムがサポートする必要がある、XHTML 1.1ドキュメント・タイプの「基本」ドキュメントの語彙を指定していました。この仕様では、もはや独自のXHTML 1.1のサブセットを作成せず、代わりに、XHTML Modularization 1.1(http://www.w3.org/TR/xhtml-modularization/)の記述に従って、XHTMLモジュール全体を参照します。OPSでは、XHTMLに加え、DAISYのDTBookドキュメント・タイプを優先語彙として追加しています(http://www.niso.org/standards/resources/Z39-86-2005.htmlを参照)。

この項で記述しているXHTMLモジュールとDTBook語彙は、OPS優先語彙であると見なされます。「基本」ドキュメントと「拡張」ドキュメントの概念は、もはやこの仕様では用いません。OPS出版物は、優先語彙の1つを採用すべき(should)です。その他の語彙をドキュメント全体やXMLフラグメントとして使用している出版物は、この仕様の他の部分で記述されているインラインまたはアウト・オブ・ラインXMLアイランドのメカニズムを用いなければなりません(must)。ここで記述している以外のXHTMLモジュール(拡張モジュール)を、適合した出版物で使用することはできます(may)が、このドキュメントのXMLアイランドの項で詳述しているガイドラインに従っていなければなりません(must)。

DOCTYPE宣言から参照されているDTDと同様に、OPSのXHTMLコンテンツ・ドキュメントは、そのDTDに対して有効でなければ、XHTMLのDTDを参照してはなりません(must not)(すなわち、インラインXMLアイランドやインラインSVGは含まれていません)。

2.2: OPS優先語彙におけるXHTMLモジュール

2.2.1: 必須モジュール

このドキュメントで別途特記されていない限り、OPSでは、全ての適合した読書システムは、XHTMLおよびHTMLの仕様と整合性がある次のモジュールをサポートする必要があります。

XHTML 1.1モジュール名 要素(非規範的)
構造(Structure) body, head, html, title
テキスト(Text) abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
ハイパーテキスト(Hypertext) a
リスト(List) dl, dt, dd, ol, ul, li
オブジェクト(Object) object, param
表現(Presentation) b, big, hr, i, small, sub, sup, tt
編集(Edit) del, ins
双方向テキスト(Bidirectional Text) bdo
テーブル(Table) caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr
画像(Image) img
クライアント・サイド・イメージ・マップ(Client-Side Image Map) area, map
メタ情報(Meta-Information) meta
スタイルシート(Style Sheet) style
スタイル属性(Style Attribute)(非推奨) style attribute
リンク(Link) link
ベース(Base) base

2.3: XHTML 1.1とは異なる意味や制約の要素と属性

前述のとおり、XHTML優先語彙(要素、属性、関連属性値)のセマンティクスと表示の動作は、厳密にXHTML 1.1に従っています。しかし、以下に述べるとおり、XHTML 1.1以上の制約もいくつかあります。この制約は、OPSドキュメントのXHTML 1.1との適合性には影響ありません。

2.3.1: URI参照に関する一般的なコメント

属性の多くは、URIの値を用いて資源を参照します(Uniform Resource Identifier、RFC 2396 http://www.ietf.org/rfc/rfc2396.txtを参照) 。URIが参照する資源は、属性により、抽象的なエンティティか物理的なオブジェクトのいずれかでありえます。

注記されていたり、適切でない場合を除き、読書システムは、マニフェストに記述されていない(すなわち、出版物の構成要素ではない)、URIが参照する物理的な資源を使用したり表示することができます(may)が、これは必須ではありません(not required)。

2.3.2: body要素

書式設定では、bodyのデフォルト表示は、CSSプロパティのpage-break-beforeの値をrightに設定した場合と一致する(単ページの読書システムにおけるalwaysと同じように動作する)と思われますが、これは、適切なスタイルシートの宣言で無効にできます(may)。

2.3.3: cite属性

任意の(optional)属性であるciteは、blockquoteqdelinsという要素のコンテンツを引用したURIを示すために使用できます(may)。読書システムは、資源がマニフェストに記述されているか否かに関わらず、参照されているURI資源を処理したり使用したりする必要はありません(not required)。

2.3.4: img要素

インライン要素のimgは、GIF(http://www.w3.org/Graphics/GIF/spec-gif89a.txt)、PNG(RFC 2083)、JPG/JFIF(http://www.w3.org/Graphics/JPEG)のOPSコア・メディア・タイプを持つ画像を参照するためにのみ使用すべき(should)です。必須の(required)URI属性であるsrcは、画像資源を参照するために用いますが、この資源はマニフェストに記述されていなければなりません(must)。

必須の(required)alt属性には、画像に関する簡潔な説明をテキストで記述すべき(should)です。このテキストは、画像を表示する代わりとして、または画像に添える形で読書システムが使用するかもしれません。このテキストは、実行可能なフォールバックがマニフェストにない場合に、非OPSコア・メディア・タイプを参照しているsrcを持つimgに対して認められるフォールバックでもあります。altへのテキストの記述は、ディスプレイの解像度に制限があったり視覚表示ができない読書システムに有用です。object要素の使用は、OPSコンテンツ・ドキュメントに非コア・メディア・タイプを含むための推奨メカニズムです。

長文の記述には、任意の(optional)title属性を使用できます(may)。読書システムは、altのテキストや画像を表示する代わりに、title属性を表示できます(may)。

OPSコンテンツ・ドキュメントの著者は、アクセシビリティ向上のために、画像に関してより詳細に記述した(別の出版物のOPSコンテンツ・ドキュメントなどの)資源を参照するURI参照を、任意のlongdesc属性に含めることを強く推奨します(strongly recommended)。読書システムの開発者は、longdescで指定されている資源を、適切な方法で(また、アクセシビリティを考慮に入れて)認識し表示することを強く奨励します。この属性および関連するアクセシビリティ属性の使用方法の詳細に関しては、http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/#gl-provide-equivalentsを参照してください。

2.3.5: link要素

link要素によって、他のドキュメントとの様々な関係を指定できます。読書システムは、href属性および関連するrel属性で指定されている(rel="stylesheet"rel="alternate stylesheet"の値で)外部スタイルシートの参照を認識しなければなりません(must)。

2.3.6: objectおよびparam要素

object要素は、一般的なオブジェクトを包含する方法として適しています。OPSコア・メディア・タイプのリストにはないデータ・メディア・タイプのオブジェクト、または、classid属性を用いてobjectの実装を参照するオブジェクトを追加する場合には、object要素は、別のobject要素、img要素や説明テキストなどの、objectに対するフォールバック情報を指定しなければなりません(must)。インラインのフォールバック情報は、親objectを参照した最後のparam要素の直後にOPSコンテンツとして記述されます。非テキストのコンテンツにアクセスできない人がアクセスできるように、objectの説明テキスト、インライン・コンテンツの使用、OPSコンテンツ・ドキュメントの包含、または、何らかの他の方法を提供すべき(should)です。

objectclassid属性は、実装するobjectのURIの値を示します。適合した読書システムは、外部実装を用いたオブジェクトを表示してもよいですが、必須ではありません(not required)。codetype属性およびtype属性のMIMEメディア・タイプの値は、出版物のマニフェストで指定されているものと一致しなければなりません(must)。

関連するparamという空要素は、オブジェクトの初期値を指定するために用いられます。param要素は、表示可能なobjectのコンテンツよりも前にのみ記述できます。読書システムは、objectの直接の子要素であるparam要素のみを検証しなければなりません(must)。

例:

<object classid="clsid:AFAFAFA-0101-1010-0101-ABABABABABA"
        codebase="http://www.example.com/SomeScriptingLanguage/">
   <param name="code" value="TicTacToe.class">
   <param name="codebase" value="html/">
   <param name="type" value="application/x-somescriptinglanguage">
   <param name="model" value="models/TicTacToe.model">
   <param name="scriptable" value="true">
   <object type="image/png" data="tictactoe.png">
           Tic-Tac-Toe, a <em>dull</em> game.
   </object>
</object>

2.3.7: scriptおよびnoscript要素

読書システムは、script要素のテキストのコンテンツを表示してはならず(must not)、スクリプト自体を実行すべきではありません(should not)。script要素を実行せずにコンテンツを読み込めなければなりません。

noscriptは、読書システムがスクリプトを実行しないことを選択した際に何らかのメッセージを表示することが目的であるため、これを含む場合には、関連するscriptの終了タグの後に記述しなければなりません(must)。デフォルトでは、読書システムは、scriptを(推奨されている(recommended)とおりに)実行しない場合には、noscriptに含まれているコンテンツを表示しならず(must)、display:noneというCSSでこのデフォルトを無効にできます。XHTML 1.1との適合性のために、noscriptのコンテンツ・モデルはBlock.mix(block level要素と「level-independent」要素)であり、テキストやインライン要素を直接記述することはできず、たとえnoscript自身がインラインで記述されていても、bodyblockquoteのコンテンツ・モデルと同じであることに注意してください。

scriptのスクリプト言語を指定するtype属性は必須(required)です。

コンテンツ・モデルが#PCDATAであるscriptの潜在的な問題の1つは、コードに「<」や「&」の文字が含まれていれば、潜在的にXMLとの衝突があるということです。したがって、これらの文字が用いられている場合には、エスケープするかCDATAセクションに置かなければなりません(must)。スクリプトの実行性能を組み込む読書システムの開発者は、この潜在的な問題を意識する必要があります。

2.3.8: style要素のtype属性

style要素のtype属性は必須(required)(XHTML 1.1の要件)であり、text/cssか非推奨のtext/x-oeb1-cssの値を付与しなければなりません(must)。個々のOPSコンテンツ・ドキュメントをXHTML 1.1ドキュメントとして表示するブラウザでは、非推奨のtext/x-oeb1-cssのインスタンスは、text/cssに変更されるべきです。

2.3.9: align属性の値

align属性のcharの値は、OPS XHTMLサブセットには含まれていません。同様の書式設定を実現するためには、CSSのtext-alignプロパティでstringの値を指定してください。

2.4: DTBook優先語彙

2.4.1: 概論

DTBookは、DAISY/NISO標準(正式名称はANSI/NISO Z39.86-2005標準)で定められているXML語彙です。この語彙は、電子書籍コンテンツ用に特別に設計されています。脚注、サイドバー、アノテーション、ページ番号などの、XHTMLにはない多くの構造が含まれています。オリジナルの紙の出版物の先頭ページとページ数を識別することで、印刷された出版物と同じように、各ページの先頭に直接NCXナビゲーションできるようになります。一般的な読書システムが表示する情報スクリーンによって、これらのページの大きさは異なるでしょう。印刷ページのマーキング情報を保持されていれば、ユーザはが印刷された本を利用している人と同じ位置に移動できるでしょう。

コンテンツの提供者は、教育分野の出版物や高度に構造化されたコンテンツにこのXML優先語彙を選択することを強く推奨します(recommended)。

2004年の米国の障害者教育改善法(IDEIA)や、その他の同様の国際法規が定められているため、多くの出版者は既にDTBook形式のコンテンツを所有しているかもしれません。これは簡単にOPS出版物に変換できます。DTBook語彙を用いて出版物を利用できるようにすれば、出版者は、印刷物に障害を持つ人々を含む、教育市場に属するすべての学生に出版物を販売しやすくなるかもしれません。

DTBook DTDについては、DAISY/NISO標準の第4項で定義しています。これは、NISOのウェブサイトhttp://www.niso.org/standards/resources/Z39-86-2005.htmlにあります。

DTD、問題追跡、事例などの追加情報は、DAISYのウェブサイトhttp://www.daisy.org/z3986/にあります。

2.4.2: DTBookの使用要件

DAISY/NISO標準の第4項で記述されている通り、DTBookは、DTBook OPS出版物に従わなければなりません(must)。コンテンツは、この文書の執筆時点での最新版であるdtbook-2005-2.dtdに対して有効でなければなりません(must)。DTDのこのバージョン、以前の全バージョン、将来の全バージョンは、DAISYのウェブサイトに掲載されます。これは、DTDのあらゆるバージョンに基づいて作成されたOPS出版物が有効であり続けることを保証します。

DTBook要素のセマンティクスが正しく適用されることが不可欠です。これを支援するために「構造ガイドライン」が作成されました。DTBookに準拠して作成されたドキュメントは、要素のセマンティクスの正しい適用に関する情報に関し、構造ガイドラインを使用すべき (should)です。構造ガイドラインは、http://www.daisy.org/z3986/structure/にあります。

2.4.2.1: DAISY/NISO標準の第4項の例外

smilrefというDTBookの要素には1つの属性があります。この属性は、SMIL(http://www.w3.org/TR/2005/REC-SMIL2-20050107/)指定するために使用されます。SMILは、OPS出版物ではサポートされていません。OPS出版物のドキュメントのDTBookからのこの属性を取り除いても、検証エラーは発生しないでしょう。

2.5: SVG

地図、図、グラフなどの多くの画像は、写真ではなく、ベクター・グラフィックス・システムで作成されたものです。この画像は、直線、曲線、絶対的な位置を持つテキストのブロック(画素の配列ではなく)を用いて画像を描写するベクター(ラスタではなく)形式で表示できます。ラスター画像をベクター画像に置き換えると、ドキュメントのアクセスや検索がより容易になります。読書システムと著者がこの付加的な努力を行うことにより、アクセシビリティをかなり向上させることができます。ベクター画像により、ドキュメントの視覚的な質も向上し(ベクター画像は本質的に拡大縮小可能であるため)、ドキュメント・サイズが小さくなる傾向があります。

OPS読書システムは、OPSコア・メディア・タイプとしてSVG(Scalable Vector Graphics)をサポートしなければなりません(must)。

2.5.1: SVGの使用に関する一般的な注記

OPSは、完全なSVG 1.1勧告をサポートしています。唯一の例外は、OPSがインタラクティブなコンテンツを対象としていないという点です。SVGアニメーションとスクリプト機能はサポートされておらず、出版物の著者はこれを用いてはなりません(must not)。読書システムは、このようなコンテンツを表示すべきではありません(should not)。SVGのCSSスタイリングを完全にサポートしなければなりません(must)。

SVG画像内のテキストは、選択や検索が可能であるべき(should)です。SVG画像には、リンク(a要素)を含むことができ(may)、したがって、ナビゲーションに使用できます。読書システムがリンクによる「タブ移動」をサポートしている場合、SVGのリンクを含まなければなりません(must)。

インラインSVGは、XHTML優先語彙を用いたドキュメント内でのみサポートされます。これをDTBookドキュメント内で使用してはなりません(must not)。

2.5.2: 独立した画像ファイルとしてのSVGの使用

SVGコンテンツは、他の種類の画像を使用できる場所であれば、OPS内のどこにでも使用できます。これには、次が含まれます。

  • XHTMLのimgおよびobject要素からの参照
  • DTBookのimg要素からの参照
  • SVGのimage要素からの参照
  • 画像のURIをパラメータとして持つCSSプロパティからの参照

可搬性を最大限に確保するために、常にトップレベルのSVG要素でSVG画像の大きさを指定すべき(should)です。ビットマップ画像と同様に、要素の参照によってSVG画像の大きさを無効にして拡大・縮小することができます(may)。

スタイリングの目的のために、個々のSVG画像は、別々のドキュメントであるとみなされます。ドキュメントのスタイルシートへの参照は、参照先の複数のSVG画像には適用されず、SVG画像が継承した複数のCSSのプロパティにも適用されません。共通のスタイルは、SVGとXHTMLの両方が参照する複数のスタイルシートを作成すれば実現すべき(should)です。これはobject要素がXHTML要素を参照する場合と同じであることに注意してください。

2.5.3: 同一ドキュメントにおけるSVGとXHTMLマークアップの併用

SVGを使用する別の方法は、XHTMLマークアップにSVGマークアップを直接組み込むことです。SVGのルート要素(svg)は、CSSレイアウト内のコンテンツに置き換えられるとみなされなければならない(must)ため、svg要素は、XHTMLのimg要素を使用できる場所であればどこにでも使用できます(may)。その他のSVG要素は、svg要素の子孫としてのみ使用できます(may)。SVGとXHTMLの要素は異なる名前空間を持っているため、名前空間接頭辞やxmlns属性を用いて各要素に適切な名前空間を割り当てるよう注意する必要があります。

この場合、ドキュメントは1つしかなく、CSSスタイルシートはドキュメント全体(カスケードと継承を含む)に適用されます。通常は、個別の要素は、自身に適用可能なプロパティを利用するだけです。CSSレイアウトにおけるルートsvg要素の役割は、img要素の場合と同じく、displayfloatpositionのプロパティによって決まります。SVG画像の大きさは、ルートに置かれたsvg要素のwidthheightの属性と(CSSのボックスのレイアウトにおいて置き換えられた要素の固有の大きさであるとみなされる)、CSSによって割り当てられたwidthheightのプロパティにより決まります。「置き換えられた要素」と「固有の大きさ」の定義に関しては、http://www.w3.org/TR/CSS2/conform.htmlを参照してください。可搬性のために、著者は、XHTML専用のCSSプロパティをSVG要素に割り当てるのを避けるべき(should)で、その逆もまた同じです。

2.6: XMLアイランド

この項では、OPS出版物に一般的なXMLコンテンツを含むためのマークアップと処理モデルについて記述しています。

2.6.1: XMLアイランド概論

この項では、OPS出版物に一般的なXMLマークアップを含む方法を定義しています。OEBPS 1.2で定義されているとおり、拡張OEBPSを含む、他のXML語彙との最大限の下位、側方、上位の互換性を実現することが動機です。

これは、OEBPS 1.2の公表された将来の方針と一致しています。

そのために、このドキュメントでは「XMLアイランド」という概念を導入しています。次の2つの種類が存在しています。

  • アウト・オブ・ラインXMLアイランド
  • インラインXMLアイランド

アウト・オブ・ラインXMLアイランドは、優先語彙(すなわち、DTBookかXHTML)のいずれにも記述がないか、優先語彙ドキュメントにおいて拡張モジュールを用いた任意の完全なXMLドキュメントです。

インラインXMLアイランドは、OPS出版物のXHTML優先語彙ドキュメント内にある非優先語彙を用いるか、優先語彙の拡張モジュールを用いたXMLドキュメントのフラグメントです。インラインXMLアイランドは、OPS名前空間に対して名前空間修飾されていおり、object要素内に含まれていません。

インラインXMLアイランドは、DTBook優先語彙を用いたドキュメント内で用いてはならず(must not)、XHTMLドキュメント内でのみ使用しなければなりません(must)。

2.6.1.1: ユースケース

下記は、OPSにおけるXMLアイランドの存在の妥当性を示ユースケースです。

  1. 下位互換: 拡張OEBPS 1.2ドキュメントを採用しているドキュメントが数知れないほどあり、新しい読書システムで使用できます。このドキュメントでは、OPSのマニフェストにいくつかの属性の追加、1つの名前空間宣言の追加、および/または、CSSスタイルシートの作成などの、最小限の追加を行うことで、そのようなドキュメントを使用できるようにする方法を記述します。
  2. 側方互換: 非優先XML語彙を使用している無数のドキュメントが存在しており、読書システムで使用できます。これは、上記と同じ方法を用いるか、ベースラインのOPS読書システムでは不可能な方法に対応してカスタマイズした表示の動作を、OPS優先語彙に対するフォールバックと併用して実現できます。
  3. 上位互換: まだ存在していない語彙の実験ができます。

2.6.1.2: 表示ガイドライン

OPS読書システムは、正しくマークアップされたXMLアイランドの表示を扱うために、次のステップに従わなければなりません(must)。

  1. セマンティック・スタイリング: 読書システムは、OPSのベースラインの要件で定められている以上の処理を、XMLアイランドのコンテンツに対して行うことができます(may)。これには、読書システム固有のXMLアイランドの語彙(例えば、TEIリーダやMathMLリーダ)に関する情報に基づく表示性能の拡張が含まれるかもしれません。
  2. OPSに対するフォールバック: XMLアイランドの語彙に関する固有の情報がない場合には、読書システムは、フォールバックのメカニズムのうちの1つを用いなければなりません(must)。

これにより、読書システムは、標準的な方法で非優先語彙のコンテンツを含むことができ、OPSでベースラインとして求められる以上の処理が可能となり、ベースラインの読書システムでもそのようなコンテンツを適切な方法で処理できます。

2.6.2: アウト・オブ・ラインXMLアイランド

アウト・オブ・ラインXMLアイランドは、優先語彙のいずれにも記述がないか、優先語彙ドキュメントにおいて拡張モジュールを用いた、完全なXMLドキュメントです。アウト・オブ・ラインXMLアイランドを記述するためには、出版物の様々な箇所でいくつかの宣言を行う必要があります。

2.6.2.1: ドキュメント要件

アウト・オブ・ラインXMLアイランドは、(自身のスキーマに対して)有効なXMLドキュメントであり、「アウト・オブ・ラインXMLアイランド・コンテンツ・ドキュメントの要件」の項で定義されているその他の適合性要件を満たさなければなりません。

下記は、シンプルなアウト・オブ・ラインXMLアイランドです。

<?xml version="1.0"?>
<!DOCTYPE example SYSTEM "example.dtd">
<example>
   <title>This Is An Example</title>   <paragraph>This is a paragraph with a <huge>big</huge> section
   of text that could be styled with OPS CSS!</paragraph>
</example>

2.6.2.2: フォールバック要件

アウト・オブ・ラインXMLアイランドを含むためには、アウト・オブ・ラインXMLアイランドの語彙をネイティブに処理できない読書システムに対するフォールバック情報を指定するために、出版物のマニフェスト内に特定の属性と属性値が必要です。OPF仕様を参照してください。

2.6.2.3: リンク要件

適合したOPS読書システムは、アウト・オブ・ラインXMLアイランドへのリンクを、下記の通りに、解決しなければなりません(must)。

2.6.2.3.1: ドキュメント・レベルのリンク

フォールバック・ドキュメントを用いる場合、出版物内のドキュメント全体へのリンクは、自動的にそのフォールバック・ドキュメントに解決されなければなりません(must)。

リンク元:

...<a href="chapter2.xml">Chapter 2</a>...

優先ドキュメント - chapter2.xml:

        <chapter>
                <title>Chapter 2</title>
                ...
        </chapter>

フォールバック・ドキュメント - chapter2.html:

<html>
        <head>
                <title>Chapter 2</title>
        </head>
        <body>
                ...
        </body>
</html>

マニフェスト・フラグメント:

<item href="chapter2.xml" id="chapter2"
      media-type="text/xml"
      required-namespace="http://www.example.com/chapter"
      fallback="chapter2fallback"/>
<item href="chapter2.html" id="chapter2fallback"
      media-type="application/xhtml+xml"/>

この例では、2つの処理がありえます。読書システムがchapter2.xmlのドキュメント・フォーマットを処理できるならば、リンクはchapter2.xmlに対して解決されます。そうでない場合は、リンクはchapter2.xmlに対するフォールバック(つまり、chapter2.html)に対して解決されます。

2.6.2.3.2: フラグメント・リンク

ドキュメント・フラグメントを含んだ複数のリンクは、同じフラグメント識別子を用いてフォールバック・アイテムに対して解決されなければなりません(must)。フォールバックにフラグメント識別子がない場合は、読書システムは、フォールバック・ドキュメントの先頭にリンク・エントリー・ポイントを置かなければなりません(must)。

2.6.3: インラインXMLアイランド

インラインXMLアイランドは、OPS出版物のXHTML優先語彙ドキュメント内に存在する非優先語彙を用いるか、優先語彙の拡張モジュールを用いたXMLドキュメント・フラグメントです。

インラインXMLアイランドの処理は、処理および表示の要件のために、アウト・オブ・ラインXMLアイランドの処理より複雑です。アウト・オブ・ラインXMLアイランドは完全なXMLドキュメントで、そのフォールバックのオプションはOPFパッケージ・ドキュメントで定義されています。インラインXMLアイランドは、「スイッチ」文という一般的なプログラミングの概念をまねて設計したマークアップ構造で扱われます。

2.6.3.1: switch要素と包含要素

スイッチ要素は、SVG 1.1SMIL 2.xの両方で用いられている概念です。しかし、OPSにはこれらの仕様とは異なる要件があります。そのため、OPSではスイッチの概念は異なる形で実装されます。具体的には、著者の意図が分かりやすく明確である必要があります。さらに、基本的なフォールバックのメカニズムの概念が提供されます。switch要素とその包含要素の規範的な定義は、OPSスキーマにあります。

switch要素とすべての包含要素は、OPS名前空間(http://www.idpf.org/2007/ops)にあります。

2.6.3.1.1: switch要素

switch要素は、インラインXMLアイランドに含まれている要素です。これには、ゼロ以上のcase要素が含まれており、1つのdefault要素が含まれていなければなりません(must)。この要素名は、多くのプログラミング言語の「スイッチ」機能に慣れ親しんだ人が容易に理解できるように選ばれました。

switch要素を用いたマークアップの例は次の通りです。

<ops:switch id="mathmlSwitch">

   <ops:case required-namespace="http://www.w3.org/1998/Math/MathML">
      <math xmlns="http://www.w3.org/1998/Math/MathML">
         <mrow>
            <mn>2</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>x</mi>
         </mrow>
         <mrow>
            <mo>+</mo>
            <mi>y</mi>
            <mo>-</mo>
            <mi>z</mi>
         </mrow>
      </math>
   </ops:case>

   <ops:default>
      <p>2x + y - z</p>
   </ops:default>

</ops:switch>
2.6.3.1.2: case要素

case要素は、非優先語彙や拡張モジュールのマークアップを含むために用いられます。switch要素には、ゼロ以上のcase要素があります。case要素にはOPS名前空間のコンテンツは全く含まれません。これは、OPS名前空間以外のコンテンツの包含を排除するものではなく、排除しないのが通常です。

OPSの読書システムは、case要素にコンテンツが全く含まれていない場合にも、ドキュメントを無効にしてはならず(must not)、その場合、何も表示してはなりません(must)。

2.6.3.1.2.1: required-namespace属性

required-namespace属性は、読書システムがcase要素のコンテンツを処理するためにサポートしなければならない(must)XML語彙の名前空間を指定します。読書システムは、自身がサポートするrequired-namespace属性値を有する最初のcase要素のコンテンツを処理すべき(should)です。余分なOPS XML語彙の処理は必要でない(not required)ことに注意してください。アイランドのフォールバックのみ(default要素)を処理しなければなりません(must)。

ルート要素をXHTML名前空間に持つドキュメントは、XHTML名前空間以外の要素を用いてはならず(must not)、それが認められている場合にも、そのドキュメントがその名前空間で明示的に認められている(例えば、SVGのmetadata要素)、もしくは、required-namespace属性値と一致したcase要素の子孫である場合を除き、SVG名前空間以外の要素を用いてはなりません(must not)。

2.6.3.1.2.2: required-modules属性

XML語彙には異なるモジュールへ分割されるものがあり、適合したアプリケーションはその一部またはすべてをサポートできます(may)。これらの語彙には自身の仕様で定義された名前を持つモジュールがあり、このモジュールの一部またはすべては任意(optional)であり、この任意の(optional)モジュールはこの仕様では拡張モジュールであるとみなされます。

モジュール化されたXML語彙は、語彙の仕様で求められている最低限のモジュールを読書システムがサポートしている - XML語彙の少なくともすべての非拡張モジュールをサポートしている - 場合には、サポートされているとみなされます。

優先語彙に記述されているインラインXMLアイランドには、定義上、拡張モジュールの使用が組み込まれています。この場合、また、非優先語彙アイランドが拡張モジュールを使用している場合、required-modules属性はrequired-namespace属性と共に存在していなければなりません(must)。required-modulesの属性値は、インラインXMLアイランド内で用いられている拡張モジュール名を含んだコンマ区切りのリストでなければなりません(must)。モジュール名は、XML語彙仕様で特に別途指定されていない場合には、大文字と小文字を区別しません。モジュール名に含まれる空白は、「-」に置き換えてrequired-modules属性値で記述しなければなりません(must)。XHTMLの場合には、OPSのコンテキストにおいて、拡張モジュールにrubyformsserver-side-image-mapintrinsic-eventsが含まれています。

また、required-modules属性値に非拡張モジュール名を記述することも認められていることに注意してください。XML語彙がサポートされている場合には、そのようなモジュールが常にサポートされているとみなされます。これは、明確さのためにも、一部のモジュールが後のバージョンの仕様で任意(optional)になる可能性がある場合(例えば、OPSで現在非推奨になっているXHTMLモジュールのスタイル属性)にも有益です。

非優先語彙のインラインXMLアイランドを指定するcaserequired-modules属性を記述することは - 明確さのため、または、非優先語彙で使用される拡張モジュールを指定するために - 認められており、有益であることがあります。

OPSがコアにサポートしたモジュール以外のXHTMLモジュールをrequired-modulesを用いて指定する例は、次のとおりです。

<ops:switch id="XHTMLServerSideSwitch" xmlns:ops="http://www.idpf.org/2007/ops">
        <ops:case required-namespace="http://www.w3.org/1999/xhtml"
                required-modules="server-side-image-map">
                <a href="http://www.example.com/examplemap.map">
                <img src="example.gif" ismap="ismap"
                        title="Example Map"
                        alt="A picture of an example." />
                </a>        </ops:case>
        <ops:default>
                <img src="example.gif" usemap="map"
                        title="Example Map"
                        alt="A picture of an example." />
                <map name="map">
                        <area href="example1.html"
                                alt="Link to the first example."
                                shape="rect" coords="0,0,118,28" />
                        <area href="example2.html"
                                alt="Link to the second example"
                                shape="rect" coords="184,0,276,28" />
                </map>
        </ops:default>
</ops:switch>
2.6.3.1.3: default要素

default要素はcase要素とほぼ同じです。default要素の目的は、switchを表示するためのベースライン(または、フォールバック)として適合したマークアップを提供することです。default要素は、その親であるswitch要素がドキュメントで用いられている箇所で認められているXMLノードのみを含まなければなりません(must)。より正確には、すべてのswitch要素を、その子供であるdefault要素のコンテンツと置き換えることにより有効なドキュメントが作成される場合に限り、ドキュメントは有効であるとみなされます。

2.6.3.2: インラインXMLアイランドの処理

インラインXMLアイランドは、スイッチ要素およびその包含要素に記述されているマークアップ定義によって処理しなければなりません(must)。

2.6.3.3: インラインXMLアイランドの表示

2.6.3.3.1: 高度な表示動作

読書システムは、記述されている順序でcase要素を処理しなければならず(must)、最初にサポートされていることを認識したcase要素のコンテンツを表示すべき(should)です(すなわち、読書システムはrequired-namespaceで指定された語彙をサポートします)。読書システムは、他のすべてのcaseおよびdefault要素のコンテンツを無視し、switch内の1つのcaseまたはdefaultの要素のみを表示しなければなりません。

case要素の任意の語彙をサポートする読書システムは、default要素のコンテンツを表示しなければなりません(must)。

2.6.3.3.2: アイランドのスタイリング

インラインXMLアイランドを含むドキュメントにスタイリングが適用される場合には、完全なドキュメント・ツリーに対し、スタイルシートのカスケーディングと継承規則が採用されます。しかし、OPSのswitchcasedefault要素は、これらに割り当てられたすべてのスタイリング・プロパティを無視しなければなりません(must)。特に、これらの要素は、XHTML要素のようにボックス(例えば、CSSのボックス・レイアウト)を作成してはなりません(must not)。

2.6.3.4: リンクに関する留意事項

同じid属性を持つ要素を様々な代替のインラインXMLアイランドに含んではならない(must not)ため、インラインXMLアイランドのコンテンツに深くリンクすることができない場合もあります。したがって、case要素を表示用に選択しても、参照を解決することはできません。

2.6.3.4.1: switch要素へのリンク

読書システムは、switch自身に表示特性がなくても、switch要素をターゲットとしたリンクを認識し表示しなければなりません(must)。

2.6.3.4.2: リンク切れ

インラインXMLアイランドへのリンクは、一般的なXHTMLに対応したブラウザと同じように、警告やエラーなしに中断できなければなりません(must)。

2.6.3.5: NCXの要件

NCXからインラインXMLアイランドへのリンクは、インラインXMLアイランドへの他のリンクと同様に機能しなければなりません(must)。

2.7: 読書システム上のドキュメントの表示

多くの要素と属性は、すべての読書システムに求められるわけではない(not required)動作を認めています。例えば、一部の装置は、モノクロであったり、主に聴覚用または触覚用のインターフェースを提供するかもしれません。このような場合には、この仕様では、通常、読書システムが優先語彙で認められているすべての構文(属性値などの)を受け入れることを要求します(required)が、それをそのまま受け入れる必要はありません(not required)。例えば、読書システムは、table要素のborder属性を分析し認識しなければなりません(must)が、0以外のすべての値を1と同じように扱うことも選択できます(may)。

この仕様がOPS優先語彙の表示に関して特定の動作を強制しないことに注意してください。ウェブ・ブラウザの用法に厳密に従い、例えば、段落の前に空白行を入れるが、最初の行のインデントは行わないなど、要素の目的を可視的に表現することを選択する読書システムもありえます。例えば、段落間に余白を設けないが、最初の各行はインデントするなど、長文小説のような読み易い表示に調整できる読書システムもありえます。さらに、スピーチ・ジェネレータなどの、特定の要素やドキュメント全体を全く異なる方法で提示できるシステムもありえます。

3.0: OPSスタイルシート

CSSスタイルシートと同様に、OPSスタイルシートは大文字と小文字を区別しませが、CSSの制御下にないパーツは例外です。特に、OPSコンテンツ・ドキュメントは、XMLドキュメントであるため、その要素名と属性値は大文字と小文字を区別します。したがって、対応するOPSスタイルシートの要素名と属性値は、大文字と小文字を区別します。これは、現在、セレクタに用いられる要素名、属性名、属性値にのみ適用されています。

CSS1とCSS2によって定められている構文に違いがある場合は、OPSスタイルシートはCSS2の構文に従います。これらの違いに関するリストは、W3C勧告REC-CSS2-19980512、「カスケーディング・スタイル・シート、レベル2(CSS2)仕様」のD3項にあります。OPSスタイルシートは、セミコロンで区切られた複数宣言のCSS構成子をサポートします。したがって、次のスタイルシートの規則は、

h1 { color: blue }
h1 { font-weight: bold }
h1 { font-size: 12pt }
次と同等です。
h1 { color: blue;
     font-weight: bold;
     font-size: 12pt }

コンマでセレクタを区切ることで、同じ宣言ブロックを持つ複数の規則を1つの規則に結合できます。つまり、次は、

h1 {text-indent: 0em}
h2 {text-indent: 0em}
h3 {text-indent: 0em}
次の、同等の形式に結合することが可能です。
h1, h2, h3 {text-indent: 0em}

OPSスタイルシートは、CSSのすべての空白文字をサポートします。具体的には、「空白」(Unicodeのcode 32)、「タブ」(9)、「ライン・フィード」(10)、「キャリッジ・リターン」(13)、および「フォーム・フィード」(12)の文字は空白として表示される可能性があります。CSS2の仕様で定義されている構文のコメントは、OPSに適合したCSSスタイルシートで使用できます。

この仕様では、インラインのstyle属性(非推奨)、XHTMLのstyle要素、および外部リンク(link要素またはxml-stylesheet処理命令によって)のスタイルシートをサポートしています。DTBookでは、xml-stylesheet処理命令によってCSSスタイルシートを含めることができます。したがって、XHTMLおよびDTBookの優先語彙の両方のドキュメントにCSSスタイリングを適用できます。

この仕様では、セレクタの使用がCSS2の仕様の定義と同じであることを想定しています(詳細に関しては、http://www.w3.org/TR/REC-CSS2/selector.htmlを参照)。例えば、ドキュメントのスタイルシートにおける複数の規則のうちのどれを適用するかを決定するための規則は、継承、カスケード、セレクタの特異性の規則によって決まります(詳細に関しては、http://www.w3.org/TR/CSS2/cascade.htmlを参照)。

スタイルシートが定義されていない場合や、特定のXHTMLのOPS要素に対して適用できるスタイルが見あたらない場合には、この仕様のほかの部分やXHTML 1.1の仕様で定義しているとおり、XHTMLの表示はデフォルトです。

この仕様では、読書システムにテキスト読み上げやその他の音声読上げ技術の実装を要求していません(not required)。このような技術を実装していない読書システムは、この仕様で「聴覚スタイルシート」と分類されているCSSのプロパティや「表」の下で列挙されている「speak-header」のプロパティをいずれも無視できます(may)。

すべてのプロパティは、CSSで定義されているとおりに要素に適用されます。つまり、display属性の値に基づく制限があるものも少しあるものの(例えば、表示タイプがinlineではなくblockである場合にのみ適用されるtext-align) 、ほとんどのプロパティはすべての要素に適用できます。しかし、読書システムは、あらゆる特性をサポートする必要はありません(not required)。例えば、border-widthの特定の長さの値を、そのプロパティに指定された値の1つにマッピングすることを選択できます(may)。

3.1: セレクタ

セレクタは、対象ドキュメント内のマッチしなければならない(must)パターンを指定し、宣言ブロックにおいてスタイル宣言を適用する要素を定めます。ある要素に対するパターンのすべての条件が真であれば、セレクタは要素とマッチしており、その宣言は宣言ブロックにおいて適用されます。この仕様は、CSS2仕様と同じセレクタを用いることを想定しています。読書システムは、CSS2のすべてのセレクタをサポートしなければなりません(must)。

3.2: 値の型

3.2.1: URI値

URI値を持つプロパティの場合、そのURIは該当するプロパティの適切なメディア・タイプのドキュメントを指さなければなりません(must)。この参照先のドキュメントは、OPFパッケージ・ドキュメントのマニフェストに記述されなければなりません(must)。

3.2.2: 整数と実数

実数はnumberで、整数値はintegerで表されます。どちらも任意の(optional)記号(「+」か「-」のいずれか)を値として持つことができますが、特定のプロパティでは数値の範囲と記号が制限されていることがあります。

3.2.3: 長さ

座標や大きさの値がゼロではない場合には、必ず単位を指定しなければなりません(must)。CSS1とCSS2で定義されているすべての単位がサポートされています。

px ピクセル
ex 現在のフォントのx-height
em 現在のフォントのサイズ
pt ポイント
in インチ
cm センチメートル
mm ミリメートル
pc パイカ

3.2.4: パーセンテージ

パーセンテージの単位がサポートされている場合には、CSSの仕様においてパーセンテージを値として認めている各プロパティの定義に従って使用されます。

3.2.5: 色

現在のブラウザは、多くのキーワード色名をサポートしています。XHTML 1.1では、16の色名と数値が定義されています。OPSスタイルシートは、CSS2の書式をすべて使用できます(may)が、読書システムはこれらの色をすべて区別して表示する必要はありません(not required)(そうでなければ、意図に反して、モノクロの装置は必然的に非適合になる)。

Black
White
Aqua
Blue
Fuschia
Gray
Green
Lime
Maroon
Navy
Olive
Purple
Red
Silver
Teal
Yellow
#rrggbb 6桁の16進数
#rgb 3桁の16進数
rgb(r, g, b) 0-255の範囲の整数
rgb(r%, g%, b%) 0.0%から100.0%の範囲の浮動小数

3.2.6: 時間

CSS2で定義されている単位がサポートされています。

s
ms ミリ秒

3.2.7: 周波数

CSS2で定義されている単位がサポートされています。

Hz ヘルツ
kHz キロヘルツ

3.2.8: 文字列

シングル引用符またはダブル引用符(それぞれ、Unicodeのcode 39、34)を用いて文字列を引用しなければなりません(must)。入れ子の文字列は、バックスラッシュでエスケープ(例えば、「a \"nested\" string」)しなければなりません(must)。文字列に改行を組み込む場合は、「\A」というエスケープを使用してください。16進の「A」は、Unicodeでは改行(ラインフィード)文字ですが、CSSでは「改行(ニューライン)」の汎用概念を表します。

3.3: プロパティ

サポートしているすべてのCSSプロパティのデフォルト値はCSS2に記述されているとおりです。

以下の表は、この仕様でサポートしているすべてのCSSのプロパティと値のリストです。CSS2仕様で示されているプロパティのすべての値を列挙しているわけではなく、記述していない値は、この仕様ではサポートしていないものです。「代替表示」の列は、読書システムがCSSの値を意図されたとおりに表示できない場合に適用可能なフォールバック表示を示します。

この仕様固有のプロパティに下線を引いてあります。

CSS構造 代替表示 CSS2の項
メディア・タイプ 7
@media 7.2.1
aural 7.3
all 7.3
ページ・モデル 13.2
@page 13.2
:left 13.2.4
:right 13.2.4
:first 13.2.4
ボックス・モデル 8
マージン 8.3
margin-top, margin-bottom, margin-left, margin-right 8.3
<length>
<percentage>
margin [2] 8.3
auto 0 [1]
パディング 8.4
padding-top, padding-bottom, padding-left, padding-right 8.4
<length>
<percentage>
padding [2] 8.4
ボーダー 8.5
border-top-width, border-bottom-width, border-left-width, border-right-width 8.5.1
thin
medium
thick
<length> thin/medium/thick [3]
border-width [2] thin/medium/thick [3] 8.5.1
border-top-color, border-bottom-color, border-left-color, border-right-color 8.5.2
<color> [4]
transparent
border-color [2] 8.5.2
border-top-style, border-bottom-style, border-left-style, border-right-style 8.5.3
none
hidden
dotted solid
dashed solid
solid
double solid
groove solid
ridge solid
inset solid
outset solid
border-style [2] 8.5.3
border-top, border-bottom, border-left, border-right [2] 8.5.4
border [2] 8.5.4
視覚表示モデル 9
display [5] 9.2.5
none
inline
block
run-in
table
inline-table
table-row-group
table-header-group
table-footer-group
table-column-group
table-row
table-column
table-cell
table-caption
inherit
oeb-page-head [6]
oeb-page-foot [6]
float 9.5.1
left
right
none
inherit
clear 9.5.2
none
left
right
both
inherit
direction 9.1
ltr
rtl
inherit
unicode-bidi 9.1
normal
embed
bidi-override
inherit
oeb-column-number [13]
auto
<integer> 1
視覚フォーマット・モデルの詳細 10
width 10.2
<length>
<percentage>
auto
inherit
min-width 10.4
<length>
<percentage>
inherit
max-width 10.4
<length>
<percentage>
auto
inherit
height 10.5
<length>
<percentage>
auto
inherit
min-height 10.7
<length>
<percentage>
inherit
max-height 10.7
<length>
<percentage>
none
inherit
line-height 10.8.1
normal
<number>
<length>
<percentage>
inherit
vertical-align 10.8.1
baseline
sub
super
top
text-top [7]
middle
bottom
ext-bottom [8]
inherit
作成されたコンテンツ、自動番号付け、リスト 12
content [9] 12.2
<string>
inherit
list-style-type 12.6.2
none
disc
circle
square
decimal
decimal-leading-zero
lower-roman
upper-roman
lower-greek Decimal
upper-greek Decimal
lower-alpha
lower-latin
upper-alpha
upper-latin
hebrew Decimal
armenian Decimal
georgian Decimal
cjk-ideographic Decimal
hiragana Decimal
katakana Decimal
hiragana-iroha Decimal
katakana-iroha Decimal
inherit
list-style-position 12.6.2
inside
outside
inherit
list-style [2] 12.6.2
ページ付けのある媒体 13
page-break-before 13.3.1
auto
always
avoid
left [10]
right [10]
inherit
page-break-after 13.3.1
auto
always
avoid
left [10]
right [10]
inherit
page-break-inside 13.3.1
auto
avoid
inherit
orphans 13.3.3
<integer>
inherit
widows 13.3.3
<integer>
inherit
色と背景 14
color 14.1
<color> [4]
inherit
background-color 14.2.1
<color> [4]
transparent
inherit
フォント 15
font-family 15.2.2
<family-name>
sans-serif
serif
monospace
inherit
font-style 15.2.3
normal
italic [11]
oblique [11]
inherit
font-variant 15.2.3
normal
small-caps
font-weight 15.2.3
normal
bold
100-900 [3]
inherit
font-size 15.2.4
xx-small
x-small
small
medium
large
x-large
xx-large
smaller
larger
<length> [3]
<percentage> [3]
inherit
font [2] 15.2.5
テキスト 16
text-indent 16.1
<length>
<percentage>
inherit
text-align 16.2
left
right
center
justify
inherit
text-decoration 16.3.1
none
line-through
underline
inherit
white-space 16.6
normal
pre
nowrap
inherit
17
caption-side 17.4.1
top
bottom
left
right
inherit
table-layout 17.5.2
fixed
auto
inherit
speak-header 17.7.1
once
always
inherit
聴覚スタイルシート 19
volume 19.2
silent
x-soft
soft
medium
loud
x-loud
<percentage> [3]
0-100 [3]
inherit
speak 19.3
normal
none
spell-out
inherit
pause-before 19.4
<time>
<percentage>
inherit
pause-after 19.4
<time>
<percentage>
inherit
pause [2] 19.4
cue-before 19.5
<uri>
none
inherit
cue-after 19.5
<uri>
none
inherit
cue [2] 19.5
speech-rate 19.8
x-slow
slow
medium
fast
x-fast
faster
slower
<number> [12]
inherit
voice-family 19.8
male
female
child
inherit
pitch 19.8
x-low
low
medium
high
x-high
<frequency>
inherit
stress 19.8
0-100
inherit
richness 19.8
0-100
inherit
speak-punctuation 19.9
code
none
inherit
speak-numeral 19.9
digits
continuous
inherit

[1] 読書システムは、規定値がautoから0までのmarginプロパティ値も設定できます(may)。

[2] これは、プロパティの省略表記法です。この値の構文は、CSS2の仕様で示されています。この仕様において、値が制限されていたり、このプロパティによって省略されているプロパティの代替表現が示されている場合には、このプロパティにも同じ制限と代替表現が適用されます。

[3] 読書システムは、このプロパティに対して列挙されているキーワード値の1つにマッピングできます(may)。

[4] 色の単位に関しては、3.2.5項を参照してください。

[5] CSS2は、表の様々な値と、その正しい表示に関する完全な解説を提供しています。表の様々な値に関するより詳細な議論は、CSS2の表の仕様(http://www.w3.org/TR/REC-CSS2/tables.html)を参照してください。

CSS2とXHTMLは、表のデータの表示に関し、似ているけれどもわずかに異なるアルゴリズムを提供します。これらのアルゴリズムによって、同じ結果が得られる傾向がありますが、いくつかの例外があります。その場合には、適合した読書システムは、CSS2が指定しているアルゴリズムと一致した出力を行わなければなりません(must)。

作者は、表を用いる際に、できるかぎり多くの意味情報を保持するために、ウェブ・アクセシビリティ・ガイドライン(http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/)の手法に従うべき(should)です。このドキュメントには、表タグをいつ、どのように使用し、CSSのプロパティをいつ用いるのかを選択するための優れた実例が記述されています。具体的には、「ガイドライン5: うまく変換される表を作る」(http://www.w3.org/TR/WAI-WEBCONTENT-TECHS/#gl-table-markup)を参照してください。

[6] display: oeb-page-headを割り当てられた要素のコンテンツは、ヘッダーとしてのみ表示されるべき(should)で、display: oeb-page-footを割り当てられた要素のコンテンツは、フッターとしてのみ表示されるべき(should)です。いずれも、単なるインラインやブロックであるかのように表示すべき(should)ではありません。しかし、読書システムは、紙の出版物が通常そうしているように、特別な領域にヘッダーとフッターを表示したり、別の方法で提供することも自由にできます。例えば、スクリーンが小さい装置は、要求に応じてそれらをポップアップさせるかもしれません。ページ・レイアウトの目的上、これらの表示の値は、絶対位置を有するブロック・ボックス(すなわち、positionの値がfixedまたはabsolute)に似ています。すなわち、通常の流れから切り離された、独自の流れを持つ新しいブロック・ボックスが作成されます。マージン、パディング、その他のブロックの特性は、要素にposition: fixedの組み合わせがあるかのように決定されます。

何らかの以前のコンテンツが表示されたままの間は、display: oeb-page-headdisplay: oeb-page-footを割り当てた要素が有効になっているとみなすべきではありません(shall not)。例えば、スタイル設定を適切に行ったスクリーンに表示すると、下記のmyheadというクラスのdiv要素は、先行するdivの内容が表示されなくなった直後にページのヘッダーになるでしょう。

<div>
   <div class="myhead" style="display: oeb-page-head">
      The OEB Publication Structure: Introduction
   </div>
   <h2>Introduction</h2>   <p>...</p>
</div>

このヘッダー(または、フッター)は、別のヘッダー(または、フッター)がその代わりに有効になるか、親要素が全く表示されなくなる(上例のdivが表示されなくなるなど)かのどちらかの状態になるまで、有効であり続けます。

[7] 読書システムは、トップにマッピングできます(may)。

[8] 読書システムは、ボトムにマッピングできます(may)。

[9] @mediaの値がauralではないスタイルシート内に使用してはなりません(must not)。

[10] 単ページの読書システムは、leftrightalwaysとして扱わなければなりません(must)。

[11] 読書システムは、italicobliqueを区別する必要はありません(need not)。

[12] 1分あたりに単語を読み上げるレートを指定する数値です。

[13] コンテンツを表示する列の数を指定します。すべてのブロック・レベル要素に適用できます(may)。読書システムは、1以外の整数値をサポートしたり、1にマッピングすることができます(may)。読書システムは、列のバランス化をサポートできます。読書システムは、autoという値を用いると、読み易さに関わると考えられる有効な幅、フォント・サイズ、その他の数値指標を考慮して、コンテンツを表示するために最適な列の数を決定できるようになります。

3.4: 組み込みフォント

作者がテキストの体裁を制御できるようにするために、OPSは、CSS2のfont-face at-rule(@font-face)をサポートしています。CSS2勧告の15.3.1項を参照してください。次のフォント記述子をサポートしなければなりません(must)。

  • font-family
  • font-style
  • font-variant
  • font-weight
  • font-size
  • src

可搬性のために、作者はこれら以外の記述子を用いてはなりません(must not)。フォント・ファイルは、Unicode文字の表示に必要なすべての情報を持っていなければなりません(must)。フォントは、テキストの意味を変えるようなUnicode文字のマッピング(例えば、「A」という文字を有害物質記号にマッピングする)を提供してはなりません(must not)。コンテンツの作者は、特定のフォント形式がサポートされていると想定してはなりません(must not)。srcという記述子のファイル・リストを用いて、複数の形式のフォントを含むことができますが、最初にサポートされている形式を用いるべき(should)です。少なくとも1つのOpenType形式のファイルをリストに常に含むべき(should)です。読書システムは、OpenTypeフォント形式をサポートすることが望ましいですが、これは適合の要件ではありません。読書システムは、組み込みフォント形式を全くサポートしなくても構いません(may)。コンテンツの作者は、フォールバックのフォントを指定するために、フォント・ファミリーのプロパティにコンマ区切りのリストを用いるべき(should)です。

コンテンツの作者は、OpenTypeフォント(また、他の多くのフォント形式)でコード化された利用上の制限を常に受け入れなければなりません(must)。OPS出版物には、「組み込み禁止」と記述されているフォントを含んではなりません(must not)。

OPS出版物に含まれているフォント・ファイルは、OPFのmanifestに適切なメディア・タイプで含まなければなりません(must)。

付録

付録A: XHTMLコンテンツ・ドキュメントのNVDL定義

このNVDL仕様では、次の3つのXMLスキーマを参照します。

  1. HTML DTD
  2. SVG RelaxNGスキーマ
  3. OPS RelaxNGスキーマ

これらのうち最初の2つは外部への参照です。OPSスキーマは付録Bで定義されています。

<?xml version="1.0" encoding="UTF-8"?>
<rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"
       startMode="valid-ops" xmlns:html="http://www.w3.org/1999/xhtml">

<!-- mode that allows any elements -->
<mode name="anything">
   <anyNamespace>
      <allow/>
   </anyNamespace>
</mode>

<!-- mode that only allows either valid SVG fragment -->
<!-- or arbitrary XHTML fragment -->
<mode name="blessed-xhtml">
   <namespace ns="http://www.w3.org/2000/svg">
      <validate schema="http://www.w3.org/Graphics/SVG/1.1/rng/svg11.rng"
                useMode="svg-content"/>
   </namespace>
   <namespace ns="http://www.w3.org/1999/xhtml">
      <allow/>   </namespace>
</mode>

<!-- mode that only allows arbitrary SVG fragment -->
<mode name="blessed-svg">
   <namespace ns="http://www.w3.org/2000/svg">
      <allow/>
   </namespace>
</mode>

<!-- mode that allows any elements -->
<!-- any XHTML fragments are attached in place of -->
<!-- the OPS fragment that invoked this mode -->
<mode name="xhtml-attach">
   <namespace ns="http://www.w3.org/1999/xhtml">
      <attach/>
   </namespace>
   <anyNamespace>
      <allow/>
   </anyNamespace>
</mode>

<!-- mode that allows any elements -->
<!-- any SVG fragments are attached in place of the OPS fragment -->
<!-- that invoked this mode -->
<mode name="svg-attach">
   <namespace ns="http://www.w3.org/2000/svg">
      <attach/>
   </namespace>
   <anyNamespace>
      <allow/>
   </anyNamespace>
</mode>

<!-- mode that allows any valid XHTML with SVG islands included -->
<!-- and OPS switch elements with valid default clause -->
<mode name="valid-ops">
   <namespace ns="http://www.w3.org/1999/xhtml">
      <validate schema="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
                schemaType="application/xml-dtd" useMode="xhtml-content"/>
   </namespace>
</mode>

<!-- mode that validates SVG and OPS islands inside XHTML -->
<mode name="xhtml-content">
   <namespace ns="http://www.w3.org/2000/svg">
      <validate schema="http://www.w3.org/Graphics/SVG/1.1/rng/svg11.rng"
                useMode="svg-content"/>
   </namespace>
   <namespace ns="http://www.w3.org/1999/xhtml">      <attach/>
   </namespace>
   <namespace ns="http://www.idpf.org/2007/ops">
      <!-- doing two independent thing here -->
      <!-- first, attach XHTML islands from default element into the XHTML -->
      <!-- tree so that they can be validated in the right context -->
      <unwrap useMode="xhtml-attach">
         <context path="case" useMode="anything"/>
      </unwrap>
      <!-- next, validate OPS itself (switch element), paying attention to -->
      <!-- what can go inside case and default elements -->
      <validate schema="ops20.rng">
         <context path="case" useMode="anything"/>
         <context path="default" useMode="blessed-xhtml"/>
      </validate>
   </namespace>
</mode>

<!-- mode that validates OPS islands inside SVG -->
<mode name="svg-content">
   <namespace ns="http://www.w3.org/2000/svg">
      <attach/>
   </namespace>
   <namespace ns="http://www.idpf.org/2007/ops">
      <!-- doing two independent thing here -->
      <!-- first, attach SVG islands from default element into SVG tree, -->
      <!-- so that they can be validated in the right context -->
      <unwrap useMode="svg-attach">
         <context path="case" useMode="anything"/>
      </unwrap>
      <!-- next, validate OPS itself (switch element), paying attention -->
      <!-- to what can go inside case and default elements -->
      <validate schema="ops20.rng">
         <context path="case" useMode="anything"/>
         <context path="default" useMode="blessed-svg"/>
      </validate>
   </namespace>
</mode>
</rules>

付録B: OPSスキーマ

 

<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="http://www.idpf.org/2007/ops" xml:lang="en"
         xmlns="http://relaxng.org/ns/structure/1.0"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

<start>
   <ref name="OPS.switch"/>
</start>

<define name="OPS.switch">
   <element name="switch">
      <optional>
         <attribute name="id">
            <data type="ID"/>
         </attribute>
      </optional>
      <oneOrMore>
         <element name="case">
            <optional>
               <attribute name="id">
                  <data type="ID"/>
               </attribute>
            </optional>
            <attribute name="required-namespace">
               <text/>
            </attribute>
            <optional>
               <attribute name="required-modules">
                  <text/>
               </attribute>
            </optional>
            <zeroOrMore>
               <ref name="OPS.switch"/>
            </zeroOrMore>
         </element>
      </oneOrMore>
      <element name="default">
         <optional>
            <attribute name="id">
               <data type="ID"/>
            </attribute>
         </optional>
<zeroOrMore>
            <ref name="OPS.switch"/>
         </zeroOrMore>
      </element>
   </element>
</define>

</grammar>

付録C: 貢献者

この仕様は、出版者、読書システム・メーカー、ソフトウェア開発者、および関連標準の専門家の協力による取り組みで開発されました。

この仕様のバージョン2.0は、International Digital Publishing Forum(IDPF)のOpen eBook Publication Structure(OEBPS)Working Groupにより作成されました。改定バージョン2.0の公表時点のワーキンググループのメンバーは次の通りです。

この取り組みの基となった、OPS仕様の前バージョンはOEBPS 1.2です。OEBPS 1.2は、Open eBook Forum Publication Structure Working Groupによって開発されました。OEBPS 1.2の開発期間中のワーキンググループの活動メンバーは次のとおりです。

付録D: 謝辞

ワーキンググループは、下記の個人の貢献に対し特に感謝申し上げます。OPSおよびOPF RelaxNGスキーマの作成、OPSのNVDL定義の作成、および一般的な技術的な識見に対し、Peter Sorotokinに。XMLアイランドの概念および起草、また、技術面全般への関与、仕様作成に用いたXMLテンプレートに対し、Ben Traffordに。一貫したアクセシビリティに関する指導と幅広い技術的な情報の提供、OPFのNCXの項の起草に対しGeorge Kerscherに。指導による貢献、仕様の編集および過去のOEBPS 1.2の取り組との継続性の提供に対し Brady DugaJon Noringに。ワーキンググループでのリーダシップと動機付け、仕様の起草、技術的な貢献に対しGarth Conboyに。

付録E: サポート情報と正誤表

サンプル・ファイル、仕様の実装、その他の情報を含む、すべてのIDPF仕様に関する追加情報に関しては、http://www.idpf.org/forumsの公開フォーラムを訪問してください。出版物の仕様に誤りが発見された場合には、その誤りをフォーラムに投稿してください。担当のワーキンググループが仕様の誤りを調査し、必要に応じて保留中の修正として投稿するでしょう。修正は、次のバージョンの仕様に組み入れられるでしょう。