我有很好的HTML文件。要将它们变成SGML,我只需要切换扩展名,还是有更多工作要做?
答案 0 :(得分: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),您可能必须对文档本身进行一些更改。
答案 1 :(得分:0)
改变扩展名就足够了,但实际上你不需要做任何事情来从HTML获取SGML,因为HTML完全基于SGML,所以你已经拥有了SGML的HTML。
SGML是加价的母亲。 XML也基于SGML。所以当你有一些XML时,你会自动拥有SGML。 XHTML基于XML,所以当你有XHTML时,你有XML和SGML。
答案 2 :(得分:0)
验证的HTML文档是SGML文档。这是否有任何实际影响是一个不同的问题,但这样的文档可以使用一般的SGML工具(仍然存在)进行处理。
然而,SGML不需要有效性。 SGML文档根本不需要文档类型声明。但是如果它确实存在并且它是否有效,则证明它确实是SGML(而不仅仅是SGML),因为除了检查与DTD的一致性之外,SGML验证器也会检查基本语法。
SGML或基于SGML的HTML中没有格式良好的概念,但XML格式良好的概念只是意味着文档首先是XML(而不仅仅是XML),即使用一般正确的XML语法。
答案 3 :(得分:-1)
只要您的HTML验证其中一个SGML HTML DTD,您就已拥有SGML。
与其他答案相反,XML / XHTML无效SGML。
同样使用SGML,实际上并不存在“格式良好”的SGML,只对SGML有效(对于DTD)。