据我了解,XML是SGML的一个子集,旨在简化它并鼓励更广泛的使用。
我猜大多数有用的功能都被引入到XML中,但SGML中是否有任何功能足以激励使用它而不是XML(并接受复杂性的开销)?
答案 0 :(得分:9)
如果您手动编辑SGML,SGML的一个优点是您可以通过各种方式缩写标签。你究竟能做什么取决于你正在使用的DTD的SGML声明。例如,在DocBook中,您可以编写类似< literal> foo< />的内容。在HTML中,您可以省略结束标记,这就是为什么您可以在不关闭标记的情况下编写< p> foo ...< p> bar。或者你可以完全省略标签,这就是为什么< body>在HTML中是可选的。
但是XML的发明恰恰是因为所有这些变体使解析SGML变得非常复杂。如今,您可能会找到比SGML编辑器更强大的XML编辑器。
就处理而言,两种形式都是等效的,因为你可以来回转换,除了在一些极端情况下。
答案 1 :(得分:3)
没有。使用SGML的唯一原因是,如果您在出版业工作,其中SGML已经是生产过程的一部分。 (可能还有其他行业,但这是我有经验的唯一行业。)
另一种看待这种情况的方法是,即使SGML中有一些不错的功能,除非您可以通过使用SGML清楚地显示经济利益,否则不值得为这些工具付费(参见“出版业”)。
答案 2 :(得分:1)
除非您考虑到特定的应用,否则无法回答。您可以使用SGML获得更好的索引和搜索,但我没有找到一个比XML更好的选择。我确定他们在那里,我还没找到他们。
获胜因素是多个XML平台上的渲染成熟度。 SGML不存在相同的兼容性。但是,如果您可以控制环境,那可能不是一个因素。 XML似乎提供了90%的功能,而且复杂性要低得多。