1

我有格式良好的 HTML 文件。要将它们转换为 SGML,我只是切换扩展名还是还有更多工作要做?

4

4 回答 4

3

这将取决于 HTML 的版本。来自SGML

虽然 HTML 是部分独立开发并与 SGML 并行开发的,但其创建者 Tim Berners-Lee 打算将其作为 SGML 的应用程序。HTML(超文本标记语言)的设计因此受到 SGML 标记的启发,但是由于没有建立明确的扩展和解析指南,大多数实际的 HTML 文档都不是有效的 SGML 文档。后来,HTML 被重新制定(2.0 版)更多地成为 SGML 应用程序,然而,HTML 标记语言具有许多与 SGML 要求不同的遗留和异常处理功能。HTML 4 是一个完全符合 ISO 8879 – SGML 的 SGML 应用程序。

最近恢复的万维网联盟 HTML 工作组的章程说,“该组不会假设 SGML 解析器用于'经典 HTML'”。尽管 HTML 语法与默认参考具体语法的 SGML 语法非常相似,但 HTML5 放弃了将 HTML 定义为 SGML 应用程序的任何尝试,明确定义了自己的解析规则,更接近于现有的实现和文档。(但是,它确实定义了一个替代的基于 XML 的 XHTML 序列化,它确实符合 SGML (WWW)。)

因此,如果您拥有格式良好的 HTML 4 或 XHTML,您可能已经拥有 SGML。任何更早(不太可能)或更晚(HTML 5)的内容,您可能必须对文档本身进行一些更改。

于 2012-09-05T22:48:59.033 回答
0

验证的 HTML 文档是 SGML 文档。这是否有任何实际影响是一个不同的问题,但可以使用通用 SGML 工具(仍然存在)处理这样的文档。

然而,作为 SGML,有效性不是必需的。而SGML 文档根本不需要文档类型声明。但如果确实如此并且如果它验证,那么这证明它确实是 SGML(而不仅仅是类似 SGML),因为 SGML 验证器除了检查与 DTD 的一致性之外,还检查基本语法。

在 SGML 或基于 SGML 的 HTML 中没有格式良好的概念,但 XML 格式良好的概念只是意味着文档首先是 XML(而不仅仅是类似 XML),即使用 XML 的一般语法正确。

于 2012-09-06T11:05:50.687 回答
0

更改扩展名就足够了,但实际上您无需做任何事情即可从 HTML 获得 SGML,因为 HTML 完全基于 SGML,所以当您拥有 HTML 时,您已经拥有 SGML。

SGML 是标记之母。XML 也是基于 SGML。所以当你有一些 XML 时,你会自动拥有 SGML。XHTML 是基于 XML 的,所以当你有 XHTML 时,你就有了 XML 和 SGML。

于 2012-09-05T22:47:53.403 回答
-1

只要您的 HTML 验证到 SGML HTML DTD 之一,您就已经拥有 SGML。

与其他答案相反,XML/XHTML 不是有效的 SGML。

同样对于 SGML,实际上并没有“格式良好的”SGML 这样的东西,只有有效的(对于 DTD)SGML。

于 2012-09-06T01:52:06.543 回答