Don't use “custom DTDs”!
What's with the <blink>?
The W3C Style page contains a <blink>
element. <blink> is not an HTML element and yet the page is
valid according to some HTML validators. What's the trick?
In fact, the page is syntactically valid, because the
element is declared in the document. As long as elements
are properly declared, the page is valid in the SGML/XML sense.
But the page is not semantically valid. It is an SGML
document, but it is not an HTML document. There is no
official standard that defines what <blink> means.
The W3C Style page uses a non-standard element as a
joke. If you know the history of CSS you may remember that
one of the reasons for CSS was precisely to avoid that every
browser invented its own non-standard elements, such as
Don't do this!
Technically, adding non-standard elements is done by writing a
“custom DTD” and including it in the first line of the document
(the DOCTYPE line). A custom DTD can be made, for example, by
copying the HTML4 DTD and
Don't do this! Documents need to have a meaning as well as
correct syntax. SGML and XML only define syntax. HTML and XHTML
define meaning. If you add elements that aren't defined by a
standard, only you yourself know what they mean. And in 20 or 50
years, even you may not know it anymore…
Of course, you can experiment, for example to work on future Web
formats, but other than that you should not use proprietary