原始版本: http://www.w3.org/Style/customdtd
翻译: shanghai.ws
声明:原始版本(英文版)是唯一的官方版本。中文(简体)版本是根据W3C网站上的文件翻译的,可能存在某些错误。翻译不保证译文完全准确。请您自己承担风险。
其它页面的翻译已经放在这个网站上,请浏览。
W3C样式页面包含一个< blink >元素。< blink >虽不是HTML 元素,但是这页面却可以通过一些HTML 验证器的验证 有效。这是怎么回事呢?
实际上,这页面是基于语法验证的,因为该元素在文档中宣告了。只要这些元素都被正确的宣告了,页面就能通过SGML/XML 的有效验证。
然而这页面不是基于语义验证的。尽管它是SGML文档,却不是HTML 文档。也没有一个公认的标准来定义< blink >的意义。
W3C样式页面开玩笑般地使用了一个非标准元素。如果你了解CSS的历史,你就应该记得,开发CSS的的目的之一:明确的避免浏览器编造它自己的非标准元素,比如< blink > 。
从技术上来说,可以通过编写一个自定义DTD来添加非标准的元素,并且把它包含在文档的第一行(文档类型行)。举个例子,通过拷贝并改编HTML4 DTD 能够得到一个自定义DTD。
不要这样做!文档内容要既要有意义,也要使用正确的语法。SGML 和XML 只界定文档的语法。HTML 和 XHTML 界定文档的意义。如果你添加一个不能被某一标准界定的元素,就只有你自己知道他们的意义。也许在20年,或是50年后,甚至连你自己都不知道它是什么意思了……
当然,你可以做试验,比如研究未来网络的格式,但是你更应该做的是不要使用专有的元素。