2009-05-05 112 views
6

據我所知,XML是SGML的一個子集,旨在簡化它並鼓勵更廣泛的使用。我覺得最有用的特性被引入到了XML中,但是SGML中有沒有足夠強大的特性來激發它的使用而不是XML(並且接受複雜的開銷)?是否有任何理由使用SGML而不是XML?

回答

8

SGML的一個優點是,如果你手動編輯它,你可以用各種方式縮寫標籤。你能做什麼取決於你正在使用的DTD的SGML聲明。例如,在DocBook中,您可以編寫像< literal> foo < />。在HTML中,您可以省略結束標籤,這就是爲什麼您可以在不關閉標籤的情況下寫入< p> foo ... < p> bar。或者你可以完全忽略標籤,這就是爲什麼< body>在HTML中是可選的。

但是XML的發明正是因爲所有這些變體使解析SGML變得相當複雜。你現在可能會發現比SGML編輯更能勝任的XML編輯器。

就處理而言,兩種形式都是等價的,因爲您可以來回轉換,除非在某些角落情況下。

+0

Nrrgh,需要一個+2按鈕......! (一個很好的解釋+1;真棒瑣事+1!) – pinkgothic 2010-08-26 10:23:23

1

除非您有特定的應用程序,否則無法回答。您可以使用SGML獲得更好的索引和搜索,但是我沒有發現它比XML更好的選擇。我確定他們在那裏,我只是沒有找到他們。

獲勝因素是XML多個平臺上的渲染成熟度。 SGML不存在相同的兼容性。但是,如果您可以控制環境,那可能不是一個因素。 XML似乎只提供了90%的功能,但複雜程度要低得多。

2

否。使用SGML的唯一原因是如果您在出版行業工作,其中SGML已經是生產流程的一部分。 (可能有其他行業,但這是我唯一有經驗的行業)。

另一種看待這種情況的方法是,即使SGML中有一些不錯的功能,除非您可以使用SGML清楚地顯示財務利益(請參閱「發佈行業」),否則不值得爲工具付費。

相關問題