据我了解,XML是SGML的一个子集,旨在简化它并鼓励更广泛的使用。

我猜大多数有用的功能都被引入到XML中,但SGML中是否有任何功能足以激励使用它而不是XML(并接受复杂性的开销)?

有帮助吗?

解决方案

如果您手动编辑SGML,SGML的一个优点是您可以通过各种方式缩写标签。你究竟能做什么取决于你正在使用的DTD的SGML声明。例如,在DocBook中,您可以编写<!> lt; literal <!> gt; foo <!> lt; / <!> gt;等内容。在HTML中,您可以省略结束标记,这就是为什么您可以在不关闭标记的情况下编写<!> lt; p <!> gt; foo ... <!> lt; p <!> gt; bar。或者你可以完全省略标签,这就是为什么<!> lt; body <!> gt;在HTML中是可选的。

但是XML的发明恰恰是因为所有这些变体使解析SGML变得非常复杂。如今,您可能会找到比SGML编辑器更强大的XML编辑器。

就处理而言,两种形式都是等效的,因为你可以来回转换,除了在一些极端情况下。

其他提示

没有。使用SGML的唯一原因是,如果您在出版业工作,其中SGML已经是生产过程的一部分。 (可能还有其他行业,但这是我有经验的唯一行业。)

另一种看待这种情况的方法是,即使SGML中有一些不错的功能,除非您可以通过使用SGML清楚地显示经济利益,否则不值得为这些工具付费(参见<!> quot; publishing industry <!> QUOT;)

除非您考虑到特定的应用,否则无法回答。您可以使用SGML获得更好的索引和搜索,但我没有找到一个比XML更好的选择。我确定他们在那里,我还没找到他们。

获胜因素是多个XML平台上的渲染成熟度。 SGML不存在相同的兼容性。但是,如果您可以控制环境,那可能不是一个因素。 XML似乎提供了90%的功能,而且复杂性要低得多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top