XHTML 1.0: 拡張可能ハイパーテキストマークアップ言語 (original) (raw)
- この文書は、W3Cにより作成されW3C勧告として公開されている "XHTML" 1.0: The Extensible HyperText Markup Language " (http://www.w3.org/TR/2000/REC-xhtml1-20000126/) を、どら猫本舗が翻訳したものです。
- 最新版の文書は http://www.w3.org/TR/xhtml1/ にあります。
- 正式なワーキングドラフトはW3Cサイトにある英語版です。この日本語版は参考にすぎません。
- この文書には翻訳上の誤りがあるかもしれません。どら猫本舗は翻訳の正確性を保証しません。あくまでご自身の責任でご利用ください。
- お気付きの点がありましたらどら猫本舗までお知らせください。
概要
この仕様書は、HTML 4 を XML 1.0 アプリケーションとして再定式化したXHTML 1.0 と、HTML 4 によって定義されているものに対応する3つのDTDとを定義するものである。要素やその属性の意味論は、HTML 4 についてのW3C勧告において定義されている。これらの意味論は、XHTMLの将来的な拡張性の基礎を提供する。既存のHTMLユーザエージェントとの互換性は、小さいガイドラインの集合に従うことにより可能である。
この文書の位置づけ
この節は、この文書の公開時における位置づけを説明したものである。他の文書がこの文書に取って代わるかもしれない。この文書シリーズの最新の位置づけは、W3Cにおいて維持管理されている。
この文書は、W3C会員及びその他の利害関係者によりレビューされ、ディレクターによってW3C勧告として公布されているものである。この文書は安定的な文書であって、参照素材として利用したり、他の文書から規範的リファレンスとしての引用に用いてもかまわない。勧告作成におけるW3Cの役割は、仕様に対する注意を引き、その広範な配備を推進することにある。このことはウェブの機能と相互運用性とを高める。
この文書は W3C HTMLアクティビティの一部として作成されているものである。HTMLワーキンググループ_(メンバー専用)の目標は、HTMLワーキンググループ憲章(メンバー専用)_に論じられている。
現行のW3C勧告及びその他の技術文書の一覧は http://www.w3.org/TR で見ることができる。
HTMLの機能に関する公開の議論は、メーリングリスト www-html@w3.org (アーカイブ)で行われている。
この文書[原文]のエラーは www-html-editor@w3.org までレポートいただきたい。
この文書[原文]の既知のエラーの一覧は http://www.w3.org/2000/01/REC-xhtml1-20000126-errata で入手できる。
目次
- 1. XHTMLとは何か
- 1.1 HTML4とは何か
- 1.2 XMLとは何か
- 1.3 XHTMLはなぜ必要か
- 2. 定義集
- 3. XHTML 1.0 の規範的な定義
- 3.1 文書の適合性
- 3.2 ユーザエージェントの適合性
- 4. HTML4との相違点
- 5. 互換性問題
- 5.1 インターネットメディア型
- 6. 将来的な方向性
- 6.1 HTMLのモジュラ化
- 6.2 サブセットと拡張性
- 6.3 文書プロファイル
- 付録A. DTD
- 付録B. 要素の禁止事項
- 付録C. HTML互換性ガイドライン
- 付録D. 謝辞
- 付録E. 参照資料
1. XHTMLとは何か
XHTMLは、HTML4 [HTML] を再生産し、サブセット化し、拡張する現在及び将来の文書型及びモジュールのファミリーである。XHTMLファミリーの文書型はXMLベースであり、究極的にはXMLベースのユーザエージェントと結びついて機能するよう設計されている。このファミリーやその進化の詳細は、将来的な方向性に関する節でさらに詳しく論じられる。
XHTML 1.0 (この仕様書) は、XHTMLファミリーにおける初めての文書型である。これは、3つのHTML4文書型を XML 1.0 [XML] のアプリケーションとして再定式化したものである。XHTML 1.0 は、XML適合でもあり、かつ、いくつかの単純なガイドラインに従えばHTML4適合ユーザエージェントでも機能するコンテンツのための言語として使われることが予定されている。コンテンツを XHTML 1.0 に移り住ませた開発者は、以下の利点を実感するであろう。
- XHTML文書はXML適合である。それだから、標準的なXMLツールを用いて難なく見られ、編集され、検証される。
- XHTML文書は、これまで既存のHTML4ユーザエージェントで機能していたのと同じく、あるいはそれ以上に機能し、また新しい XHTML 1.0 適合ユーザエージェントでも同様に機能するよう書くことができる。
- XHTML文書は、HTML文書オブジェクトモデルやXML文書オブジェクトモデル [DOM] をあてにするアプリケーション(例. スクリプトやアプレット)を役立てることができる。
- XHTMLファミリーが進化するにつれ、XHTML 1.0 に適合した文書が、多様なXHTML環境の中や環境間で相互運用される可能性が高まる。
XHTMLファミリーは、インターネットの進化における次の一歩である。今日XHTMLに移り住むことにより、コンテンツ開発者は、コンテンツの後方互換性や将来的な互換性に自信をもちながら、XMLワールドに入り、その付随する利点のすべてを享受することができる。
1.1 HTML4とは何か
HTML4 [HTML] は、国際規格ISO 8879 に適合したSGML (Standard Generalized Markup Language) アプリケーションであり、広くワールド=ワイド=ウェブの標準的なパブリッシング言語とみなされている。
SGMLは、マークアップ言語、とりわけ電子文書の交換や文書管理、文書パブリッシングに使われるマークアップ言語を記述するための言語である。HTMLは、SGMLによって定義された言語の一例である。
SGMLは1980年代半ば以降普及し、きわめて安定性を保っている。この安定性の多くは、言語が機能に富み、かつ柔軟でもあるという事実によっている。しかしながら、この柔軟性は一定のコストによりもたらされるものであり、そのコストとは、ワールド=ワイド=ウェブを含め多様な環境での採用の妨げとなるレベルの複雑さのことである。
HTMLは、もともとそのように考えられていたのだが、文書の専門家でない人々による利用に適した、科学的その他技術的文書の交換のための言語であるべきものであった。HTMLは、SGMLの複雑さの問題を、比較的単純な文書を制作するのに適した構造的タグや意味論的タグの小さいセットを規定することにより処理した。文書構造を単純化したことに加えて、HTMLはハイパーテキストのサポートを追加した。マルチメディア機能が後に追加された。
非常に短い時間のうちに、HTMLはおそろしく普及し、急速に元々の目的からはみ出して成長した。HTMLの始まり以来、(標準規格としての)HTML内部で利用したり、HTMLを垂直的で高度に特化された市場に適合させるための新しい要素が急速に発明されてきた。この新しい要素の過剰は、異なるプラットフォーム間での文書の互換性問題にまて至っている。
ソフトウェア、プラットフォーム両者の異類混交性が急速に増殖するに伴い、これらのプラットフォームで利用することについて「クラシック」なHTML4の適性は幾分か限定されることが明らかである。
1.2 XMLとは何か
XML™ は、拡張可能マークアップ言語(Extensible Markup Language)の短縮形であり、Extensible Markup Language の頭字語である [XML]。
XMLは、SGMLの複雑さのほとんどを抜きにしてSGMLの力と柔軟性とを取り戻す手段として考えられていた。SGMLの制限形式であるにもかかわらず、XMLはSGMLの力と機能の豊富さとのほとんどを保持し、なおも一般に使われているSGMLの機能のすべてを残している。
これらの役に立つ機能を残しつつも、XMLは、適したソフトウェアの製作や設計を困難でコストのかかるものにしているもっと複雑なSGMLの機能を多数取り除いている。
1.3 XHTMLはなぜ必要か
XHTML 1.0 へ移り住むことの利点は、上記に説明されている。一般的にXHTMLへ移り住むことの利点のいくつかを挙げると、つぎのようなものがある。
- 文書開発者やユーザエージェント設計者は、新しいマークアップを通じて彼らの発想を表記する新しい方法を持続的に発見している。XMLでは、新しい要素や追加的な要素属性を導入することが比較的容易である。XHTMLファミリーは、XHTMLモジュールや、(近刊のXHTMLモジュラ化仕様書で解説される)新しいXHTML適合モジュールを開発するためのテクニックを通じて、これらの拡張を収容するよう設計されている。これらのモジュールが、コンテンツを開発するときや新しいユーザエージェントを設計するときに、既存の機能セットや新しい機能セットの組み合わせを可能にすることになる。
- インターネットにアクセスする代替方法は、コンスタントに導入されている。試算のなかには、2002年までにインターネット文書閲覧の75%がこれら代替的プラットフォーム上で実行されると示すものもある。XHTMLファミリーは、全体的なユーザエージェントの相互運用性を念頭に置いて設計されている。新しいユーザエージェントや文書プロファイリングメカニズムを通して、サーバやプロキシ、ユーザエージェントは、コンテンツの変形に最善の努力を実行することができることになる。究極的には、どのXHTML適合ユーザエージェントでも利用できるXHTML適合コンテンツを開発することが可能となるであろう。
2. 定義集
2.1 用語集
以下の用語はこの仕様書の中で使われているものである。これらの用語は、ISO/IEC 9945-1:1990 [POSIX.1] での類似の定義に基づいて [RFC2119] での定義を拡張している。
実装定義の (implementation-defined)
正しい文書構造についての対応する必要条件を定義[し文書化]することが実装にゆだねられているとき、値または挙動は実装定義である。
してもよい (may)
実装に関しては、「してもよい」という言葉は、この仕様書では要求されないが提供することができる任意的機能として解釈されるべきものである。文書の適合性に関しては、「してもよい」という言葉は、任意的機能が使われてはならないという意味である。「任意的」という用語は、「してもよい」と同じ定義である。
しなければならない (must)
この仕様書では、「しなければならない」という言葉は、文脈により、実装または厳格適合XHTML文書に関する義務的必要条件として解釈されるべきものである。「すべし」という用語は、「しなければならない」と同じ定義である。
予約済み (reserved)
値または挙動は規定されていないが、適合文書がそれを使うことや、適合ユーザエージェントがそれをサポートすることは許されない。
するべきである (should)
実装に関しては、「するべきである」という言葉は、実装上の勧告であるが必要条件ではないものとして解釈されるべきものである。文書に関しては、「するべきである」という言葉は、文書についての推奨されるプログラミング慣行や、厳格適合XHTML文書についての必要条件として解釈されるべきものである。
サポートされている (supported)
この仕様書にある一定の装備は任意的である。ある装備がサポートされている場合、それはこの仕様書によって規定されている通りの挙動をとる。
規定されていない (unspecified)
値または挙動が規定されていないとき、仕様書は、その装備を利用する文書に直面したときであっても、ある実装上の装備についての可搬性必要条件を定義しない。そうした場面で、その装備を使うときにどのような挙動でも容認するのではなく、特定の挙動を要求する文書は、厳格適合XHTML文書ではない。
2.2 一般的用語
属性 (attribute)
属性とは、DTDで宣言されている要素に対するパラメータである。属性の型や値域は、可能なデフォルト値を含め、DTDの中で定義される。
DTD
DTD、あるいは文書型定義とは、そのDTDに従う文書の中で利用できる合法的な文書構造や要素、属性を、集合体として定義するXML宣言の集合体である。
文書 (document)
文書とは、参照先のその他すべてのストリームと組み合わされた後、結びつけられたDTDで定義されているとおりに組織された要素の中に含まれている情報を保持するよう構築されたデータのストリームである。
要素 (element)
要素とは、DTDで宣言される、文書を構築する単位である。要素の内容モデルはDTDの中で定義され、追加的な意味論がその要素の散文的解説の中で定義される場合がある。
装備 (facilities)
機能(functionality)には、要素や属性と、それらの要素や属性に結びつけられた意味論とが含まれる。その機能をサポートしている実装は、必要な装備を用意していると言われる。
実装 (implementation)
実装とは、装備やこの仕様をサポートするサービスの集合体を用意するシステムである。詳しい情報についてはユーザエージェントの適合性を見よ。
解析 (parsing)
解析とは、それによって文書をスキャンし、文書に含まれている情報を、その情報が構造化されている要素の文脈の中へとフィルタリングする行動である。
レンダリング (rendering)
レンダリングとは、それによって文書の中にある情報を呈示する行動である。この呈示は、その環境にとって最も適切な形式(例. 音声的、視覚的、印刷)でなされる。
ユーザエージェント (user agent)
ユーザエージェントとは、XHTML文書を引き出して処理する実装である。詳しい情報についてはユーザエージェントの適合性を見よ。
妥当性検証 (validation)
妥当性検証とは、それにより、結びつけられているDTDに照らして文書を検証して、構造や、要素の使い方、属性の使い方がDTD内の定義と無矛盾であることを確かめる処理である。
整形式の (well-formed)
文書は、XML 1.0 勧告 [XML] の Section 2.1 に定義されている規則に従って構築されているとき、整形式である。基本的には、この定義は、要素が開始タグと終了タグとで区切られ、互いに適切にネストされているということを言うものである。
3. XHTML 1.0 の規範的定義
3.1 文書の適合性
このバージョンのXHTMLは、厳密適合XHTML文書の定義を用意する。この厳密適合XHTML文書とは、XHTML名前空間に由来するタグと属性とに制限されているものである。XHTMLを他の名前空間と一緒に使って、たとえばXHTML文書の中にRDFで表記されたメタデータを組み込むことに関する情報については、第3節第1項2を見よ。
3.1.1 厳密適合文書
厳密適合XHTML文書とは、この仕様書で義務的なものとして説明されている装備のみを要求する文書である。そうした文書は、以下の評価基準のすべてに合致しなければならない。
- 付録Aにある3つのDTDのうち1つに照らして正当化されなければならない。
- 文書のルート要素は
<html>
でなければならない。 - 文書のルート要素は、
xmlns
属性を使うXHTML名前空間 [XMLNAMES] を指し示さなければならない。XHTMLを表す名前空間はhttp://www.w3.org/1999/xhtml
と定義されている。 - ルート要素に先立って、文書の中に DOCTYPE 宣言が1個なければならない。DOCTYPE 宣言に組み込まれる公開識別子は、付録Aにある3つのDTDのうち1つを、それぞれの公式公開識別子を使って参照しなければならない。システム識別子は、ローカルシステム慣習を反映するために変更されてもかまわない。
こちらは、最小のXHTML文書の例である。
バーチャル図書館vlib.org へ移転しました。
この例ではXML宣言が組み込まれていることに注意してほしい。上記のようなXML宣言は、すべてのXML文書に必須というわけではない。XHTML文書の制作者は、すべての文書でXML宣言を使うよう強く奨励される。文書のキャラクタエンコーディングがデフォルトの UTF-8 か UTF-16 以外のものであるときは、そうした宣言は必須である。
3.1.2 XHTMLを他の名前空間と一緒に使う
そうした文書は上記に定義した厳格適合 XHTML 1.0 文書ではないけれども、XHTML名前空間は、[XMLNAMES]に従って他のXML名前空間と一緒に使ってもかまわない。W3Cによる将来の作業により、複数の名前空間を巻き込む文書についての適合性を規定する方法を処理されるであろう。
以下の例は、XHTML 1.0 をMathML勧告と結合して利用できる方法を示したものである。
数学の例以下はMathMLマークアップである。
3 x以下の例は、XHTML 1.0 マークアップを他のXML名前空間に統合できる方法を示したものである。
まとめ買いでおトクに isbn:number1568491379
これは オンライン でもお求めになれます。
3.2 ユーザエージェントの適合性
適合ユーザエージェントは、以下の評価基準のすべてに合致しなければならない。
- XML 1.0 勧告 [XML] と無矛盾であるために、ユーザエージェントは整形式性についてXHTML文書を解析して評価しなければならない。ユーザエージェントが妥当性検証を行うユーザエージェントであると主張する場合には、[XML] に従って参照先のDTDに照らして文書の妥当性も検証しなければならない。
- ユーザエージェントが、この仕様書で定義されていたり、規範的な参照資料を通じてこの仕様書によって要求されている装備をサポートしていると主張するときは、その装備の定義と無矛盾な方法でそうしなければならない。
- ユーザエージェントがXHTML文書を汎用XMLとして処理するときは、フラグメント識別子として
ID
型の属性(たとえばほとんどのXHTML要素上のid
属性)のみを認識すべし。 - ユーザエージェントが認識しない要素に遭遇した場合は、その要素の内容をレンダリングしなければならない。
- ユーザエージェントが認識しない属性に遭遇した場合は、その属性指定全体(すなわち属性とその値)を無視しなければならない。
- ユーザエージェントが認識しない属性値に遭遇した場合は、デフォルトの属性値を使わなければならない。
- ユーザエージェントがその宣言を処理していない(定義済み実体以外の)実体参照に遭遇した場合(これはユーザエージェントがまだ読んでいない外部サブセットの中に宣言がある場合に起こりうる。)、その実体参照は、その実体参照を作り上げている(アンパサンドで始まりセミコロンで終わる)キャラクタとしてレンダリングされるべきである。
- コンテンツをレンダリングするとき、認識するけれどもレンダリングできないキャラクタやキャラクタ実体参照に遭遇したユーザエージェントは、正常なレンダリングが行われていないことがユーザにとって明らかであるような方法で文書を表示するべきである。
- 以下のキャラクタは、[XML] によって空白キャラクタとして定義されている。
- スペース ( )
- タブ ( )
- 復帰 ( )
- 行送り (
)
XMLプロセッサは、アプリケーションへ渡されるいろいろなシステムの行末コードを、単一の行送りキャラクタへと通常化する。XHTMLユーザエージェントはさらに、以下のキャラクタを空白として扱わなければならない。 - フォームフィード ()
- ゼロ幅スペース ()
'xml:space' 属性が 'preserve' に設定されている要素では、ユーザエージェントは(先頭及び末尾の空白キャラクタを例外として。これらは除去されるべきである。)すべての空白キャラクタに手をつけずにおかなければならない。それ以外の場合には、空白は以下の規則に従って処理される。 - ブロック要素を取り囲む空白は、すべて除去されるべきである。
- 注釈は完全に除去され、空白の処理に影響しない。注釈の片側にある1個の空白キャラクタは、2個の空白キャラクタとして扱われる。
- ブロック要素内部にある先頭及び末尾の空白は、除去されるべきである。
- ブロック要素内部にある行送りキャラクタは、スペース1個に変換されなければならない。('xml:space' 属性が 'preserve' に設定されているときを除く。)
- 空白キャラクタの連なりは、単一の空白キャラクタに縮小されなければならない。('xml:space' 属性が 'preserve' に設定されているときを除く。)
- レンダリングに関して、ユーザエージェントは、コンテンツを書いている言語に適した方法で、コンテンツをレンダリングするべきである。主たる文字がラテン文字である言語では、ASCIIスペースキャラクタは概して、文法上のな単語の境界と印刷術的な空白との双方をエンコードするのに使われる。文字がナガリ文字に関係している言語(例. サンスクリット語、タイ語など)では、文法上のな境界はゼロ幅「スペース」キャラクタを使ってエンコードされることがあるが、レンダリングされたアウトプットには印刷術的なスペースによって表現されないのが典型である アラビア形式の文字を使う言語は、スペースキャラクタを使って印刷術的な空白をエンコードすることがあるが、「内部的な」文法上の境界を区切るのにゼロ幅スペースキャラクタも使われることがある (英語の目にとってアラビア語の単語のように見えるものが、しばしば数個の単語をエンコードしている。例. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book)。また、中国文字の伝統にある言語は概して、そうした区切りをエンコードせず、またこのような印刷術的な空白も使わない。
属性値の中の空白は、[XML] に従って処理される。
4. HTML4との相違点
XHTMLがXMLアプリケーションであるという事実のために、SGMLベースのHTML4 [HTML] では完全に合法であった一定の慣習が変更されなければならない。
4.1 文書は整形式でなければならない
整形式性は、[XML] によって導入された新しい概念である。本質的には、これは、すべての要素が終了タグを持つか(後述のとおり)特殊な形式で書かれるかしなければならず、またすべての要素がネストしていなければならないという意味である。
重なり合いはSGMLでも違法であったが、既存のブラウザでは広く容認されていた。
正: 要素がネストされている。
こちらは強調されている段落です。
誤: 要素が重なり合っている。
こちらは強調されている段落
です。4.2 要素名及び属性名は小文字でなければならない
XHTML文書は、すべてのHTML要素名及び属性名に小文字を使わなければならない。この相違点が必要なのは、XMLが大文字小文字を区別し、たとえば
4.3 非空要素については終了タグが必須である
SGMLベースのHTML4では、一定の要素は終了タグを省略することが許されていた。そうした要素には黙示的な閉鎖がついていたのである。この省略は、XMLベースのXHTMLにおいては許されない。DTDの中で EMPTY
として宣言されているものを除き、すべての要素が終了タグをもたなければならない。
正: 要素が終結している。
こちらに段落があります。
こちらにもう一つ段落があります。
誤: 要素が終結していない。
こちらに段落があります。
こちらにもう一つ段落があります。
4.4 属性値はつねに引用符で括られなければならない
属性値はすべて、たとえ数値のように見えるときであっても、引用符で括られなければならない。
正: 属性値が引用符で括られている。