2009-05-05 72 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清楚地显示财务利益(请参阅“发布行业”),否则不值得为工具付费。

相关问题