web-dev-qa-db-ja.com

HTML、XHTML、XML、およびHTML5の比較/対比

わかりましたので、これらの言語の違いはよくわかりません。誰かが明確にできますか? XMLにユーザー定義のタグがあり、htmlが事前定義されていることは知っていますが、それは基本的に私の知識の範囲です。

HTML5がHTMLを置き換えることになっていることは知っていますが、XMLもそれを行うはずではありませんでしたか?基本的に、ここでどの言語が他の言語の代わりになり、どの言語が補完しますか? XMLはXHTMLを置き換えますか?

25
GiH

[〜#〜] html [〜#〜] は、構造化されたドキュメントを作成し、ドキュメントの背後にセマンティックな意味を提供するように設計されたハイパーテキストマークアップ言語です。 HTML5はHTML仕様の次期バージョンです。

[〜#〜] xml [〜#〜] は、拡張マークアップ言語であり、ドキュメントの作成、構造化、およびエンコードに関するルールを提供します。 XMLを使用してデータを格納し、アプリケーション間の通信を可能にすることがよくあります。プログラミング言語に依存しない-すべての主要なプログラミング言語は、コアの一部として、または外部ライブラリで、XMLドキュメントを読み書きするためのメカニズムを提供します。

[〜#〜] xhtml [〜#〜] は、XMLベースのHTMLです。 HTMLと同じ機能を提供しますが、XMLドキュメントと同じルールを使用します。これらのルールは、マークアップの構造を扱います。

32
Thomas Owens

XMLはメタ言語です。メタ言語は、定義済みの文法を介して式を制約することなく他の言語を作成するための構文メカニズムを提供する言語です。 XMLはSGML doctype言語で定義されています。 XMLの厳密な構文要件の順守は、整形式と呼ばれます。これは、さまざまな異なるアプリケーションおよびユーザーエージェントにわたってドキュメントの均一な処理を実現するために、規定された要件セットに対する正確な正確さの実践です。

SGMLはXMLのようなメタ言語であり、XMLの親ですらあります。 SGMLは、データ型規則を提供することなく、構文を使用してデータを定義するための幅広い形式を提供します。 SGML XMLとは異なり、XMLは、混乱を招かない厳格で非常に単純化された構文を備えています。 XMLも、SGMLとは異なり、データ型定義を備えています。 XMLの要素はラムダ形式で名前空間スコープを提供しますが、SGMLは名前空間をサポートしません。

DoctypeはSGMLベースの言語であり、XMLとは完全に異なる構文を使用して、マークアップ言語の文法と幅広いデータ型の規則を定義し、データ要素とテキストを区別します。

XMLスキーマは、要素、構造、および属性の特定のデータ型規則に加えて、正確な構造形式で言語文法定義を可能にするXML記述言語です。 SGMLボキャブラリとは異なり、Schemaで記述された言語は、SGMLボキャブラリとは異なり、構造内のさまざまなポイントで独自の内部要件を認識します。スキーマによって定義された言語は、構造的自己認識により、スキーマドキュメントを参照することですぐに検証を開始できますが、Doctypeで定義された言語は、検証を実行するために静的な定義を持つ無関係なソフトウェアを必要とします。

HTML 1.0は英語のテキストで書かれており、SGMLでもXMLでもありません。

HTML 2-4はSGMLで記述され、大文字のタグや開始タグなど、対応する終了タグのないSGMLの柔軟性を備えています。

XHTML 1.0はHTML言語のSGMLで定義された形式であり、XML構文への漸進的な互換性を光らせるためのいくつかの拡張要件があります。

XHTML 1.1は、XMLの整形式要件を備えたXMLで定義されたHTML言語です。

HTML 1.0と同様に、HTML5はメタ言語を使用して定義されていません。これは英語のテキストで書かれており、XMLシリアライゼーションの統一要件に反対して根本的に動きます。 HTML5は、構造や言語階層に関係なく、使いやすさとメディア配信のために作成されたようです。

XHTML5は「HTML5のXMLシリアル化」の略で、DOMツリーをHTML5にシリアル化するときに使用できるHTML5のXML構文であり(DOMツリーはタグスープタグと適切なタグを区別する機能を失います)、厳密なXMLルールと名前空間。これは、マシンの読み取りやデータ交換を容易にするため、または2つのHTML5ドキュメントを比較する必要がある場合に使用します。 HTML5標準とともに、およびHTML5標準で指定されています(これを指摘してくれたhsivonenに感謝)。

10
austin cheney

XMLは構文です。XMLはデータの書き込み方法を定義しますが、書き込み可能なデータは定義しません。例えば:

<something otherthing="stuff">content</something>

HTMLは語彙です。HTMLは、記述できる要素の種類(BODY、P、LIなど)を定義しますが、記述方法についてはそれほど厳密ではありません(「 Tag soup "を参照)。 ;

XHTMLは、(非常に厳密な)XML構文を使用して記述されている場合を除き、(ほぼ)HTML語彙です。したがって、(構文がより厳格であるため)ソフトウェアで解析するのは簡単ですが、プログラマーでない人が正しく書き込むのは困難です。 Internet Explorerが適切にサポートしていないため、あまり人気がありません。

HTML5はHTMLの次世代バージョン(現在のバージョンのHTML 4)であり、まだドラフトであり、まだ標準ではありません。一部のブラウザー(および実験的)で部分的にサポートされています。 HTML5は、XML構文を使用して、またはタグスープとして提供されることを明示的にサポートします。

8
ChrisW

正確に定義するには、グーグルまたはウィキペディアを使用できます。例を挙げましょう。

HTML:

<DIV id=header>header</div>

XHTML:

<div id="header">header</div>

HTML 5:

<header>header</header>

XMLは、XHTMLに基づく構文です。

<something otherthing="stuff">content</something>
6
marcgg

まず、[〜#〜] sgml [〜#〜]がありました。これは、HTMLとXMLの両方の概念的な祖先であり、

  • [〜#〜] s [〜#〜]標準(ISO 8879:1986)。異なる組織やプログラムがドキュメントを交換できるようにするため
  • [〜#〜] g [〜#〜] eneralized、ユーザーが新しいタグを定義できるようにする
  • [〜#〜] m [〜#〜] arkup。ドキュメントのコンテンツに、コンテンツを説明する構造情報を追加できます
  • [〜#〜] l [〜#〜] anguage、つまり、マークアップを定義する文法があります。

次に、[〜#〜] html [〜#〜]が、Webページの表示方法を定義するために使用されるSGMLタグの特定のセットとして作成されました。

[〜#〜] xml [〜#〜]は、SGMLの簡略化として作成されました。

[〜#〜] xhtml [〜#〜]は、HTMLと整形式のXMLを再キャストするために作成されました(たとえば、SGMLとHTMLでは厳密には必要でなかった、終了タグが必要です)。

HTML 5は、HTMLの現在のバージョンです。 XHTMLの背後にある動機を拒否し、XMLのルールが必要とするよりも緩やかなマークアップの指定を許可します。

5
kjhughes

HTML5の2つのシリアル化 抽象言語のグラフィックを参照してください。 alt text

4
karlcow

HTMLはWebページのマークアップ言語であり、XMLは情報のマークアップ言語です。 XMLはHTMLを直接置き換えるものではなく、スコープが異なります。

HTML 5は、HTMLの最新バージョンです。 HTMLの「現在の」バージョン(使用中のほとんどすべてのブラウザでサポートされているバージョン)は4.01です。

XHTMLは、HTMLに基づく標準であり、XMLのより厳しい規則に準拠するように調整されています。 XHTMLドキュメントはXMLドキュメントでもあり、正しく記述されていれば、どのXMLパーサーでも解析できます。

2
Guffa

HTMLは、Webページ用に作成されたマークアップ言語です。 HTML 5はHTMLの5番目のバージョンです。

XMLは別のマークアップ言語です。 XHTMLは、HTMLに非常によく似たXMLの方言であり、HTMLに置き換わるものですが、サポートが不十分なため、基本的にはHTMLと並んで存在しています。

1
Chuck