【注意】 このドキュメントは、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日
Copyright © 2007 by International Digital Publishing Forum™.
All rights reserved. This work is protected under Title 17 of the United States Code. Reproduction and dissemination of this work with changes is prohibited except with the written permission of the International Digital Publishing Forum.
目次
2.3: XHTML 1.1とは異なる意味や制約の要素と属性
2.5.3: 同一ドキュメントにおけるSVGとXHTMLマークアップの併用
2.6.3.1.2.1: required-namespace属性
電子書籍技術が市場において広く成功を収めるためには、読書システムは、多くの様々な著作物に容易にアクセスできる必要があります。オープン・パブリケーション・ストラクチャ(OPS)仕様は、電子出版物のコンテンツを表現するための標準を記述しています。具体的には、次のとおりです。
関連するもう一つの仕様(オープン・パッケージング・フォーマット(OPF)仕様)では、OPS出版物の様々な構成要素を結びつけるメカニズムを定義し、電子出版物に構造とセマンティクスを追加します。具体的には、OPFは次のとおりです。
パッケージング方法の記述と、コンテンツの記述を切り離してモジュール化するため、OPF仕様はOPSマークアップ仕様とは別になっています。これにより、他の標準化団体(例えば、DAISY)が、非OPSコンテキストで、パッケージング技術を容易に使用できるようになるでしょう。
3つ目の仕様(OEBPSコンテナ・フォーマット(OCF)仕様)では、電子出版物のすべての構成要素を送信、配信、保存するために一つのアーカイブ・ファイルにまとめてパッケージ化する標準メカニズムを定義しています。
コンテンツ提供者
出版者、著者、または、この仕様に記述されている形式で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/)に準拠していなければなりません。
この仕様は、他の仕様のサブセットとアプリケーションを組み合わせて作成しています。組み合わせることにより、電子文書の構築、編成、提供、厳密な交換が容易になります。
XMLは一般性と簡潔さを備えており、XMLドキュメントが将来の技術や利用にうまく適合する可能性が高いという理由により、OPSはXMLに基づいています。また、XMLは、ドキュメントの構文に関する明確な規則を提示しているため、実装コストが下がり、システム間の非互換性が減少します。さらに、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に関連付けられた他の名前空間が存在しており、これは特定のコンテキストで用いられます。
この仕様では、この仕様で用いる様々なスキーム間のインタラクションを明確に定義するための手段としてNVDL言語(http://standards.iso.org/ittf/PubliclyAvailableStandards/c038615_ISO_IEC_19757-4_2006(E).zipを参照)を用います。NVDLにより、様々なXMLスキーマ言語間のインタラクションと検証が可能になります。OPSの規範的なNVDLの定義に関しては、付録Aを参照してください。
OPSドキュメントの検証にNVDLツールを利用できます(may)が、この仕様では、そのような検証に必ずしもNVDLツールを用いる必要はありません。
この仕様は、現在のソフトウェア・ツール、レガシー・データ、出版の慣習、および市況の重要性を認識しており、したがって、特定のXHTML 1.1ドキュメント・タイプ・モジュールとDTBookを優先語彙として組み込んでいます。このアプローチにより、コンテンツ提供者は、現在のXHTML、DTBookコンテンツ、ツール、専門技術を活用することができます。
読書システムの実装者(電源とディスプレイに制約がある装置に取り組んでいるかもしれない)の実装の負担を最小限にするため、優先語彙には、XHTML 1.1のすべての要素および属性を含んでいるわけではありません。さらに、XHTML 1.1仕様から選択したモジュールは、XHTMLの動向と整合性があるものにしました。
XHTML 1.1で非推奨の構造子は、この仕様でも非推奨か削除されているかのいずれかです。このようなケースのほとんどにはCSSベースの同等物を提供しています。スタイルシートの構造子は、XHTMLが提供する以上の新たな表示機能にも用います。
この仕様では、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コンテンツ・ドキュメントに関連付けることができます。
最初の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位置プロパティ値(すなわち、absoluteとfixed)を用いて絶対位置を実現しないことを、強く推奨します。
出版物は、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/を参照)。
この仕様では、すべての読書システムがサポートしなければならず(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 |
この仕様では、W3C勧告「Associating Style Sheets with XML Documents」で定義されているXMLスタイルシート処理命令xml-stylesheet(http://www.w3.org/TR/xml-stylesheet)をサポートしています。この処理命令は、XMLドキュメントのプロローグに置かれます。これは、linkと同じだけ、複数回記述できます。
このドキュメントの「しなければならない」(must)、「してはならない」(must not)、「必須である/要求される」(required)、「することになる」(shall)、「することはない」(shall not)、「すべきである/する必要がある」(should)、「推奨される」(recommended)、「することができる/してもよい」(may)、および「選択できる/任意である」(optional)というキーワードは、RFC 2119で記述されているとおりに解釈されなければなりません(must)。
この項では、OPSコンテンツ・ドキュメントと読書システムの適合性を定義しています。
この項では、OPSコンテンツ・ドキュメントの適合性について定義しています。
次の場合に限り、ドキュメントは、OPSコンテンツ・ドキュメントであると見なされます。
適合したXHTMLコンテンツ・ドキュメントは、次の条件を満たさなければなりません(must)。
次の場合に限り、ドキュメントは、DTBookコンテンツ・ドキュメントです。
次の場合に限り、ドキュメントは、アウト・オブ・ラインXMLアイランド・コンテンツ・ドキュメントです。
この仕様では、読書システムの適合性レベルを1つだけ定義しています。読書システムは、次のとおりにドキュメントを処理する場合に限り、適合しています。
OPSコンテンツ・ドキュメントが提示された場合、読書システムは次のとおりでなければなりません(must)。
この仕様に対して貢献者が意図しているのは、この仕様の後継となる世代が現在確立されている方針を継続することです。具体的には、次のとおりです。
OPSのバージョン2.0は、以前のバージョンであるOEBPS 1.2に対し、かなり重要な強化を行っています。バージョン2.0が1.2に行った実質的な機能強化には、コンテンツの忠実な表示に対するコントロールの強化、拡張メカニズムの強化、アクセシビリティの向上、OPSが基づいている標準との整合性の改善が含まれます。具体的には、次の点が最も実質的な追加点です。
OEBPS 1.2からOPS 2.0への最大の変更点は、以前の機能を撤廃ではなく非推奨とすることでしたが、OEBPS 1.2は、OPSバージョン2.0の完全互換のサブセットというわけではありません(新たな名前空間処理の要件など)。
XMLアイランドは、優先語彙がサポートする以上の機能、情報、構造を追加するための推奨(recommended)メカニズムです。
アウト・オブ・ラインXMLアイランドは、あらゆる出版物に使用できます(may)。XHTML優先語彙以外を用いて記述されたドキュメント内でインラインXMLアイランドを用いてはなりません(must not)。
この仕様では、読書に障害を持つ人々にとって、アクセシブルなコンテンツの利用を確保する機能を組み込んでいます。この仕様には、ワールド・ワイド・ウェブ・コンソーシアム(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/)の勧告をレビューし適用すべきです。
この仕様は、現在の取り組みを利用しながらも、将来の開発に備えることを目指しています。この仕様の後続バージョンの詳細については未定ですが、パブリケーション・ストラクチャ・ワーキンググループは、漸進的な開発が継続的に起こると予想しています。OPSバージョン2.0作成の原動力となったテーマは、標準の順守(例えば、名前空間の完全サポート)、アクセシビリティのサポート、広範なXMLドキュメント語彙のサポート、ナビゲーションのサポート強化、忠実なコンテンツ表示の改善です。
すべての関連標準との整合性を維持しつつも、将来のバージョンにおいて重要と考えられるその他のテーマには、コンテンツと表現のより厳格な分離、アクセシビリティの向上、国際的なコンテンツのサポート強化、読書装置固有の表示制御および/または読書装置のプロファイル、出版物間のリンクのサポート強化、出版物内のマークアップのレイヤー化と管理(例えば、印付け、ハイライト、注記)、アプリケーション固有のマークアップ(例えば、数学や化学の)、複数の読み順、動的コンテンツのサポート(例えば、マルチメディア、スクリプト)が含まれます。さらに、この仕様のこのバージョンに対する下位互換性は、最優先で維持されるべきです。将来の方針については、http://www.idpf.orgで追うことができます。
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は含まれていません)。
このドキュメントで別途特記されていない限り、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 |
前述のとおり、XHTML優先語彙(要素、属性、関連属性値)のセマンティクスと表示の動作は、厳密にXHTML 1.1に従っています。しかし、以下に述べるとおり、XHTML 1.1以上の制約もいくつかあります。この制約は、OPSドキュメントのXHTML 1.1との適合性には影響ありません。
属性の多くは、URIの値を用いて資源を参照します(Uniform Resource Identifier、RFC 2396 http://www.ietf.org/rfc/rfc2396.txtを参照) 。URIが参照する資源は、属性により、抽象的なエンティティか物理的なオブジェクトのいずれかでありえます。
注記されていたり、適切でない場合を除き、読書システムは、マニフェストに記述されていない(すなわち、出版物の構成要素ではない)、URIが参照する物理的な資源を使用したり表示することができます(may)が、これは必須ではありません(not required)。
書式設定では、bodyのデフォルト表示は、CSSプロパティのpage-break-beforeの値をrightに設定した場合と一致する(単ページの読書システムにおけるalwaysと同じように動作する)と思われますが、これは、適切なスタイルシートの宣言で無効にできます(may)。
任意の(optional)属性であるciteは、blockquote、q、del、insという要素のコンテンツを引用したURIを示すために使用できます(may)。読書システムは、資源がマニフェストに記述されているか否かに関わらず、参照されているURI資源を処理したり使用したりする必要はありません(not required)。
インライン要素の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を参照してください。
link要素によって、他のドキュメントとの様々な関係を指定できます。読書システムは、href属性および関連するrel属性で指定されている(rel="stylesheet"とrel="alternate stylesheet"の値で)外部スタイルシートの参照を認識しなければなりません(must)。
object要素は、一般的なオブジェクトを包含する方法として適しています。OPSコア・メディア・タイプのリストにはないデータ・メディア・タイプのオブジェクト、または、classid属性を用いてobjectの実装を参照するオブジェクトを追加する場合には、object要素は、別のobject要素、img要素や説明テキストなどの、objectに対するフォールバック情報を指定しなければなりません(must)。インラインのフォールバック情報は、親objectを参照した最後のparam要素の直後にOPSコンテンツとして記述されます。非テキストのコンテンツにアクセスできない人がアクセスできるように、objectの説明テキスト、インライン・コンテンツの使用、OPSコンテンツ・ドキュメントの包含、または、何らかの他の方法を提供すべき(should)です。
objectのclassid属性は、実装する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>
読書システムは、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自身がインラインで記述されていても、bodyやblockquoteのコンテンツ・モデルと同じであることに注意してください。
scriptのスクリプト言語を指定するtype属性は必須(required)です。
コンテンツ・モデルが#PCDATAであるscriptの潜在的な問題の1つは、コードに「<」や「&」の文字が含まれていれば、潜在的にXMLとの衝突があるということです。したがって、これらの文字が用いられている場合には、エスケープするかCDATAセクションに置かなければなりません(must)。スクリプトの実行性能を組み込む読書システムの開発者は、この潜在的な問題を意識する必要があります。
style要素のtype属性は必須(required)(XHTML 1.1の要件)であり、text/cssか非推奨のtext/x-oeb1-cssの値を付与しなければなりません(must)。個々のOPSコンテンツ・ドキュメントをXHTML 1.1ドキュメントとして表示するブラウザでは、非推奨のtext/x-oeb1-cssのインスタンスは、text/cssに変更されるべきです。
align属性のcharの値は、OPS XHTMLサブセットには含まれていません。同様の書式設定を実現するためには、CSSのtext-alignプロパティでstringの値を指定してください。
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/にあります。
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/にあります。
smilrefというDTBookの要素には1つの属性があります。この属性は、SMIL(http://www.w3.org/TR/2005/REC-SMIL2-20050107/)指定するために使用されます。SMILは、OPS出版物ではサポートされていません。OPS出版物のドキュメントのDTBookからのこの属性を取り除いても、検証エラーは発生しないでしょう。
地図、図、グラフなどの多くの画像は、写真ではなく、ベクター・グラフィックス・システムで作成されたものです。この画像は、直線、曲線、絶対的な位置を持つテキストのブロック(画素の配列ではなく)を用いて画像を描写するベクター(ラスタではなく)形式で表示できます。ラスター画像をベクター画像に置き換えると、ドキュメントのアクセスや検索がより容易になります。読書システムと著者がこの付加的な努力を行うことにより、アクセシビリティをかなり向上させることができます。ベクター画像により、ドキュメントの視覚的な質も向上し(ベクター画像は本質的に拡大縮小可能であるため)、ドキュメント・サイズが小さくなる傾向があります。
OPS読書システムは、OPSコア・メディア・タイプとしてSVG(Scalable Vector Graphics)をサポートしなければなりません(must)。
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)。
SVGコンテンツは、他の種類の画像を使用できる場所であれば、OPS内のどこにでも使用できます。これには、次が含まれます。
可搬性を最大限に確保するために、常にトップレベルのSVG要素でSVG画像の大きさを指定すべき(should)です。ビットマップ画像と同様に、要素の参照によってSVG画像の大きさを無効にして拡大・縮小することができます(may)。
スタイリングの目的のために、個々のSVG画像は、別々のドキュメントであるとみなされます。ドキュメントのスタイルシートへの参照は、参照先の複数のSVG画像には適用されず、SVG画像が継承した複数のCSSのプロパティにも適用されません。共通のスタイルは、SVGとXHTMLの両方が参照する複数のスタイルシートを作成すれば実現すべき(should)です。これはobject要素がXHTML要素を参照する場合と同じであることに注意してください。
SVGを使用する別の方法は、XHTMLマークアップにSVGマークアップを直接組み込むことです。SVGのルート要素(svg)は、CSSレイアウト内のコンテンツに置き換えられるとみなされなければならない(must)ため、svg要素は、XHTMLのimg要素を使用できる場所であればどこにでも使用できます(may)。その他のSVG要素は、svg要素の子孫としてのみ使用できます(may)。SVGとXHTMLの要素は異なる名前空間を持っているため、名前空間接頭辞やxmlns属性を用いて各要素に適切な名前空間を割り当てるよう注意する必要があります。
この場合、ドキュメントは1つしかなく、CSSスタイルシートはドキュメント全体(カスケードと継承を含む)に適用されます。通常は、個別の要素は、自身に適用可能なプロパティを利用するだけです。CSSレイアウトにおけるルートsvg要素の役割は、img要素の場合と同じく、display、float、positionのプロパティによって決まります。SVG画像の大きさは、ルートに置かれたsvg要素のwidthとheightの属性と(CSSのボックスのレイアウトにおいて置き換えられた要素の固有の大きさであるとみなされる)、CSSによって割り当てられたwidthとheightのプロパティにより決まります。「置き換えられた要素」と「固有の大きさ」の定義に関しては、http://www.w3.org/TR/CSS2/conform.htmlを参照してください。可搬性のために、著者は、XHTML専用のCSSプロパティをSVG要素に割り当てるのを避けるべき(should)で、その逆もまた同じです。
この項では、OPS出版物に一般的なXMLコンテンツを含むためのマークアップと処理モデルについて記述しています。
この項では、OPS出版物に一般的なXMLマークアップを含む方法を定義しています。OEBPS 1.2で定義されているとおり、拡張OEBPSを含む、他のXML語彙との最大限の下位、側方、上位の互換性を実現することが動機です。
これは、OEBPS 1.2の公表された将来の方針と一致しています。
そのために、このドキュメントでは「XMLアイランド」という概念を導入しています。次の2つの種類が存在しています。
アウト・オブ・ラインXMLアイランドは、優先語彙(すなわち、DTBookかXHTML)のいずれにも記述がないか、優先語彙ドキュメントにおいて拡張モジュールを用いた任意の完全なXMLドキュメントです。
インラインXMLアイランドは、OPS出版物のXHTML優先語彙ドキュメント内にある非優先語彙を用いるか、優先語彙の拡張モジュールを用いたXMLドキュメントのフラグメントです。インラインXMLアイランドは、OPS名前空間に対して名前空間修飾されていおり、object要素内に含まれていません。
インラインXMLアイランドは、DTBook優先語彙を用いたドキュメント内で用いてはならず(must not)、XHTMLドキュメント内でのみ使用しなければなりません(must)。
下記は、OPSにおけるXMLアイランドの存在の妥当性を示ユースケースです。
OPS読書システムは、正しくマークアップされたXMLアイランドの表示を扱うために、次のステップに従わなければなりません(must)。
これにより、読書システムは、標準的な方法で非優先語彙のコンテンツを含むことができ、OPSでベースラインとして求められる以上の処理が可能となり、ベースラインの読書システムでもそのようなコンテンツを適切な方法で処理できます。
アウト・オブ・ラインXMLアイランドは、優先語彙のいずれにも記述がないか、優先語彙ドキュメントにおいて拡張モジュールを用いた、完全なXMLドキュメントです。アウト・オブ・ラインXMLアイランドを記述するためには、出版物の様々な箇所でいくつかの宣言を行う必要があります。
アウト・オブ・ライン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>
アウト・オブ・ラインXMLアイランドを含むためには、アウト・オブ・ラインXMLアイランドの語彙をネイティブに処理できない読書システムに対するフォールバック情報を指定するために、出版物のマニフェスト内に特定の属性と属性値が必要です。OPF仕様を参照してください。
適合したOPS読書システムは、アウト・オブ・ラインXMLアイランドへのリンクを、下記の通りに、解決しなければなりません(must)。
フォールバック・ドキュメントを用いる場合、出版物内のドキュメント全体へのリンクは、自動的にそのフォールバック・ドキュメントに解決されなければなりません(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)に対して解決されます。
ドキュメント・フラグメントを含んだ複数のリンクは、同じフラグメント識別子を用いてフォールバック・アイテムに対して解決されなければなりません(must)。フォールバックにフラグメント識別子がない場合は、読書システムは、フォールバック・ドキュメントの先頭にリンク・エントリー・ポイントを置かなければなりません(must)。
インラインXMLアイランドは、OPS出版物のXHTML優先語彙ドキュメント内に存在する非優先語彙を用いるか、優先語彙の拡張モジュールを用いたXMLドキュメント・フラグメントです。
インラインXMLアイランドの処理は、処理および表示の要件のために、アウト・オブ・ラインXMLアイランドの処理より複雑です。アウト・オブ・ラインXMLアイランドは完全なXMLドキュメントで、そのフォールバックのオプションはOPFパッケージ・ドキュメントで定義されています。インラインXMLアイランドは、「スイッチ」文という一般的なプログラミングの概念をまねて設計したマークアップ構造で扱われます。
スイッチ要素は、SVG 1.1とSMIL 2.xの両方で用いられている概念です。しかし、OPSにはこれらの仕様とは異なる要件があります。そのため、OPSではスイッチの概念は異なる形で実装されます。具体的には、著者の意図が分かりやすく明確である必要があります。さらに、基本的なフォールバックのメカニズムの概念が提供されます。switch要素とその包含要素の規範的な定義は、OPSスキーマにあります。
switch要素とすべての包含要素は、OPS名前空間(http://www.idpf.org/2007/ops)にあります。
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>⁢</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>
case要素は、非優先語彙や拡張モジュールのマークアップを含むために用いられます。switch要素には、ゼロ以上のcase要素があります。case要素にはOPS名前空間のコンテンツは全く含まれません。これは、OPS名前空間以外のコンテンツの包含を排除するものではなく、排除しないのが通常です。
OPSの読書システムは、case要素にコンテンツが全く含まれていない場合にも、ドキュメントを無効にしてはならず(must not)、その場合、何も表示してはなりません(must)。
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)。
XML語彙には異なるモジュールへ分割されるものがあり、適合したアプリケーションはその一部またはすべてをサポートできます(may)。これらの語彙には自身の仕様で定義された名前を持つモジュールがあり、このモジュールの一部またはすべては任意(optional)であり、この任意の(optional)モジュールはこの仕様では拡張モジュールであるとみなされます。
モジュール化されたXML語彙は、語彙の仕様で求められている最低限のモジュールを読書システムがサポートしている - XML語彙の少なくともすべての非拡張モジュールをサポートしている - 場合には、サポートされているとみなされます。
優先語彙に記述されているインラインXMLアイランドには、定義上、拡張モジュールの使用が組み込まれています。この場合、また、非優先語彙アイランドが拡張モジュールを使用している場合、required-modules属性はrequired-namespace属性と共に存在していなければなりません(must)。required-modulesの属性値は、インラインXMLアイランド内で用いられている拡張モジュール名を含んだコンマ区切りのリストでなければなりません(must)。モジュール名は、XML語彙仕様で特に別途指定されていない場合には、大文字と小文字を区別しません。モジュール名に含まれる空白は、「-」に置き換えてrequired-modules属性値で記述しなければなりません(must)。XHTMLの場合には、OPSのコンテキストにおいて、拡張モジュールにruby、forms、server-side-image-map、intrinsic-eventsが含まれています。
また、required-modules属性値に非拡張モジュール名を記述することも認められていることに注意してください。XML語彙がサポートされている場合には、そのようなモジュールが常にサポートされているとみなされます。これは、明確さのためにも、一部のモジュールが後のバージョンの仕様で任意(optional)になる可能性がある場合(例えば、OPSで現在非推奨になっているXHTMLモジュールのスタイル属性)にも有益です。
非優先語彙のインラインXMLアイランドを指定するcaseにrequired-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>
default要素はcase要素とほぼ同じです。default要素の目的は、switchを表示するためのベースライン(または、フォールバック)として適合したマークアップを提供することです。default要素は、その親であるswitch要素がドキュメントで用いられている箇所で認められているXMLノードのみを含まなければなりません(must)。より正確には、すべてのswitch要素を、その子供であるdefault要素のコンテンツと置き換えることにより有効なドキュメントが作成される場合に限り、ドキュメントは有効であるとみなされます。
インラインXMLアイランドは、スイッチ要素およびその包含要素に記述されているマークアップ定義によって処理しなければなりません(must)。
読書システムは、記述されている順序でcase要素を処理しなければならず(must)、最初にサポートされていることを認識したcase要素のコンテンツを表示すべき(should)です(すなわち、読書システムはrequired-namespaceで指定された語彙をサポートします)。読書システムは、他のすべてのcaseおよびdefault要素のコンテンツを無視し、switch内の1つのcaseまたはdefaultの要素のみを表示しなければなりません。
case要素の任意の語彙をサポートする読書システムは、default要素のコンテンツを表示しなければなりません(must)。
インラインXMLアイランドを含むドキュメントにスタイリングが適用される場合には、完全なドキュメント・ツリーに対し、スタイルシートのカスケーディングと継承規則が採用されます。しかし、OPSのswitch、case、default要素は、これらに割り当てられたすべてのスタイリング・プロパティを無視しなければなりません(must)。特に、これらの要素は、XHTML要素のようにボックス(例えば、CSSのボックス・レイアウト)を作成してはなりません(must not)。
同じid属性を持つ要素を様々な代替のインラインXMLアイランドに含んではならない(must not)ため、インラインXMLアイランドのコンテンツに深くリンクすることができない場合もあります。したがって、case要素を表示用に選択しても、参照を解決することはできません。
読書システムは、switch自身に表示特性がなくても、switch要素をターゲットとしたリンクを認識し表示しなければなりません(must)。
インラインXMLアイランドへのリンクは、一般的なXHTMLに対応したブラウザと同じように、警告やエラーなしに中断できなければなりません(must)。
NCXからインラインXMLアイランドへのリンクは、インラインXMLアイランドへの他のリンクと同様に機能しなければなりません(must)。
多くの要素と属性は、すべての読書システムに求められるわけではない(not required)動作を認めています。例えば、一部の装置は、モノクロであったり、主に聴覚用または触覚用のインターフェースを提供するかもしれません。このような場合には、この仕様では、通常、読書システムが優先語彙で認められているすべての構文(属性値などの)を受け入れることを要求します(required)が、それをそのまま受け入れる必要はありません(not required)。例えば、読書システムは、table要素のborder属性を分析し認識しなければなりません(must)が、0以外のすべての値を1と同じように扱うことも選択できます(may)。
この仕様が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)。
セレクタは、対象ドキュメント内のマッチしなければならない(must)パターンを指定し、宣言ブロックにおいてスタイル宣言を適用する要素を定めます。ある要素に対するパターンのすべての条件が真であれば、セレクタは要素とマッチしており、その宣言は宣言ブロックにおいて適用されます。この仕様は、CSS2仕様と同じセレクタを用いることを想定しています。読書システムは、CSS2のすべてのセレクタをサポートしなければなりません(must)。
URI値を持つプロパティの場合、そのURIは該当するプロパティの適切なメディア・タイプのドキュメントを指さなければなりません(must)。この参照先のドキュメントは、OPFパッケージ・ドキュメントのマニフェストに記述されなければなりません(must)。
実数はnumberで、整数値はintegerで表されます。どちらも任意の(optional)記号(「+」か「-」のいずれか)を値として持つことができますが、特定のプロパティでは数値の範囲と記号が制限されていることがあります。
座標や大きさの値がゼロではない場合には、必ず単位を指定しなければなりません(must)。CSS1とCSS2で定義されているすべての単位がサポートされています。
px | ピクセル |
ex | 現在のフォントのx-height |
em | 現在のフォントのサイズ |
pt | ポイント |
in | インチ |
cm | センチメートル |
mm | ミリメートル |
pc | パイカ |
パーセンテージの単位がサポートされている場合には、CSSの仕様においてパーセンテージを値として認めている各プロパティの定義に従って使用されます。
現在のブラウザは、多くのキーワード色名をサポートしています。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%の範囲の浮動小数 |
シングル引用符またはダブル引用符(それぞれ、Unicodeのcode 39、34)を用いて文字列を引用しなければなりません(must)。入れ子の文字列は、バックスラッシュでエスケープ(例えば、「a \"nested\" string」)しなければなりません(must)。文字列に改行を組み込む場合は、「\A」というエスケープを使用してください。16進の「A」は、Unicodeでは改行(ラインフィード)文字ですが、CSSでは「改行(ニューライン)」の汎用概念を表します。
サポートしているすべての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-headやdisplay: 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] 単ページの読書システムは、leftとrightをalwaysとして扱わなければなりません(must)。
[11] 読書システムは、italicとobliqueを区別する必要はありません(need not)。
[12] 1分あたりに単語を読み上げるレートを指定する数値です。
[13] コンテンツを表示する列の数を指定します。すべてのブロック・レベル要素に適用できます(may)。読書システムは、1以外の整数値をサポートしたり、1にマッピングすることができます(may)。読書システムは、列のバランス化をサポートできます。読書システムは、autoという値を用いると、読み易さに関わると考えられる有効な幅、フォント・サイズ、その他の数値指標を考慮して、コンテンツを表示するために最適な列の数を決定できるようになります。
作者がテキストの体裁を制御できるようにするために、OPSは、CSS2のfont-face at-rule(@font-face)をサポートしています。CSS2勧告の15.3.1項を参照してください。次のフォント記述子をサポートしなければなりません(must)。
可搬性のために、作者はこれら以外の記述子を用いてはなりません(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)。
このNVDL仕様では、次の3つのXMLスキーマを参照します。
これらのうち最初の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>
<?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>
この仕様は、出版者、読書システム・メーカー、ソフトウェア開発者、および関連標準の専門家の協力による取り組みで開発されました。
この仕様のバージョン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の開発期間中のワーキンググループの活動メンバーは次のとおりです。
ワーキンググループは、下記の個人の貢献に対し特に感謝申し上げます。OPSおよびOPF RelaxNGスキーマの作成、OPSのNVDL定義の作成、および一般的な技術的な識見に対し、Peter Sorotokinに。XMLアイランドの概念および起草、また、技術面全般への関与、仕様作成に用いたXMLテンプレートに対し、Ben Traffordに。一貫したアクセシビリティに関する指導と幅広い技術的な情報の提供、OPFのNCXの項の起草に対しGeorge Kerscherに。指導による貢献、仕様の編集および過去のOEBPS 1.2の取り組との継続性の提供に対し Brady DugaとJon Noringに。ワーキンググループでのリーダシップと動機付け、仕様の起草、技術的な貢献に対しGarth Conboyに。
サンプル・ファイル、仕様の実装、その他の情報を含む、すべてのIDPF仕様に関する追加情報に関しては、http://www.idpf.org/forumsの公開フォーラムを訪問してください。出版物の仕様に誤りが発見された場合には、その誤りをフォーラムに投稿してください。担当のワーキンググループが仕様の誤りを調査し、必要に応じて保留中の修正として投稿するでしょう。修正は、次のバージョンの仕様に組み入れられるでしょう。