- From: Bob Bronson <rbronson1976@yahoo.com>
- Date: Wed, 5 Oct 2005 21:41:39 -0500
- To: <www-validator@w3.org>
Hi All...
It was pointed out to me recently (by Lachlan Hunt) that using a "known
public identifier" (e.g., "-//W3C//DTD XHTML 1.0 Strict//EN") in a
DOCTYPE causes the validator to go into "XML mode", even if the content
type of the document is non-XML
(e.g., "text/html"). In fact, my testing shows that using a "known
public identifier" seems to cause the validator to ignore the system
identifier completely! For example, using the following DOCTYPE, my
XHTML Strict document validated just fine:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "Queen
Victoria">
It seems that once the validator recognized the public identifier
("-//W3C//DTD XHTML 1.0 Strict//EN", in this case) it used some
existing, cached copy of the "xhtml1-strict.dtd" DTD to validate the
document. It did *not* consult the DTD in the system identifier ("Queen
Victoria", in this case), but instead, completely ignored it.
This leads to my question: Is it possible to use a "known public
identifier" *AND* still tell the validator to use a custom DTD? In
other words, I want to use a "known public identifier" (so that the
validator goes into "XML mode") BUT I want the validator to use *my*
version of the DTD, not the one it has cached somewhere.
As a final note, I find I am able to get the validator to use my custom
DTD but to do so I have to specify an unknown, "custom" public
identifier *AND* I have to serve my XHTML document as an XML document
(e.g., "application/xhtml+xml") so that the validator stays in XML
mode. I realize it is "more correct" to server XHTML as
"application/xhtml+xml" but I prefer to serve it as "text/html" as a
concession to IE 6.
Thanks very much
--
Bob Bronson
Received on Thursday, 6 October 2005 03:38:41 UTC