Doctype 列挙体
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)

Public Enumeration Doctype

メンバ名 | 説明 | |
---|---|---|
NotSet | 未定義。 | |
Wml20 | WML 2.0 ドキュメント。 | |
XhtmlBasic | Basic XHTML フォーマット。このフォーマットでは、フレームやスタイルはサポートされません。 | |
XhtmlMobileProfile | XHTML モバイル プロファイル フォーマット。 |

SetDocType メソッド呼び出しのパラメータとして、Doctype 列挙値のいずれかを指定した場合、テキスト ライタには、該当する XHTML ドキュメント タイプの制限が強制的に適用されます。
XHTML Basic は、XHTML ドキュメントに必要な最小限の XHTML モジュールだけをサポートしたモバイル版の XHTML 1.0 です。携帯電話、PDA (Personal Digital Assistant)、ポケットベル、セットトップ ボックスなど、XHTML の一部の機能は、サポートされていないクライアント向けに設計されています。XHTML Basic では、異なるディスプレイ形式を備えた携帯電話やプレゼンテーション機能を含む、できるだけ幅広いクライアントにドキュメントを提供できます。
XHTML モバイル プロファイルは、プレゼンテーション要素や内部スタイル シートのサポートなど、完全な XHTML 1.0 が備えたいくつかの要素と属性を XHTML Basic に追加したものです。
WML (Wireless Markup Language) 2.0 では、カスケード スタイル シートをサポートすることにより、XHTML Basic と XHTML モバイル プロファイルの両方を拡張しています。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


文書型宣言
文書型宣言(ぶんしょかたせんげん、英: document type declaration)、DOCTYPE宣言(DOCTYPEせんげん)は、SGMLやXML文書を、文書型定義(DTD)と結びつけるための宣言である。
概要
文書型宣言はSGMLやXML文書の冒頭に記載される。SGMLやXML文書において、どのような要素をどのように配置することが許されるかはスキーマ言語によって定義されている。歴史的経緯から、スキーマ言語としてはDTDが主に用いられてきた。文書を解析するパーサは文書型宣言に指定されたDTDを参照することで、規則に従った妥当な文書か否かを検証することができる。
HTML2.0からHTML4.01までのHTMLはSGML文書の一種として定義されているため、文書型宣言はHTML文書の冒頭にも記載される。これによって、たとえばウェブページの制作者は、W3C Markup Validation ServiceやAnother HTML-lintなどのサービスを用いて、見落としていたページ内のエラーを発見できる。
一部のHTMLレンダリングエンジンは「DOCTYPEスイッチ」と呼ばれる機能を有している。これはMIMEタイプとしてtext/html
を与えられた文書に書かれた文書型宣言の内容によってレンダリングを「標準モード」や「互換モード(Quirksモード)」というように切り替えるものである。
HTML5はSGMLベースではなくなったが、MIMEタイプは依然としてtext/html
を使用しているため、DOCTYPEスイッチの影響を受ける。そこでHTML5でもこのモード切替のためだけに文書型宣言を残している。すなわちHTML5における文書型宣言は、レンダリングを「標準モード」へ切り替えるためだけの、「ほとんど役に立たないが、それでも必要な」ヘッダである[1]。
文法
文書型宣言の一般的な文法は以下のようになる。
<!DOCTYPE ルート要素 PUBLIC "公開識別子" ["URI"] [ <!-- サブセットの宣言 --> ]>
or
<!DOCTYPE ルート要素 SYSTEM "URI" [ <!-- サブセットの宣言 --> ]>
ルート要素とは文書全体の最上位となる要素である。XMLでは、ドキュメントのルート要素はいちばん初めに現れた要素である。例えば、XHTMLでは、ルート要素はDOCTYPE宣言の直後に開始し、文書の終わりで閉じられるhtml
要素である。
SYSTEM
やPUBLIC
というキーワードは、DTDがシステム内部のものなのか、公開されているものなのかを指定するためのキーワードである。
PUBLIC
を指定した場合、その後には限られた公開識別子(公式公開識別子; FPI)を二重引用符で括って指定する必要があり、その後には必要であれば、同じく二重引用符で括った「システム識別子」を指定することができる。たとえば、XHTML 1.1の公開識別子は"-//W3C//DTD XHTML 1.1//EN"
であり、その後にはシステム識別子である"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
を続けることができる。
一方、SYSTEM
を指定した場合、その後にはシステム識別子を続ける必要がある。これらのシステム識別子としては、URIの形式でDTDの所在を指定する。
最後に、角括弧([])で囲んで、宣言への追加・変更などを行える[2]「内部サブセット」を続けることができる。なお、内部サブセットは省略可能であり、完全なSGML実装になっていないパーサ(とりわけ、HTML専用のもの)では解析不能となるため付けてはならないこともある。
公開識別子とシステム識別子は独立の概念であるが、HTMLのようにSGMLを元にしたドキュメントでは、公開識別子とシステム識別子が関連付けられる場合がある。この場合、公開識別子を記述すればシステム識別子が省略可能であり、この関連付けは、例えばその関係性を記録したテーブルによって行われる[3]。XMLではシステム識別子を省略できない。
具体例
例えば HTML 4.01 Transitional で書かれたWebページでは、1行目は以下のようになる。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
この文書型宣言では、公開識別子の-//W3C//DTD HTML 4.01 Transitional//EN
とシステム識別子のhttps://www.w3.org/TR/html4/loose.dtd
によって、特定のDTDがこの文書と関連付けられている。パーサはどちらかの識別子を使ってエンティティの定義を得ることができる。この例でも次の例でも、内部サブセットの指定はない。ルート要素はhtml
と指定されている。つまり、この宣言の後にはhtml
要素が続くこととなる。
HTML 4.01
HTML4.01には3種類のDTDが用意されている。厳密なStrict、移行用のTransitional、フレームを使用するFramesetである。
Strict DTDでは、CSSで行うべき文書の見た目を左右するマークアップは廃されている。そのStrict DTDを指定するための文書型宣言は以下のようになる。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Transitional DTDでは、非推奨となった要素や属性を使うことができる。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
フレームを使う場合、以下のようにしてFrameset DTDを指定する必要がある。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0
XHTML 1.0にはHTML 4.01と同じく、Strict、Transitional、Framesetという3種類のDTDが存在する。
Strict DTD
<?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" lang="en">
Transitional DTD
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Frameset DTD
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
XHTML 1.1
XHTML 1.1はモジュール化が行われている、標準化された中では最新のXHTMLである。XHTML 1.0 Strictの流れを受け継ぐ1通りのみのDTDとなった。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML Basic
XHTML Basic 1.0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XHTML Basic 1.1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.1//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
XHTML Mobile Profile
XHTML Mobile Profile 1.0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
XHTML Mobile Profile 1.1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
XHTML Mobile Profile 1.2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
XHTML + RDFa
XHTML+RDFa 1.0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html lang="ar" dir="rtl" xmlns="http://www.w3.org/1999/xhtml">
HTML5
<!DOCTYPE html>
HTML5はSGMLベースでなく、公式のDTDは存在しない(ただし、有志によって開発されたものは存在する[4])。そのためHTML5の文書型宣言は文書とDTDを関連付けるという機能を果たしていない。宣言に入れるものはルート要素の名前、HTML
だけである[5]。大文字小文字は区別されない。
XHTML5では、XMLの文法制約から大文字小文字が区別され、<!DOCTYPE html>
という形で書くこととなる。DOCTYPE
はすべて大文字とする必要がある。
XHTML5において、文書型宣言は必須ではなく、省略してしまっても構わない[6]。ただし、同じ文書をHTMLとしても解釈する必要があるなら、文書型宣言を付けることが推奨される[7]。逆に、XHTML5の要素をXML名前空間に入れる場合、DOCTYPE
を使うことはできない。
関連項目
脚注
- ^ “HTML Standard 12.1.1 The DOCTYPE”. 2017年10月7日閲覧。
- ^ DOCTYPE宣言 MSDN ライブラリ(2013年9月15日閲覧)。
- ^ “FreeBSD Documentation Project Primer for New Contributors 7.3. The DOCTYPE Declaration”. 2017年10月7日閲覧。
- ^ http://www.cs.tut.fi/~jkorpela/html5-dtd.html
- ^ “HTML Standard 12.1.1 The DOCTYPE”. Web Hypertext Application Technology Working Group. 2011年6月5日閲覧。 “1. A string that is an ASCII case-insensitive match for the string "DOCTYPE". ... 3. A string that is an ASCII case-insensitive match for the string "html".”
- ^ “HTML Standard 13.1 Writing documents in the XML syntax”. Web Hypertext Application Technology Working Group. 2017年10月7日閲覧。
- ^ “Polyglot Markup: HTML-Compatible XHTML Documents”. World Wide Web Consortium. 2012年1月17日閲覧。
外部リンク
- Recommended DTDs to use in your Web document - an informative (not normative) W3C Quality Assurance publication
- DOCTYPE grid - another overview table
- Quirks mode and transitional mode
- Box model tweaking
DOCTYPE
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/27 16:47 UTC 版)
「XHTML Mobile Profile」の記事における「DOCTYPE」の解説
XHTML MP 準拠を名のるには、仕様のバージョンに応じて、以下のいずれかの DTD あるいは DOCTYPE を含まなければならない。 なお、一連のリビジョンは以前のDTDの技術的問題を解決すべく発行されている。また、DTDフォーマットは標準のHTMLに比較すると複雑であり、あまり広くサポートされているとは言えない。
※この「DOCTYPE」の解説は、「XHTML Mobile Profile」の解説の一部です。
「DOCTYPE」を含む「XHTML Mobile Profile」の記事については、「XHTML Mobile Profile」の概要を参照ください。
- doctypeのページへのリンク