8

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

我想最有用的特性都被引入了 XML,但是 SGML 中是否有足够强大的特性来激励使用它而不是 XML(并接受复杂性的开销)?

4

3 回答 3

9

SGML 的一个优点是,如果您手动编辑它,您可以以各种方式缩写标签。您能做什么取决于您使用的 DTD 的 SGML 声明。例如,在 DocBook 中,您可以编写 <literal>foo</> 之类的东西。在 HTML 中,您可以省略结束标签,这就是您可以编写 <p>foo ... <p>bar 而不关闭标签的原因。或者你可以完全省略标签,这就是为什么 <body> 在 HTML 中是可选的。

但是 XML 的发明正是因为所有这些变体使得解析 SGML 变得相当复杂。现在,您可能会发现比 SGML 编辑器更强大的 XML 编辑器。

就处理而言,这两种形式是等价的,因为您可以来回转换,但在某些极端情况下除外。

于 2009-09-26T20:50:05.713 回答
3

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

另一种看待这个问题的方式是,即使 SGML 中有一些不错的功能,除非您可以清楚地显示使用 SGML 的经济利益(参见“出版行业”),否则不值得为这些工具付费。

于 2009-05-05T13:53:16.770 回答
1

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

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

于 2009-05-05T13:52:31.777 回答