XHTML

XHTML
ファイル名拡張子
.xhtml、.xht、.xml、.html、.htm
インターネットメディアタイプ
application/xhtml+xml
統一型識別子(UTI)public.xhtml
UTIコンフォメーションpublic.xml
開発者WHATWG
初回リリース2000年1月26日 (2000年1月26日
フォーマットの種類マークアップ言語
から拡張XMLHTML
標準HTML LS
オープンフォーマットはい

拡張可能ハイパーテキストマークアップ言語XHTML)は、ウェブページを作成する 言語として広く使用されているハイパーテキストマークアップ言語(HTML)のバージョンを反映または拡張したXMLマークアップ言語ファミリーの一部です

HTML5以前のHTMLは、柔軟なマークアップ言語フレームワークであるStandard Generalized Markup Language (SGML)の応用として定義されていましたが、XHTMLはSGMLのより制限的なサブセットであるXMLの応用です。XHTML文書は整形式であるため、標準的なXMLパーサーを使用して解析できます。一方、HTMLはHTML固有の柔軟なパーサーを必要とします。[ 1 ]

XHTML 1.0は2000年1月26日にワールドワイドウェブコンソーシアム(W3C)の勧告となった。XHTML 1.1は2001年5月31日にW3Cの勧告となった。XHTMLは現在「HTMLのためのXML構文」 [ 2 ] [ 3 ]と呼ばれ、HTMLリビングスタンダードのXML版として開発されている。[ 4 ] [ 5 ]

概要

XHTML 1.0は、「HTML 4の3つの文書型をXML 1.0の応用として再定式化したもの」でした。[ 6 ]ワールド・ワイド・ウェブ・コンソーシアム(W3C)は、同時にHTML 4.01勧告も保守していました。2002年8月に公開・改訂されたXHTML 1.0勧告文書において、W3Cは「XHTMLファミリーは、インターネットの進化における次のステップです。今日XHTMLに移行することで、コンテンツ開発者はXMLの世界に参入し、その付随するすべての利点を享受しながら、コンテンツの後方互換性と将来的な互換性を確信することができます。」と述べています。[ 6 ]

しかし、2005年に、Webハイパーテキストアプリケーション技術ワーキンググループ(WHATWG)がW3Cから独立して結成され、XHTMLに基づかない通常のHTMLの発展に取り組むことになりました。WHATWGは最終的に、XHTML 2.0などのW3C標準と並行して、XMLと非XMLの両方のシリアル化をサポートする標準であるHTML5の策定に着手しました。2007年、W3CのHTMLワーキンググループは、HTML5を正式に承認し、次世代HTML標準として取り組むことを決議しました。[ 7 ] 2009年、W3Cは、HTML5がXMLと非XMLの両方のシリアル化を含む唯一の次世代HTML標準となることを承認し、XHTML 2.0ワーキンググループの憲章の失効を認めました。[ 8 ] 2つのシリアル化のうち、W3Cはほとんどの作成者がXHTML構文ではなくHTML構文を使用することを推奨しています。[ 9 ]

W3CのXHTML 1.0とXHTML 1.1の勧告は、HTML 4.0、 [ 12 ] HTML 4.01、[ 13 ] HTML5とともに2018年3月27日に廃止されました [ 10 ] [ 11 ]

モチベーション

XHTMLはHTMLの拡張性を高め、他のデータ形式との相互運用性を高めるために開発された。 [ 15 ]さらに、ブラウザはHTMLのエラーを許容し、ほとんどのウェブサイトはマークアップの技術的エラーにかかわらず表示された。XHTMLはより厳密なエラー処理を導入した。[ 16 ] HTML 4は表面上は標準一般化マークアップ言語(SGML)のアプリケーションであったが、SGMLの仕様は複雑で、ウェブブラウザもHTML 4勧告も完全には準拠していなかった。[ 17 ] 1998年に承認されたXML標準は、HTML 4に近い、より単純なデータ形式を提供した。[ 18 ] XML形式に移行することで、HTMLが一般的なXMLツールと互換性を持つことが期待された。[ 19 ]サーバーとプロキシは、必要に応じて、携帯電話などの制約のあるデバイス用にコンテンツを変換できるようになる。[ 20 ]名前空間 を使用することで、XHTML文書はScalable Vector GraphicsMathMLなどの他のXMLベースの言語の断片を組み込むことで拡張性を提供できます。[ 21 ]最後に、この新たな作業により、HTMLを再利用可能なコンポーネントに分割し(XHTMLモジュール化)、言語の乱雑な部分を整理する機会が提供されます。[ 22 ]

HTMLとの関係

XHTMLとHTMLには様々な違いがあります。ドキュメントオブジェクトモデル(DOM)は、アプリケーション内でページを内部的に表現するツリー構造であり、XHTMLとHTMLはそれをマークアップで表現する2つの異なる方法です。どちらもDOMほど表現力は高くありません。たとえば、「--」はDOMではコメントに配置できますが、XHTMLでもHTMLでもコメントでは表現できません。また、一般的に、XHTMLのXML構文はHTMLよりも表現力に優れています(たとえば、HTMLでは任意の名前空間は許可されていません)。XHTMLはXML構文を使用し、HTMLは疑似SGML構文を使用します(HTML 4以下では正式にはSGMLですが、実際にはそうではなく、HTML5ではSGMLから標準化されています)。DOM構文の表現可能な内容はわずかに異なるため、2つのモデル間で実際の動作に若干の違いがあります。ただし、構文の違いは、マークアップ内に代替の翻訳フレームワークを実装することで克服できます

まず、文法にいくつかの違いがあります。[ 23 ]

  • 一般的に、XML ルールでは、すべての要素を個別の終了タグ (例</div>) または自己終了構文 (例 ) を使用して閉じる必要がありますが、HTML 構文では、一部の要素は常に空 (例) であるか、終了が暗黙的に決定できる (「省略可能性」、例)<br/>ため、閉じられなくてもかまいません。<input><p>
  • XML では要素名と属性名の大文字と小文字が区別されますが、HTML では区別されません。
  • HTMLのいくつかの省略形機能はXMLでは省略されている。例えば、(1)属性の最小化では属性値またはその引用符を省略できる(例えばまたは だが、XMLでは と表現しなければならない);(2)要素の最小化は要素を完全に削除するために使用できる(例えば、表の中で指定されていない場合は と推論される)。(3)要素の最小化にはあまり使用されないSGML構文(「ショートタグ」)は、ほとんどのブラウザが実装していない。[ 24 ]<optionselected><optionselected=selected><optionselected="selected"><tbody>
  • 名前空間、空白、特定の文字や要素の正確な解析など、他にも数多くの技術的要件があります。HTMLの実際の正確な解析は最近まで定義されていませんでした。詳細については、HTML5仕様([HTML5])またはワーキングサマリー(HTML vs. XHTML)を参照してください。

構文上の違いに加えて、動作上の違いもいくつかあります。これらは主に、シリアル化の根本的な違いに起因しています。例えば、

  • 解析エラーが発生した場合の動作は異なります。XML で致命的な解析エラー(タグ構造の誤りなど)が発生すると、ドキュメント処理が中止されます。
  • 名前空間を必要とするほとんどのコンテンツは、HTML5 パーサーの SVG および MathML の組み込みサポートと、 などの特定のマジック プレフィックスを除き、HTML では機能しませんxlink
  • JavaScript の処理は XHTML では異なり、一部の関数の大文字と小文字の区別に若干の変更が加えられているほか、処理対象を整形式コンテンツに限定するための追加の注意事項があります。スクリプトではメソッド を使用しないでください。このメソッドは XHTML では使用できません。プロパティ は使用できますが、整形式ではないコンテンツは挿入されません。一方、整形式の名前空間付きコンテンツを XHTML に挿入するために使用できます。document.write()innerHTML
  • カスケードスタイルシート(CSS)の適用方法も異なります。XHTMLは大文字と小文字を区別するため、XHTML文書ではすべてのCSSセレクターが大文字と小文字を区別します。[ 25 ] HTMLでは要素に設定された背景などの一部のCSSプロパティは、要素に「上位継承」されますが、XHTMLではそうではないようです。[ 26 ]<body><html>

採択

HTML 4.01とXHTML 1.0の類似性により、多くのウェブサイトやコンテンツ管理システムがW3Cの初期のXHTML 1.0勧告を採用しました。W3Cは、作成者の移行を支援するため、XHTML 1.0文書をHTMLと互換性のある方法で公開し、XHTML向けに設計されていないブラウザに配信する方法に関するガイダンスを提供しました。[ 27 ] [ 28 ]

このような「HTML互換」コンテンツは、text/htmlXHTMLの公式インターネットメディアタイプ( )ではなく、 HTMLメディアタイプ( )を使用して送信されますapplication/xhtml+xml。したがって、XHTMLの普及度を通常のHTMLと比較する際には、比較対象がメディアタイプの使用法なのか、それとも実際の文書コンテンツなのかを区別することが重要です。[ 29 ] [ 30 ]

ほとんどのウェブブラウザは、すべてのXHTMLメディアタイプを成熟したサポート[ 31 ]しています。 [ 32 ]注目すべき例外は、MicrosoftのInternet Explorerバージョン8以前です。コンテンツをレンダリングするのではなく、ダイアログボックスが表示され、ユーザーにコンテンツをディスクに保存するように促します。Internet Explorer 7(2006年リリース)とInternet Explorer 8(2009年3月リリース)の両方でこの動作が見られます。[ 33 ] Microsoftの開発者であるChris Wilsonは2005年に、IE7の優先事項はブラウザのセキュリティCSSサポートの向上であり、適切なXHTMLサポートをIEの互換性重視のHTMLパーサーに移植するのは難しいと説明しました。[ 34 ]しかし、 MicrosoftはIE9で真のXHTMLのサポートを追加しました。[ 35 ]application/xhtml+xml

サポートが広範でない限り、ほとんどのウェブ開発者はHTMLと互換性のないXHTMLの使用を避けます。[ 36 ]そのため、XMLの名前空間、より高速な解析、小さなフットプリントのブラウザなどの利点はユーザーに利益をもたらしません。[ 37 ] [ 38 ] [ 39 ]

批判

2000年代初頭、Web開発者の中には、Web制作者がなぜXHTMLで制作するようになったのか疑問視する者もいた。[ 40 ] [ 41 ] [ 42 ]一方、XHTMLの使用で生じる問題は主に2つの原因、すなわち一部のWeb制作者による無効なXHTML文書の作成とInternet Explorer 6にXHTMLのサポートが組み込まれていないことに起因すると反論する者もいた。[ 43 ] [ 44 ]彼らはさらに、検索、インデックス作成、解析、およびWeb自体の将来性に関するXMLベースのWeb文書(すなわちXHTML)の利点について説明を続けた。

2006年10月、HTMLの発明者でありW3C議長でもあるティム・バーナーズ=リーは、W3Cによる新しいHTML仕様策定に向けた主要な取り組みを紹介し、自身のブログに次のように投稿した。「世界を一気にXMLに移行させようとする試みは失敗に終わった。HTMLを生成する大勢の人々は移行しなかった。一部の大規模なコミュニティは移行し、整形式のシステムの恩恵を受けている。計画では、全く新しいHTMLグループを設立する予定だ。」[ 45 ]現在のHTML5ワーキングドラフトでは、「相互運用性を向上させるため、ユーザーエージェントの明確な適合基準を定義することに特別な注意が払われている。同時に、ここ数年で提起された問題に対処するためにHTML仕様を更新している。」と述べられている。 2002年にXHTMLの不適切な使用を批判したHTML5仕様の編集者であるイアン・ヒクソン[ 40 ]は、この仕様を策定しているグループのメンバーであり、現在のワーキングドラフトの共同編集者の一人として挙げられている。[ 46 ]

Simon PietersはモバイルブラウザのXML準拠を調査し[ 47 ]、「モバイルデバイスにXHTMLが必要であるという主張は単なる神話である」と結論付けました。

XHTMLのバージョン

XHTML 1.0

2012年9月以前、[注1 ] WikipediaはXHTML 1.0 Transitionalの文書型と構文を使用していましたが、コンテンツはXHTML 1.0 Transitionalとして提供されていませんでしapplication/xhtml+xml

1998年12月、W3Cは「HTMLをXMLで再定式化する」と題するワーキングドラフトを公開しました。これにより、HTML 4をベースにしながらもXMLのより厳格な構文規則に準拠した新しいマークアップ言語のコードネームであるVoyagerが導入されました。1999年2月までに仕様名称はXHTML 1.0: The Extensible HyperText Markup Languageに変更され、2000年1月に正式にW3C勧告として採択されました。[ 48 ] XHTML 1.0には、HTML 4.01の3つの異なるバージョンに対応する 3つの正式な文書型定義(DTD)があります。

  • XHTML 1.0 Strictは、厳密なHTML 4.01のXML版であり、HTML 4.01仕様で非推奨とされていない要素と属性を含みます。2015年11月現在、XHTML 1.0 Strictは、World Wide Web Consortiumのウェブサイトのホームページで使用されている文書型です。
  • XHTML 1.0 Transitionalは、HTML 4.01 Transitional の XML 版であり、厳密なバージョンから除外されているプレゼンテーション要素 ( center、、fontなど) が含まれています。strike
  • XHTML 1.0 フレームセットは、HTML 4.01 フレームセットの XML 版であり、 1990 年代後半に一般的な Web 機能であったフレームセット ドキュメントの定義を可能にします。

XHTML 1.0の第2版は2002年8月にW3C勧告となった。[ 49 ]

XHTMLのモジュール化

モジュール化は、 XHTMLをサブセット化および拡張するためのコンポーネントの抽象的なコレクションを提供します。この機能は、XHTMLがモバイルデバイスやWeb対応テレビなどの新興プラットフォームにまで普及するのを支援することを目的としています。XHTMLのモジュール化の初期ドラフトは1999年4月に公開され、2001年4月に勧告となりました。[ 50 ]

最初のモジュラー XHTML バリアントは、XHTML 1.1 と XHTML Basic 1.0 でした。

2008年10月、XHTMLのモジュール化は、 XMLスキーマ実装を追加したXHTMLモジュール化1.1に置き換えられました。これは2010年7月に第2版に置き換えられました。[ 51 ]

XHTML 1.1: モジュールベースのXHTML

XHTML 1.1は、 XHTML仕様の初期モジュール化をめぐる作業から発展しました。W3Cは1999年9月に最初のドラフトを公開し、2001年5月に勧告となりました。[ 52 ] XHTML 1.1に統合されたモジュールは、東アジア言語をより適切にサポートするためにルビ注釈要素(rubyrbcrtcrb、 )を追加し、XHTML 1.0 Strictを実質的に再現しています。その他の変更点としては、 要素と要素から 属性が削除されたこと、(言語の最初の版では)属性が削除され が採用されたことが挙げられます。 rtrpnameamaplangxml:lang

XHTML 1.1はXHTML 1.0およびHTML 4とほぼ互換性がありますが、2002年8月にワーキンググループはHTMLメディアタイプで配信すべきではないという公式ノートを発行しました。[ 53 ]代替application/xhtml+xmlメディアタイプをサポートするブラウザが限られていたため、XHTML 1.1は広く普及することができませんでした。2009年1月には、この制限を緩和し、XHTML 1.1をHTMLメディアタイプとして配信できるようになった第2版(XHTMLメディアタイプ - 第2版)が発行されましたtext/html[ 54 ]

XHTML 1.1の第2版は2010年11月23日に発行され、さまざまなエラッタに対処し、元の仕様には含まれていなかったXMLスキーマ実装を追加しました。[ 55 ](2009年5月7日に「編集勧告案」として短期間リリースされましたが[ 56 ]、未解決の問題により5月19日に撤回されました。)

XHTMLベーシック

情報機器はすべてのXHTML抽象モジュールを実装するためのシステムリソースが不足している可能性があるため、W3Cは機能制限されたXHTML仕様であるXHTMLベーシックを定義しました。これは、最も一般的なコンテンツ作成に十分な最小限の機能サブセットを提供します。この仕様は2000年12月にW3C勧告となりました。 [ 57 ]

XHTMLのすべてのバージョンの中で、XHTML Basic 1.0は最も機能が少ない。XHTML 1.1は、モジュール型XHTMLの最初の2つの実装のうちの1つである。コアモジュール(構造、テキスト、ハイパーテキスト、リスト)に加えて、ベース、基本フォーム、基本テーブル、画像、リンク、メタ情報、オブジェクト、スタイルシート、ターゲットといっ​​た抽象モジュールを実装している。[ 58 ] [ 59 ]

XHTML Basic 1.1は、基本フォームモジュールをフォームモジュールに置き換え、組み込みイベント、プレゼンテーション、スクリプトの各モジュールを追加しました。また、他のモジュールのタグと属性もサポートしています。このバージョンは2008年7月29日にW3C勧告となりました。[ 60 ]

XHTML Basicの現在のバージョンは1.1第2版(2010年11月23日)であり、この言語はW3CのXMLスキーマ言語で再実装されています。このバージョンでは属性もサポートされていますlang[ 61 ]

XHTML-Print

2006年9月にW3C勧告となったXHTML-Printは、情報家電から低価格のプリンターまで印刷される文書向けに設計されたXHTML Basicの特殊バージョンです。[ 62 ]

XHTMLモバイルプロファイル

XHTMLモバイルプロファイル(略称:XHTML MPまたはXHTML-MP)は、W3CのXHTMLベーシック仕様のサードパーティ版です。XHTMLベーシックと同様に、XHTMLはシステムリソースが限られた情報機器向けに開発されました

2001年10月、ワイヤレスアプリケーションプロトコルフォーラム(WAP)という有限会社が、ワイヤレスアプリケーションプロトコルの2番目のメジャーバージョンであるWAP 2.0向けにXHTML Basicの採用を開始しました。WAPフォーラムは、W3CのXHTMLモジュール化をDTDのベースとし、ターゲットモジュールを除き、W3CがXHTML Basic 1.0で使用したのと同じモジュールを組み込んでいました。この基盤を基に、WAPフォーラムは基本フォームモジュールをフォームモジュールの部分的な実装に置き換え、レガシーモジュールとプレゼンテーションモジュールの部分的なサポートを追加し、スタイル属性モジュールの完全なサポートを追加しました。

2002 年に、WAP フォーラムはOpen Mobile Alliance (OMA) に統合され、OMA ブラウジング仕様のコンポーネントとして XHTML モバイル プロファイルの開発が継続されました。

XHTML モバイルプロファイル 1.1

2004年に最終決定されたこのバージョンでは、OMAはスクリプトモジュールの部分的なサポートと組み込みイベントの部分的なサポートを追加しました。XHTML MP 1.1は、OMAブラウジング仕様バージョン2.1(2002年11月1日)の一部です。[ 63 ]

XHTML モバイルプロファイル 1.2

2007年2月27日に最終版が完成したこのバージョンでは、XHTML MP 1.1の機能が拡張され、フォームモジュールとOMAテキスト入力モードが完全にサポートされています。XHTML MP 1.2は、OMAブラウジング仕様バージョン2.3(2007年3月13日)の一部です。[ 63 ]

XHTML モバイルプロファイル 1.3

XHTML MP 1.3(2008年9月23日完成)は、ターゲットモジュールを含むXHTML Basic 1.1文書型定義を使用しています。このバージョンの仕様におけるイベントは、DOMレベル3仕様に更新されています(つまり、プラットフォームおよび言語に依存しません)。

XHTML 1.2

XHTML 2ワーキンググループは、XHTML 1.1をベースにした新しい言語の作成を検討した。[ 64 ] XHTML 1.2が作成されれば、WAI-ARIAと、roleアクセシブルなウェブアプリケーションをより良くサポートするための属性、およびRDFaによるセマンティックウェブのサポートが改善される。XHTML Basic 1.1の 属性に加えて、フレームターゲットを指定するための 属性も存在する可能性がある。XHTML2 WGは、XHTML1.2の開発を行うための認可を受けてはいなかった。W3Cは、XHTML2 WGの認可を再発行するつもりはないと発表し、[ 8 ] 2010年12月にWGを閉鎖したため、XHTML 1.2の提案は実現しないであろう。 inputmodetarget

XHTML 2.0

2002年8月から2006年7月の間に、W3CはXHTML 2.0の8つのワーキングドラフトをリリースしました。これは、後方互換性の要件を廃止することで、過去から完全に決別したXHTMLの新しいバージョンです。XHTML 1.xおよびHTML 4との互換性の欠如は、ウェブ開発者コミュニティで初期の論争を引き起こしました。[ 65 ]その後、言語の一部( 属性roleやRDFa属性など)は仕様から分離され、別々のモジュールとして開発されました。これは、XHTML 1.xからXHTML 2.0への移行をスムーズにするためでもありました。XHTML 2.0の第9ドラフトは2009年に公開される予定でしたが、2009年7月2日、W3CはXHTML2ワーキンググループの憲章をその年の末までに失効させることを決定し、事実上、ドラフトから標準へのさらなる開発を停止しました[ 8 ] 代わりに、XHTML 2.0と関連文書は2010年にW3Cノートとしてリリースされました。 [ 66 ] [ 67 ]

XHTML 2.0 で導入された新しい機能には次のようなものがあります。

  • HTML フォームは、フォームをさまざまなレンダリング デバイスに適切に表示できるようにする XML ベースのユーザー入力仕様であるXFormsに置き換えられました。
  • HTML フレームはXFramesに置き換えられる予定でした。
  • DOMイベントは、XMLドキュメント オブジェクト モデルを使用するXML イベントに置き換えられる予定でした。
  • リストをナビゲーションリストとして明示的に指定するために、新しいリスト要素型であるnl要素型が追加される予定でした。これは、現在ネストされた順序なしリストやネストされた定義リストなど、様々な方法で作成されているネストされたメニューを作成する際に役立つはずでした。
  • 任意の要素は、 XLinkと同様にハイパーリンク(例: )として機能するように設計されていました。しかし、XLink 自体は設計上の違いにより XHTML と互換性がありません。<li href="articles.html">Articles</li>
  • 任意の要素は 属性を使用して代替メディアを参照できるようになりました。srcたとえば、 は<p src="lbridge.jpg" type="image/jpeg">London Bridge</p>と同じです<object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>
  • alt要素の属性が削除されました。 要素と同様に、要素imgのコンテンツに代替テキストが指定されるようになりました。例: 。imgobject<img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>
  • 単一の見出し要素 ( h) が追加されました。これらの見出しのレベルは、ネストされた要素の深さによって決まります。これにより、見出しの使用を6レベルまでに制限するのではなく、無限に使用できるようになります。
  • 残りのプレゼンテーション要素であるi、 、btt、XHTML 1.x(Strict を含む)では依然として許可されていましたが、XHTML 2.0 では削除されました。わずかにプレゼンテーション的な要素として残されたのは、上付き文字と下付き文字を表すsupとのみでしsubた。これらはプレゼンテーション以外の用途で重要な役割を担い、特定の言語で必須となるためです。その他のタグはすべてセマンティックな要素強い強調strongを表す など)として扱われ、ユーザーエージェントが CSS を介して要素のプレゼンテーションを制御できるようになりました(例えば、ほとんどのビジュアルブラウザでは太字で表示されますが、音声読み上げ機能ではトーンを変えて表示される、ユーザー側のスタイルシートのルールに従って大きい斜体フォントで表示される、など)。
  • XHTML から RDF/XML への変換を容易にするために、属性propertyと属性を持つ RDF トリプルが追加されました。about

XHTML5

HTML5はW3Cから独立して、ブラウザメーカーやその他の関係者による緩やかなグループ(WHATWG 、Web Hypertext Application Technology Working Group)を通じて発展しました。このグループの主な目的は、動的なWebアプリケーションのためのプラットフォームを作成することでした。彼らは、XHTML 2.0はドキュメント中心的すぎるため、インターネットフォーラムサイトやオンラインショップの作成には適していないと考えていました。[ 68 ]

HTML5には、通常のシリアル化とXMLシリアル化( XHTML5text/htmlとも呼ばれる)の両方があります。[ 69 ] HTML5は、既存のHTMLフォーム要素とイベントモデルを維持するという決定により、XHTML 2.0よりもHTML 4およびXHTML 1.xとの互換性が高くなっています。ただし、HTML 1.xにはない多くの新しい要素(<!-->タグや<!-->タグなど)が追加されています。 sectionaside

XHTML5言語は、HTML5と同様に、 DTDを使わずにDOCTYPE宣言を使用します。さらに、この仕様では、ブラウザに対し、解析時に名前付き文字のエンティティ定義のみを含むDTDに置き換えるよう要求することで、以前のXHTML DTDを非推奨としています。[ 69 ]

XHTML におけるセマンティックコンテンツ

XHTML+RDFaは、XHTMLマークアップ言語の拡張版であり、整形式XML文書の形式で属性と処理規則の集合を通してRDFをサポートします。このホスト言語は、リッチなセマンティックマークアップを埋め込むことでセマンティックウェブコンテンツを開発するために使用される技術の一つです。

有効なXHTML文書

XHTML仕様に準拠したXHTML文書は、妥当であると言われています。妥当性は文書コードの一貫性を保証し、処理を容易にしますが、ブラウザによるレンダリングの一貫性を必ずしも保証するものではありません。文書の妥当性は、W3Cマークアップ検証サービス(XHTML5の場合はValidator。代わりにnu Living Validatorを使用してください)で確認できます。実際には、多くのWeb開発プログラムがW3C標準に基づいたコード検証機能を提供しています。

ルート要素

XHTML文書のルート要素は でなければならずhtml、 XHTML名前空間xmlnsに関連付ける属性を含んでいなければなりません。XHTMLの名前空間URIは です。以下のタグの例では、文書を自然言語で識別するための属性も追加されて いますhttp://www.w3.org/1999/xhtmlxml:lang

<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "ar" >

DOCTYPE

XHTML文書を検証するために、文書型宣言( DOCTYPE )を使用できます。DOCTYPEは、文書が準拠する文書型定義(DTD)をブラウザに宣言します。文書型宣言はルート要素の前に配置する必要があり、 DOCTYPEはルート要素の前に配置する必要があり、DOCTYPEはルート要素の前に配置する必要があり、 ルート要素はルート要素の前に配置する必要があります

DOCTYPEのシステム識別子部分(これらの例ではで始まるURL http://は、検証ツールが公開識別子(もう一方の引用符で囲まれた文字列)に基づいてDTDのコピーを見つけられない場合、使用するDTDのコピーを指し示すだけで十分です。これらの例にあるような特定のURLである必要はありません。実際、作成者は可能な限りDTDファイルのローカルコピーを使用することが推奨されます。ただし、公開識別子は、例にあるように、文字単位で一致している必要があります。

XML宣言

MIMEタイプを使用して文書が提供される場合、XHTML 文書の先頭の XML 宣言で文字エンコーディングを指定できます。( XML 文書にエンコーディングの指定がない場合、XML パーサーは、上位プロトコルによってエンコーディングが既に決定されていない限り、エンコーディング がUTF-8またはUTF-16であると想定します。)application/xhtml+xml

例えば:

<?xml version="1.0" encoding="UTF-8" ?>

宣言は、デフォルトのエンコーディングを宣言するため、省略可能です。ただし、文書がXML 1.1または他の文字エンコーディングを使用している場合は、宣言が必要です。バージョン7より前のInternet Explorerは、 として提供される文書内でXML宣言を検出すると、Quirksモードに入りますtext/html

後方互換性

XHTML 1.x文書は、適切なガイドラインに従う限り、HTML 4ユーザーエージェントとほぼ後方互換性があります。XHTML 1.1は基本的に互換性がありますが、ルビ注釈roleの要素はHTML 4仕様の一部ではないため、HTML 4ブラウザでは一般的に無視されます。属性、RDFaWAI-ARIAなどの後続のXHTML 1.xモジュールも同様の方法で適切にデグレードされます

XHTML 2.0 は互換性が大幅に低下していますが、スクリプトを使用することである程度は軽減できます。(スクリプトには、Internet Explorer 内で新しい HTML 要素を登録するための の使用などのシンプルなワンライナーや、 XFormsのFormFaces実装document.createElement()などの完全な JavaScript フレームワークが含まれます。)

以下はXHTML 1.0 Strictの例です。どちらも視覚的な出力は同じです。前者はXHTMLメディアタイプノートのHTML互換性ガイドラインに準拠していますが、後者は下位互換性が失われますが、よりクリーンなマークアップを提供します。[ 54 ]

例のメディアタイプの推奨事項(RFC 2119 用語):
メディアタイプ 例1 例2
application/xhtml+xml すべきすべき
application/xml 5月5月
text/xml 5月5月
text/html 5月 すべきではない

例1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en" lang= "en" > <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title> XHTML 1.0 Strict の例</title> <script type= "text/javascript" > // <![CDATA[ function loadpdf() {  document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } //]]> </script> </head> <body onload= "loadpdf()" > <p>これは、< abbr title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0 Strict文書の例です。 <br /><img id= "validation-icon" src= "http://www.w3.org/Icons/valid-xhtml10" alt= "Valid XHTML 1.0 Strict" /> <br /> <object id= "pdf-object" name= "pdf-object" type= "application/pdf" data= "http://www.w3.org/TR/xhtml1/xhtml1.pdf" width= "100%" height= "500" > </object> </p> </body> </html>

例2.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en" > <head> <title> XHTML 1.0 Strict の例</title> <script type= "application/javascript" > <![CDATA[ function loadpdf() {  document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } ]]> </script> </head> <body onload= "loadpdf()" > <p>これは、< abbr title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0 Strict文書の例です。<br /><img id= "validation-icon" src= "http://www.w3.org/Icons/valid-xhtml10" alt= "Valid XHTML 1.0 Strict" /> <br /> <object id= "pdf-object" type= "application/pdf" data= "http://www.w3.org/TR/xhtml1/xhtml1.pdf" width= "100%" height= "500" ></object> </p> </body> </html>

注:

  1. 「loadpdf」関数は、実際にはInternet Explorer用の回避策です。を追加する<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>ことで置き換えることができます<object>
  2. この要素は、XHTML 1.0 Strict DTDでは属性imgを取得できません。代わりに を使用してください。nameid

XHTMLとHTMLの相互互換性

HTML5とXHTML5のシリアル化は、より厳格なXHTML5の構文に準拠している場合、大部分は相互互換性がありますが、XHTMLが有効なHTML5として動作しないケースがいくつかあります(例えば、処理命令はHTMLには存在せず、コメントとして扱われ、最初の で閉じられます>が、XMLでは完全に許可され、独自の型として扱われ、 で閉じられます?>)。[ 70 ]

参照

参考文献

  1. ^ Graff, Eliot (2014年5月7日). 「Polyglot Markup: A robust profile of the HTML5 vocabulary」 . W3C . 2022年6月16日時点のオリジナルよりアーカイブ。 2015年10月17日閲覧
  2. ^ 「XML構文で文書を書く」 . HTML Living Standard . WHATWG . 2023年7月7日時点のオリジナルよりアーカイブ。
  3. ^ 「XML構文」 . HTML: The Living Standard . WHATWG . 2023年6月5日時点のオリジナルよりアーカイブ。
  4. ^HTMLとXHTML」。whatwg.org
  5. ^ 「WHATWGブログ」 . whatwg.org . 2010年7月25日.
  6. ^ a b「XHTML 1.0仕様、セクション1:XHTMLとは何か?」ワールド・ワイド・ウェブ・コンソーシアム2000年1月26日。 2007年6月16日閲覧
  7. ^ 「HTML 5テキスト、エディター、名前に関する質問の結果」。W3C
  8. ^ a b cXHTMLの将来に関するよくある質問(FAQ)」w3.org
  9. ^ 「HTML5ワーキングドラフト、セクション1.6:HTML vs XHTML」 .ワールドワイドウェブコンソーシアム. 2011年1月13日. 2011年2月16日閲覧
  10. ^ 「XHTML™ 1.0 拡張可能ハイパーテキストマークアップ言語(第2版)出版履歴」ワールドワイドウェブコンソーシアム。2018年3月27日。
  11. ^ 「XHTML™ 1.1 - モジュールベースXHTML - 第2版 出版履歴」 . ワールド・ワイド・ウェブ・コンソーシアム. 2018年3月27日.
  12. ^ 「HTML 4.0 出版履歴」。ワールドワイドウェブコンソーシアム。2018年3月27日。
  13. ^ 「HTML 4.01 出版履歴」。ワールドワイドウェブコンソーシアム。2018年3月27日。
  14. ^ 「HTML5 出版履歴」 . ワールドワイドウェブコンソーシアム. 2018年3月27日.
  15. ^ 「XHTML 1.0仕様、セクション1.1:XHTMLが必要な理由」 .ワールド・ワイド・ウェブ・コンソーシアム. 2000年1月26日. 2007年6月16日閲覧
  16. ^ピルグリム、マーク。「How Did We Get Here? - Dive Into HTML5」。diveintohtml5.info 。2021年3月8日時点のオリジナルよりアーカイブ。 2016年6月11日閲覧
  17. ^ Arjun Ray (1999-10-06). 「SGMLへの規範的参照の削除(旧ID ACTION)」 . 2021年2月25日時点のオリジナルよりアーカイブ。 2008年12月29日閲覧…しかしながら、ISO 8879はアプリケーションに内部サブセットを禁止する余地を与えていないため、HTML [4] 仕様の文言は、自動的にSGML準拠アプリケーションとしての資格を剥奪することになります…
  18. ^ Tina Holmboe (2008年10月6日). 「XHTML—神話と現実」 . The Developer's Archive. 2017年1月12日時点のオリジナルからのアーカイブ。 2008年12月29日閲覧…XML自体の設計目標は、オリジナルのHTMLの目標を部分的に反映していたため、XMLベースのマークアップ言語の策定作業を開始するのは理にかなったことでした…
  19. ^ Kip Hampton (2001-01-10). 「XML::XPathを使ったWebユーティリティの作成」 . XML.com . 2008-12-29閲覧. ... 問題:XMLツールが提供するパワーとシンプルさを活用したいのに、古くなったHTMLドキュメントで溢れかえっているサイトに直面しています。解決策:ドキュメントをXHTMLに変換し、PerlとXML::XPath
  20. ^ Jean-Luc David (2004-04-14). 「XHTML Mobileを使用したワイヤレスコンテンツの開発」 . XML.com . 2008-12-29閲覧. ... XHTMLの便利な機能の一つは、XMLとして操作できることです。拡張スタイルシート言語テンプレート(Extensible Stylesheet Language Templates)を使用すれば、XHTMLをWMLやその他の独自のモバイルフォーマットに変換できます。
  21. ^ 「名前空間クラッシュコース」。Mozilla Developer Center。2008年10月2日時点のオリジナルからのアーカイブ2008年12月29日閲覧。…W3Cの長年の目標は、異なる種類のXMLベースのコンテンツを同じXM​​Lファイルに混在させることでした。例えば、SVGとMathMLをXHTMLベースの科学文書に直接組み込むことも可能です。
  22. ^ Steven Pemberton (2004-07-21). 「HTMLとXHTMLに関するよくある質問」 . World Wide Web Consortium . 2008-12-29閲覧. …XMLベースのHTMLであれば、他のXML言語にXHTMLの要素を組み込むことができ、XHTML文書に他のマークアップ言語の要素を組み込むことも可能です。また、HTMLの再設計を活用して、HTMLの扱いにくい部分を整理し、より優れたフォームなど、必要な新機能を追加することもできます…
  23. ^ Clark, James (1997-12-15). 「SGMLとXMLの比較」 . World Wide Web Consortium Note.
  24. ^ 「速記マークアップ」 . HTML 4、付録B:パフォーマンス、実装、および設計に関する注記. W3C . 2011年9月30日閲覧
  25. ^ 「大文字と小文字の区別」 SitePoint Pty. Ltd. 2011年9月30日閲覧
  26. ^ Wilson, Nicholas (2010年5月29日). 「XHTMLとHTMLのCSSの違い」 .
  27. ^ 「XHTML 1.0仕様、付録C:HTML互換性ガイドライン」 .ワールド・ワイド・ウェブ・コンソーシアム. 2000年1月26日. 2007年6月16日閲覧
  28. ^ 「XHTML Media Types, W3Cワーキンググループノート」 .ワールド・ワイド・ウェブ・コンソーシアム. 2002年8月1日. 2008年6月12日閲覧
  29. ^ 「Google が理解できるメタタグとインラインタグ | Google 検索セントラル」
  30. ^ Greta de Groat (2002). 「WebとGoogleの展望:Googleリサーチディレクター、モニカ・ヘンジンガー」 『Journal of Internet Cataloging』第5巻第1号、17-28頁、2002年。
  31. ^初期の実装(Mozilla 0.7やOpera 6.0など、どちらも2001年にリリース)では、ネットワーク経由で受信したXHTMLを段階的にレンダリングしないため、ユーザーエクスペリエンスが低下します。Mozilla Web Author FAQを参照してください。Opera 9.0、Safari 3.0、Firefox 3.0などの後期ブラウザではこの問題は発生しません。
  32. ^ 「XHTMLメディアタイプテスト- 結果」w3.org
  33. ^ Chris Wilson (2005-09-15). 「IEにおける<?xml>プロローグ、Strictモード、そしてXHTML」。2007-06-16閲覧。IEBlogでは、IEで「application/xml+xhtml」MIMEタイプのサポートを求めるコメントを以前から読んでいました。IE7ではこのMIMEタイプのサポートは追加されないことをお伝えしておきます。もちろん、HTML互換性推奨事項に従っている限り、「text/html」として提供されたXHTMLは引き続き読み込まれます。
  34. ^ Chris Wilson (2005-09-15). 「IEにおける<?xml>プロローグ、Strictモード、そしてXHTML」 . 2007-06-16閲覧. …IE 7で真のXHTMLをサポートしようとすれば、既存のHTMLパーサー(互換性重視)を使い、XML構造をハッキングするしかなかったでしょう。この方法ではXHTMLを適切にサポートできる可能性は極めて低いでしょう。特に、あちこちで発生するエラーを確実に検出できず、無効なケースを黙ってサポートすることになるでしょう。もちろん、これは将来的にパーサーのエラー処理に基づく互換性の問題を引き起こすでしょう。XMLはこれを明示的に回避しようとしています。現在のHTMLエラー処理(以前のブラウザとの互換性に起因するものです。この点については私個人を責めることもできますが、IEは責められません)のような混乱を再び引き起こしたくはありません。IE 7以降、XHTMLを適切に実装し、真の相互運用性を実現することに時間をかける方がはるかに望ましいのです。
  35. ^ Hachamovitch, Dean (2019-03-16). 「HTML5、ハードウェアアクセラレーション:開発者向けIE9プラットフォームプレビュー版が初公開」 . Microsoft Developer NetworkのIEBlog . Microsoft . 2010-03-22閲覧. ...現在、HTML5の解析ルール、選択API、XHTMLサポート、インラインSVGの実装について開発者の皆様からのフィードバックを募集しています。CSS3に関しては、セレクタ、名前空間、色、値、背景と境界線、フォントに関するIE9のサポートについて開発者の皆様からのフィードバックを募集しています。...
  36. ^ 「XHTMLサイト一覧(X-Philes)」2008年11月20日時点のオリジナルよりアーカイブ2008年8月26日閲覧。
  37. ^「2007年、検索エンジン最適化のリーダー37人が、キーワード属性にキーワードを含めることはほとんど、あるいは全く意味がないと結論付けました。」サンガー、nuブログ、2008年9月9日、2011年8月2日閲覧。 2009年2月21日アーカイブ、 Wayback Machineにて。
  38. ^ “Meta used for SEO” . 2015年12月18日. 2016年3月31日時点のオリジナルよりアーカイブ2016年3月18日閲覧。
  39. ^ Danny Sullivan「HTMLメタタグの使い方」Wayback Machineで2008年9月13日にアーカイブ Search Engine Watch、2002年12月5日
  40. ^ a bイアン・ヒクソン(Operaブラウザの元開発者であり、WHATWGの共同設立者、2002年9月8日)「XHTMLをtext/htmlとして送信することは有害と考えられる」 。 2007年6月16日閲覧
  41. ^ Anne van Kesteren、Opera ブラウザの開発者 (2004 年 6 月 13 日)。「XHTML は無効な HTML です」2007 年 6 月 16 日に取得
  42. ^ Maciej Stachowiak(AppleのSafariブラウザ開発者、2006年9月20日)「HTML、XML、XHTMLを理解する」 。 2007年6月16日閲覧
  43. ^ Brad Fults (2005-12-21). 「XHTMLをtext/HTMLとして送信することは感情に有害と考えられる」 . 2008-09-13閲覧。XHTMLをtext/HTMLとして送信することのデメリットは、[Ian Hickson]が主張するほど多くはなく(もしあったとしても)、私が上で述べたメリットを考えると、私見では十分に活用する価値がある。[Hicksonの記事には]微妙な脚注や括弧書きがあり、その有害性は、この手法の落とし穴を知らない著者にのみ当てはまると示唆しているが、小さなシリカゲルの袋に貼られた「食べないでください」というラベルのように、Ianのアドバイスは常識的なものであり、XHTMLとは何か、そしてどのように書くかを実際に知っている著者にとっては言及する価値はないと思われる。
  44. ^ Paul McDonald (2007-06-30). 「XHTML の真価」2008年8月8日アーカイブ2008年9月13日閲覧。WebにおけるXHTMLは失敗作だと言う人もいますが、私はWeb標準を目指す戦いにおける最大の成功だと考えています。…しかし、XHTMLはWebにとって良いものであり、人々がそれを批判しようとするのは残念です。このことを証明するために、この神話を詳しく説明し、Web標準を目指す戦いにおいて、XHTMLがなぜ最高のものなのかをお見せしたいと思います。…結論として、XHTMLをtext/htmlとして送信しても、XHTMLが検証されている限り、今日ではどこにも損害や害はありません。そして、Web標準をさらに普及させたいのであれば、XHTMLを使い続け、ページを検証してください。
  45. ^ Tim Berners-Lee (2006-10-27). 「HTMLの再発明」 .オリジナルから2007-06-09にアーカイブ。2007-06-16に閲覧年を経て、より明確になった点がいくつかあります。HTMLは段階的に進化させる必要があります。属性値を引用符で囲む、空タグにスラッシュを入れる、名前空間を定義するなど、一気にXMLに移行させようとする試みは失敗に終わりました。HTMLを生成する大勢のユーザーは、主にブラウザが問題にしなかったため、移行しませんでした。一部の大規模なコミュニティは移行し、整形式のシステムの恩恵を受けていますが、すべてがそうではありません。HTMLを段階的に維持し、整形式の世界への移行を継続し、その世界でより大きな力を発揮していくことが重要です。全く新しいHTMLグループを設立する計画です。以前のグループとは異なり、このグループはHTML、そして並行してXHTMLの段階的な改善に取り組むことを目的としています。議長とスタッフはそれぞれ異なります。HTMLとXHTMLの両分野に共同で取り組みます。ブラウザメーカーを含む多くの人々と話し合い、このグループへの強い支持を得ています。
  46. ^ Ian Hickson、David Hyatt (2011年1月13日). 「HTML5: HTMLとXHTMLの語彙と関連API」 . 2011年2月16日閲覧
  47. ^ Simon Pieters. 「モバイルテストの結果」 . 2009年10月31日閲覧
  48. ^ 「XHTML 1.0: 拡張可能なハイパーテキストマークアップ言語、W3C勧告 2000年1月26日」ワールド・ワイド・ウェブ・コンソーシアム2000年1月26日. 2008年7月19日閲覧
  49. ^ 「XHTML 1.0 拡張可能ハイパーテキストマークアップ言語(第2版)」 .ワールドワイドウェブコンソーシアム. 2002年8月1日. 2008年7月19日閲覧
  50. ^ 「XHTMLのモジュール化、W3C勧告 2001年4月10日」ワールド・ワイド・ウェブ・コンソーシアム2001年4月10日. 2008年7月19日閲覧
  51. ^ 「XHTML Modularization 1.1 - 第2版、W3C勧告 2010年7月29日」ワールド・ワイド・ウェブ・コンソーシアム2010年7月29日. 2010年12月31日閲覧
  52. ^ 「XHTML 1.1 - モジュールベースのXHTML、W3C勧告 2001年5月31日」ワールド・ワイド・ウェブ・コンソーシアム2001年5月31日. 2008年7月19日閲覧
  53. ^ 「XHTML Media Types、W3Cワーキンググループノート、2002年8月1日」ワールド・ワイド・ウェブ・コンソーシアム。2002年8月1日。 2008年7月19日閲覧
  54. ^ a b「XHTML Media Types – Second Edition, W3C Working Group Note 16 January 2009」 . World Wide Web Consortium . 2009年1月16日. 2009年1月28日閲覧 このドキュメントは、元々 XHTML 1.0 の付録 C に記載されていた HTML 互換性ガイドラインに代わるものです。
  55. ^ 「XHTML 1.1、XHTML Basic 1.1、XHTML Print勧告の改訂版」。W3Cニュースアーカイブ:2010年ワールド・ワイド・ウェブ・コンソーシアム。 2010年12月12日閲覧
  56. ^ 「XHTML 1.1 - モジュールベースXHTML - 第2版」 . World Wide Web Consortium . 2009年5月7日. 2009年5月12日時点のオリジナルよりアーカイブ。 2009年5月25日閲覧
  57. ^ 「XHTML Basic、W3C勧告 2000年12月19日」ワールド・ワイド・ウェブ・コンソーシアム2000年12月19日. 2008年7月19日閲覧
  58. ^ 「XHTML Flavors comparisons」 . World Wide Web Consortium . 2007年1月9日. 2013年1月30日閲覧
  59. ^ XHTML Basic . W3.org. 2013年7月17日閲覧。
  60. ^ XHTML Basic 1.1 . W3.org. 2013年7月17日閲覧。
  61. ^XHTML ベーシック 1.1 - 第2版」。w3.org
  62. ^ 「XHTML-Print、W3C勧告 2006年9月20日」ワールド・ワイド・ウェブ・コンソーシアム2006年9月20日 . 2008年7月19日閲覧
  63. ^ a b「OMAブラウジングアーカイブ」 OMAリリースOpen Mobile Alliance Ltd. 2011年9月26日。
  64. ^ "[XHTML] アジェンダ: 2008-07-09" . w3.org .
  65. ^ブラウザ開発者Tantek Çelikによる「XHTML 2.0は有害と考えられる」と「XHTML 2.0は期待できると考えられる」の両方を参照してください属性と要素が欠落していると批判しています。開発者Daniel Glazmanも同様の批判をしていますが、要素とを削除するという決定など、後方互換性のない変更点についても支持を示しています。styleciteinsdel
  66. ^ 「XHTML 2.0、W3Cワーキンググループノート、2010年12月16日」ワールド・ワイド・ウェブ・コンソーシアム。2010年12月16日。 2010年12月31日閲覧
  67. ^ 「XHTML2ワーキンググループ文書がW3Cノートとして公開」 .ワールド・ワイド・ウェブ・コンソーシアム. 2010年12月16日. 2010年12月31日閲覧
  68. ^ Ian Hickson (2008-01-22). 「HTML 5, 1.1.2. XHTML2との関係」 . World Wide Web Consortium . 2008-07-19閲覧. ... XHTML2... は、ハイパーリンク、マルチメディアコンテンツ、文書編集の注釈、リッチメタデータ、宣言型インタラクティブフォーム、そして詩や科学論文といった文学作品の意味記述といった、より優れた機能を備えた新しいHTML語彙を定義しています。... しかし、Web上でよく見られる多くの非文書型コンテンツのセマンティクスを表現する要素が欠けています。例えば、フォーラムサイト、オークションサイト、検索エンジン、オンラインショップなどは、文書のメタファーにはあまり当てはまらず、XHTML2ではカバーされていません。...この仕様は、HTMLを拡張し、これらのコンテキストにも適したものにすることを目的としています。
  69. ^ a b「9 XHTML構文 - HTML5。w3.org
  70. ^ HTML vs. XHTML、WHATWG Wiki

注記

  1. ウェイバックマシンによると Wikipediaは2012年9月18日からそれ以前は、 2004年6月から使用されていました<!DOCTYPE html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">