原始版本: 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年後,甚至連你自己都不知道它是什麼意思了……
當然,你可以做試驗,比如研究未來網絡的格式,但是你更應該做的是不要使用專有的元素。