私が理解しているように、XMLは、それを単純化し、より広範な使用を促進するために考案されたSGMLのサブセットです。
最も便利な機能がXMLに組み込まれたと思いますが、XMLの代わりにそれを使用する動機を与える(そして複雑さのオーバーヘッドを受け入れる)のに十分強力なSGMLの機能はありますか?
私が理解しているように、XMLは、それを単純化し、より広範な使用を促進するために考案されたSGMLのサブセットです。
最も便利な機能がXMLに組み込まれたと思いますが、XMLの代わりにそれを使用する動機を与える(そして複雑さのオーバーヘッドを受け入れる)のに十分強力なSGMLの機能はありますか?
SGMLを手動で編集する場合の利点の1つは、さまざまな方法でタグを省略できることです。正確に何ができるかは、使用しているDTDのSGML宣言によって異なります。たとえば、DocBookでは、<literal>foo</>のようなものを書くことができます。HTMLでは、終了タグを省略できます。そのため、タグを閉じずに<p> foo ...<p>barと記述できます。または、タグを完全に省略できます。そのため、HTMLでは<body>はオプションです。
しかし、XMLが発明されたのは、これらすべてのバリアントがSGMLの解析を非常に複雑にするためです。最近では、SGMLエディターよりも有能なXMLエディターが見つかるでしょう。
処理に関しては、一部のコーナーケースを除いて、前後に変換できるため、両方の形式は同等です。
いいえ。SGMLを使用する唯一の理由は、SGMLがすでに制作プロセスの一部になっている出版業界で働いている場合です。(他の業界もあるかもしれませんが、私が経験したのはそれだけです)。
別の見方をすれば、SGMLにはいくつかの優れた機能がありますが、SGMLを使用して経済的利益を明確に示すことができない限り、ツールにお金を払う価値はありません(「出版業界」を参照)。
特定のアプリケーションを念頭に置いていない限り、答えることは不可能です。SGMLを使用すると、より適切なインデックス作成と検索を行うことができますが、XMLよりも優れたオプションであるケースは見つかりませんでした。私は彼らがそこにいると確信しています、私は彼らを見つけていません。
勝利の要因は、XMLの複数のプラットフォームでのレンダリングの成熟度です。同じ互換性はSGMLには存在しません。ただし、環境を制御できるのであれば、それは要因ではないかもしれません。XMLは、機能の90%を提供し、複雑さを大幅に軽減しているようです。