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


16
  1. ウィキペディアで「プロファイル」が何を意味するのか疑問に思っていました:

    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のアプリケーションです。ある言語は別の言語のアプリケーションであると言うことと、ある言語は別の言語のサブセットであるということの違いは何だろうか?

回答:


8

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は、明示的な終了タグ、明示的な属性、および許可されていないタグを強く提案または実施することで、ブラウザと人間の両方で簡単になり、動作間の予期しない違いを回避することで、それを改善しようとします。


ありがとう!(1)HTMLとXMLの両方がXHTMLのサブセットですか?(2)HTMLがXMLのサブセットではなく、XMLがHTMLのサブセットでもないことは正しいですか?HTMLとXMLには空でない交差点がありますか、それとも互いに完全に分離されていますか?
ティム

(3)ある言語は別の言語のアプリケーションであると言うことと、ある言語は別の言語のサブセットであるということの違いは何ですか?
ティム

XMLとHTMLの両方に準拠するドキュメントがあります。HTMLではなくXMLに準拠したドキュメントがあり、XMLではなくHTMLに準拠したドキュメントがあります。したがって、どちらも他方のサブセットではありませんが、空ではない交差点があります。
マイケルケイ

@Tim:(1)HTML、XML、およびXHTMLはSGML以外のサブセットではありません。それらはすべて異なっています。XMLは、実際にはHTMLやXHTMLとはまったく関係ありません...それは別の目的を果たします。XHTMLはHTMLとXMLの両方として解析できますが、HTMLマークアップとしてブラウザーでのみ使用されます。HTMLとXMLはどちらもSGMLの共通の祖先を持っていますが、それ以外は無関係です。SGMLは非常に汎用的であるため、すべてのインテントについて、それらは別個のものです。
ヨルダン

正直なところ、アプリケーションとサブセットの用語を深く掘り下げていると思います。これらの用語の間に違いがあるとは思わないか、もしあれば、広く同意されているとは思わない。XHTMLはXMLから概念を借用し、HTMLの厳密なサブセットとして使用されると言うだけで十分です。HTMLが最初に来ました。その後、XHTMLが登場しました。
ヨルダン

6

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でもあります。


ありがとう!(1)XMLとHTMLはどちらもSGMLのサブセットであり、HTMLはマークアップ言語ですが、XMLはマークアップ言語ではなく、マークアップ言語を設計するためのメタ言語です。(2)回答によると、XHTMLはXMLのサブセットです。XHTMLは、私の投稿の1つのリンクから引用された「XHTMLサブセットHTML」としてのHTMLのスーパーセットです。HTMLはXMLのサブセットですか?それが本当かどうかはわかりません。
ティム

HTMLは規則を破りすぎてXMLになりません。HTMLはSGMLに近いと思います。HTMLはタグに対して緩やかであり、さまざまな種類のタグが設定されています。XHTMLはHTMLのXMLバージョンです。
-WalterJ89

ありがとう!両方のリンクで言及されているように、HTMLはSGMLのアプリケーションであり、SGMLのサブセットでもあり、XHTMLはXMLのアプリケーションです。ある言語は別の言語のアプリケーションであると言うことと、ある言語は別の言語のサブセットであるということの違いは何だろうか?
ティム

2

これらの歴史はここであなたを啓発するかもしれません。メタ言語、プロファイル、サブセット、およびインスタンスについて単に話すのは少し辛いです!短くシンプルにしようと思います。

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

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

SGMLは、多数の小さいサイズのドキュメントに対して非常に複雑であることがわかりました。したがって、XMLは1996年から2006年の間に、SGMLのサブセット(単語プロファイルは事実上サブセットと同じ意味)として開発され、小規模文書と大規模文書の両方を処理できました。メタ言語のサブセットであるXMLは、それ自体はメタ言語ですが、よりシンプルなものです。XMLは、簡単な保管とネットワーク上のシステム間の転送の両方に適したドキュメント形式を設計するための基盤を提供すると言うことができます。

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

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

それが、これらのデータ言語の背後にある物語です。それらがすべての意味と目的を区別するのに役立つことを願っています。哲学的に、この物語は、新しいテクノロジー(インターネット)の不可欠な有効化ツール(SGML)が、ますます多様化する需要のある新しい環境で、元の限界を超えながらも概念的にシンプルで、適用可能により汎用性が高く、インパクトのある強力になる方法を示しています。


1

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


ありがとう!(1)質問のパート5のように、「アプリケーション」、「サブセット」、「プロファイル」の意味と違いはどうですか。(2)「XHTMLは、HTMLを拡張およびサブセットする将来のドキュメントタイプのファミリの基礎です」とは、XHTMLがHTMLのサブセットであるか、HTMLがXHTMLのサブセットであることを意味しますか?
ティム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.