web-dev-qa-db-ja.com

SGML、XML、HTML、XHTMLの関係と違い

  1. Wikipedia で「プロファイル」が何を意味するのか不思議に思っていました。

    XMLはISO標準のSGMLのプロファイルであり、ほとんどのXMLは変更されていないSGMLに由来しています。

  2. http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html によると:

    HTMLはSGMLのサブセットです。

    XMLはSGMLの非常に機能的なサブセットです。

    XHTMLはHTMLを拡張およびサブセット化します。

    「あるものが別のサブセットである」とは、最初のコードも構文的には正しく、意味的には2番目のコードと同じであることを意味しますか?

    初等集合論の意味でのように、

    • hTML、XML、XHTMLはすべてSGMLの異なるサブセットですか?
    • xMLとHTMLはほとんど交差していませんか?
    • xHTMLはXMLとHTMLの両方のスーパーセットですか?
  3. 上記のリンクよりも、4つの目的の違いおよび/またはいつ使用するかの違いの簡潔で明確な要約を期待できますか?私は彼らの意図された目的の間の明確な境界線について本当に混乱しています。
  4. http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html によると:

    XMLは単一のマークアップ言語ではありません。これは、ユーザーが独自のマークアップ言語を設計できるようにするメタ言語です。

    XMLとHTMLはどちらもSGMLのサブセットですが、HTMLはマークアップ言語ですが、XMLはマークアップ言語ではなく、マークアップ言語を設計するためのメタ言語です。

    SGMLとXHTMLはどちらもマークアップ言語を設計するためのメタ言語ですか?

  5. 両方のリンクにあるように、HTMLはSGMLのアプリケーションであると同時にSGMLのサブセットでもあり、XHTMLはXMLのアプリケーションです。ある言語が別の言語のアプリケーションであり、ある言語が別の言語のサブセットであると言うことの違いは何ですか?
16
Tim

HTMLとXMLはどちらもマークアップ言語です(つまり* ML)。 XMLは任意のデータを表すのに適した一般的なマークアップ言語ですが、HTMLはWebページを表すためだけに適した特定のマークアップ言語です。

HTMLとXHTMLはどちらもSGMLのサブセットにすぎませんが、XHTMLにはXMLとしても検証される追加の仕様があります。 XMLをXHTMLの影響力のあるゴッドファーザーと考えてください。

これら3つの言語すべてにおけるSGMLとのこの関係のため、多くの類似点がありますが、それらはすべて異なる言語と見なされています。ただし、これらの言語を定義するものの多くは、SGMLに対する制限です。

  • HTMLは、使用が許可されているタグのリストを定義することにより、SGMLを制限します。
  • XMLは、閉じられていない、または空の開始タグと終了タグを許可しないことでSGMLを制限し、属性を明示的にします。 XMLには、SGMLにはない追加の制限も多数あります。
  • XHTMLは、SGMLをHTMLからのタグ(framesetなどの一部の除外を含む)と、XMLからのタグとエンティティの制限で制限します。

技術用語を理解するのは難しいかもしれませんが、このドキュメントは役立ちます。 http://www.w3.org/TR/NOTE-sgml-xml-971215

XMLは、マークアップ言語を定義するためのメタ言語ではありません。本当にそれは単なるSGMLです。 XMLは単にデータフォーマットマークアップ言語です。あなたの引用ソースは技術用語を不正確に使用しているため、混乱しています。

目的

XMLは、独自のデータ形式を定義するためのものです。 2つのシステム間でデータをやり取りしたい場合は、多くの場合、XMLがその方法です。

たとえば、販売注文をWebサイトから請求システムに渡す必要がある場合は、次のXMLペイロードを作成できます。

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

WebサイトはそのXMLを課金システムに送信し、そのXMLからのデータを解析できます。

XHTMLとHTMLは明らかにWebページ専用です。 XHTMLの主な目的は、Web開発の前の年(数十年)にあった多くのあいまいさを取り除くことです。 90年代後半に私が始めたとき、私たちはHTML 3.2を使用していました。 HTML 4+とXHTMLは、明示的な終了タグ、明示的な属性、および許可されていないタグを強く推奨または強制することでそれを改善しようとします。

8
Jordan

まず、XMLはSGMLのサブセットであり、XHTMLはXMLのサブセットであると言います。

HTMLはSGMLに基づいていますが、いくつかの異なるルールがあります。 XHTMLは基本的には更新されたバージョンのHTMLですが、いくつかのルールを設定して配置しているため、正しいXMLでもあります。

HTML 5標準が他の仕様でどのように機能するかに関する注意事項。 http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

SGMLとXMLの違いや、どちらを使用するかはわかりません。 XMLが一般的に使用されているようですが。

XHTMLとHTMLの場合は、常にXHTMLを使用する方がよいでしょう。エラーは見つけやすく、おまけとして有効なXMLにもなります。

6
WalterJ89

これらの歴史はここであなたを啓発するかもしれません。メタ言語、プロファイル、サブセット、インスタンスについて話すだけでは少し乾燥しています。私はそれを短くシンプルに保つようにします。

SGMLは、1960年代に3人のIBMエンジニアが精巧な法律、政府、産業、軍事の文書を保存する手段として考案したGML(Generalized Markup Language)から発展しました。 GMLは、1986年にSGMLとして標準化されるまで徐々に改良されました。

GML/SGMLは言語自体ではありません。それはむしろメタ言語です。つまり、準拠言語を定義するための言語、またはさまざまなフォーマットを行うための「ルール」精巧なドキュメントは、ほぼ一貫した方法で設計できます。したがって、ドキュメントの種類ごとに、独自のSGML準拠のタグ名のセットと関連する属性、および定義済みの正式な公開識別子/名前空間、スキーマなどが定義されます。このように定義された各形式は、ドキュメントの異なるデータストレージ言語となりました関係するタイプ。 SGMLルールに準拠するすべてのドキュメント間の一貫性のため、これらのドキュメント内のデータを照合/処理し、共通の形式を共有するドキュメント間でデータを転送するコードを記述できます。

SGMLは、多数の小さいサイズのドキュメントに対して過度に複雑であることがわかりました。したがって、XMLは1996年から2006年の間にサブセット(Wordprofileとして効果的に開発されました 同じ意味 小さなドキュメントと大きなドキュメントの両方を処理できるSGMLのサブセットとして)。 XMLはメタ言語のサブセットであるため、XML自体はメタ言語ですが、単純なものです。 XMLは、ネットワーク上のシステム間での簡単な保存と転送の両方に適したドキュメント形式を設計するための基礎を提供すると言えます。

SGMLの標準化の後、それがXMLに簡略化される前にインターネットが登場し、それに伴って、簡単な転送と表示とドキュメントの両方のデータの緩やかなデータを可能にするドキュメント形式が必要になりました。結果は、HTML言語、18個の定義済みタグを備えたSGMLのインスタンス(時々アプリケーションと呼ばれる)でした。さまざまなデータタイプを表示する標準化された方法。テキスト、画像、オーディオなど。HTMLはSGMLを利用しており、一部の要素で開始タグまたは終了タグを省略できます。 HTMLの後続のバージョンでは、新しいタグと属性が追加され、いくつかの既存のものは廃止されました。 HTML 5まで、HTMLは常にSGMLの子言語であるように変更されました。

XMLが標準化された後、XHTMLと呼ばれるインスタンスが登場し、既存のHTMLタグ名とタグの終了、ネームスペース、スキーマなどに関するXMLの厳密性が組み合わされました。XHTMLは当初、データの保存、転送、および表示に役立つと約束されていました。 HTML 5が登場するまでは、Web素材を表示する最も一般的な方法としてHTMLに置き換わろうとしているように見えました。 HTML 5には、SGMLで定義されたものを超える構文機能がいくつかあり、特にマルチメディア負荷の高いWebサイトで、より豊かなデータ表示を提供します。時が経つにつれ、HTML 5に追加機能が追加され、少なくともデータの表示に関しては、データの表示/使用が新しいXHTMLバージョンに取って代わられる可能性が低くなるまで、その使用がさらに充実しました。 HTMLおよびXHTMLの標準はW3Cワーキンググループによって行われますが、これらの言語の実際の「現場での」普及は進歩的なWebデザイナーによって行われ、メディア(広告/ PR /マーケティング)セクターで働く人々ほど進歩的ではありません。他のサイトと比較して広告代理店サイトの創造性を見てください。このセクターは本当に新しいHTML 5言語を採用し、SVG、オーディオ、ビデオ、および 新しいAPI の機能を活用することに喜びを感じました。彼らがHTML 5をすぐに採用したことで、すぐにWebデザイナーの間でその人気が高まりました。そのプロセスは、YouTubeやその他のさまざまなサイトでのスキルやトリックのオンライン交換によって加速されました。更新されたXHTMLバージョン、XHTML5が登場しましたが、これは厳密なXML派生ではなく、XMLシリアル化されたHTML5のバージョンです。ごく一部のサイトだけが何らかの用途を持っているようです。

それがこれらのデータ言語の背後にある物語です。それらすべての意味と目的を区別するのに役立つことを願っています。哲学的に、このストーリーは、新しいテクノロジー(インターネット)の不可欠な有効化ツール(SGML)が、需要がますます変化する新しい環境で、元の制限を超え、さらに概念的に単純になり、適用範囲が広がり、影響力が増すことを示しています。

2
Trunk

一般に標準の世界では、標準の「プロファイル」は、標準が提供するオプションの選択です。たとえば、標準でドキュメントをUTF-8またはUTF-16でエンコードできる場合、標準のプロファイルにはそれらはUTF-8でエンコードされます。 「サブセット」という用語は非常に似た意味を持っています。間違いなく、「プロファイル」という用語は少し広いです。

1
Michael Kay