使用SGML而不是XML有什么理由吗?

8
据我所知,XML是SGML的一个子集,旨在简化它并促进更广泛的使用。
我猜想大多数有用的功能都被引入了XML中,但是否有SGML中强大到足以激励人们使用它而接受复杂性开销的功能呢?
3个回答

9
如果您手动编辑SGML,其中一个优点是可以以各种方式缩写标记。具体可做什么取决于您使用的DTD的SGML声明。例如,在DocBook中,您可以编写类似<literal>foo</>这样的内容。在HTML中,您可以省略结束标记,这就是为什么可以编写<p>foo ... <p>bar而不关闭标记的原因。或者您可以完全省略标记,这就是为什么HTML中<body>是可选的原因。
但XML的发明正是因为所有这些变体使解析SGML变得非常复杂。现在,您可能会发现比SGML编辑器更强大的XML编辑器。
在处理方面,两种形式是等效的,因为您可以相互转换,除了一些特殊情况。

哎呀,需要一个+2的按钮...!(+1用于优秀解释;+1用于惊人的小知识!) - pinkgothic

3

不需要。只有在出版业中,SGML已经成为生产过程的一部分时,才需要使用SGML。(可能还有其他行业,但我只有在出版业中有经验)。

另一种看待这个问题的方式是,即使SGML有一些不错的功能,除非你能清楚地展示使用SGML的财务收益(参见“出版业”),否则不值得购买工具。


1

除非您有特定的应用程序,否则无法回答此问题。您可以使用SGML获得更好的索引和搜索,但我还没有发现它比XML更好的情况。我相信它们是存在的,我只是没有找到它们。

赢家因素在于XML在多个平台上的呈现成熟度。对于SGML来说,同样的兼容性并不存在。但是,如果您可以控制环境,则可能不是一个因素。 XML似乎仅提供了90%的功能,而复杂性要低得多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接