doctypeとは? わかりやすく解説

Doctype 列挙体

メモ : この列挙体は、.NET Framework version 2.0新しく追加されたものです。

XhtmlTextWriter クラスページまたはコントロールレンダリングするときに使用する XHTML マークアップタイプ指定します

名前空間: System.Web.UI.MobileControls.Adapters.XhtmlAdapters
アセンブリ: System.Web.Mobile (system.web.mobile.dll 内)
構文構文

メンバメンバ
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

文書型宣言

(doctype から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/30 00:35 UTC 版)

文書型宣言(ぶんしょかたせんげん、: document type declaration)、DOCTYPE宣言(DOCTYPEせんげん)は、SGMLXML文書を、文書型定義(DTD)と結びつけるための宣言である。

概要

文書型宣言はSGMLやXML文書の冒頭に記載される。SGMLやXML文書において、どのような要素をどのように配置することが許されるかはスキーマ言語によって定義されている。歴史的経緯から、スキーマ言語としてはDTDが主に用いられてきた。文書を解析するパーサは文書型宣言に指定されたDTDを参照することで、規則に従った妥当な文書か否かを検証することができる。

HTML2.0からHTML4.01までのHTMLはSGML文書の一種として定義されているため、文書型宣言はHTML文書の冒頭にも記載される。これによって、たとえばウェブページの制作者は、W3C Markup Validation ServiceAnother 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要素である。

SYSTEMPUBLICというキーワードは、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を使うことはできない。

関連項目

脚注

  1. ^ HTML Standard 12.1.1 The DOCTYPE”. 2017年10月7日閲覧。
  2. ^ DOCTYPE宣言 MSDN ライブラリ(2013年9月15日閲覧)。
  3. ^ FreeBSD Documentation Project Primer for New Contributors 7.3. The DOCTYPE Declaration”. 2017年10月7日閲覧。
  4. ^ http://www.cs.tut.fi/~jkorpela/html5-dtd.html
  5. ^ 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".”
  6. ^ HTML Standard 13.1 Writing documents in the XML syntax”. Web Hypertext Application Technology Working Group. 2017年10月7日閲覧。
  7. ^ Polyglot Markup: HTML-Compatible XHTML Documents”. World Wide Web Consortium. 2012年1月17日閲覧。

外部リンク


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」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「doctype」の関連用語

doctypeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



doctypeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの文書型宣言 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのXHTML Mobile Profile (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS