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