web-dev-qa-db-ja.com

HTML5ドキュメントタイプ定義はどこにありますか?

「古い」HTML/XHTML標準には、DTD(Document Type Definition)が定義されています。

HTML 4.01 http://www.w3.org/TR/html401/sgml/dtd.html
XHTML 1.0 http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict

このDTDは、要素のネストのルールを指定します-「どのタイプの要素がどのタイプの要素に現れるか」。ここでXHTML 1.0の図を作成しました (申し訳ありませんが、私はそのリソースを持っていません)

新しいHTML5要素も含む新しいバージョンでその図を更新したいと思います。ただし、HTML5 DTDは存在しないようです。ネスティングルールは、HTML5で定義されているさまざまなコンテンツモデルによって定義されているようです。

DTDはありません、正しいですか?

次の質問:HTML5にDTDがない理由はありますか? DTDは、さまざまなタイプのすべての要素のネスト規則を定義するこのような素晴らしい方法です。なぜ彼らはそのようなものを含めないのでしょうか?

更新:これを見つけました: http://www.w3.org/ TR/html5/dom.html#kinds-of-content おそらく、これはDTDを持つことに最も近いと思います。

Update:Visual Studioチームは、XHTML5のXMLスキーマを作成しました。それが私の質問に答えていると思います: http://blogs.msdn.com/b/webdevtools/archive/2009/11/18/html-5-intellisense-and-validation-schema-for-visual-studio -2008-and-visual-web-developer.aspx

63
Šime Vidas

HTML5 DTDはありません。 HTML5 RCは明示的に これを言う XHTMLシリアル化について議論するとき、そしてこれは明らかにHTMLシリアル化にも当てはまります。

DTDは、HTML5の設計者によって表現力、HTML5バリデーター(基本的に http://validator.n のHTML5モードと http:/ /validator.w3.org/nu/ )DTDベースの検証ではなく、スキーマとアドホックチェックを使用します。

さらに、HTML5は、DTDを記述できないように設計されています。たとえば、「data-」で始まり、特定の一般ルールに準拠する属性名が有効であるというHTML5ルールをキャプチャするSGMLの方法はありません。 SGMLでは、属性を個別にリストする必要があるため、DTDは無限である必要があります。

HTML5に対応するDTDを設計することはできますが、いくつか省略したり、場合によっては追加の規則を課したりできますが、実際にはHTML5 DTDではありません。私の 実験 というアイデアはあまり励みになりません。制限が多すぎて扱いにくいので、DTDは多くの構文エラーがキャッチされないほど寛容である必要があります。

60

正しい。 DTDはありません。ただし、HTML5ドキュメントは<!DOCTYPE html>で始まる必要があるため、DOCTYPEはありますが、DTDはありません。

見る:

23
Adam

PHP XMLプロジェクトで使用するためのHTML5 DTDを作成しました。これは美しくはありませんが、整形式のXHTML5(つまり、XMLとして表現されたHTML5)で動作します。

こちらのbitbucketアカウントから取得できます:

https://bitbucket.org/kashbridge/dtd/overview

楽しい!

7
Kevin

Sgmljs.netの特定のMarcusが作成され、 分析済みHTML 5.1用のSGML DTD が開始され、 XML-DEVメーリングリストのスレッド がレビューおよび討論。これまでの議論は、エンティティの定義を中心に展開しています。

http://sgmljs.net/docs/html5.html (Web開発PoVではなくマークアップ言語から)でW3CのHTML 5.1勧告の分析を完了し、公開していますここでは、HTML 5.1を解析するための最初のSGML DTDの形式でのレビューのために、長い分析テキストとともに説明します。

[…]

WHATWGとW3CがSGML(およびほとんどのWeb関連仕様作業でのXML)から遠ざかり、それをレガシーテクニックとして扱い、仕様テキストやその他の場所でやや誇張した態度で扱っていることを知っています。しかし、HTML5の文法の分析が示すように、彼らは本質的にすべての形式的なメソッドの使用をすべて放棄しました(そして、分析で議論された少なくとも2つの欠陥で示されています)。

まだ公式なものはありませんが、このイニシアチブが注目を集めるか、少なくともユーザーを非公式のリソースとして見つけるでしょう。

2
imhotap

彼らは古いDTDを廃止したと思います。今ではHTMLページを次のように開始します:<!DOCTYPE HTML>

W3Cが最終的には1つをリリースするかもしれません。

0
Blake