rbronson1976 wrote:
Quote:
The public identifier, to my knowledge, is optional. |
Yes, technically, it is according to the XML rec.
Quote:
The SYSTEM identifier is what provides the DTD. |
Yes, it references the external DTD.
Quote:
I've also tried other (custom) PUBLIC Identifiers, to no avail. |
You misunderstood what I meant. The validator switches to XML mode for
known PUBLIC identifiers for XML documents, such as XHTML, regardless of
the MIME type. Since the validator, obviously, does not know about your
custom PUBLIC identifier, it does not know that it should continue in
XML mode and, because it was served as text/html, defaults to SGML mode.
Using an XML MIME type, it uses XML mode.
Quote:
You also said, "...the validator does not know that the system
identifier is referencing an XML DTD, rather than an SGML DTD, and
because the document is being served with the wrong MIME type..."
That's an odd thing to say considering the document *DOES* validate
correctly if I use the first DOCTYPE, even though, according to you, I
am using the wrong MIME type (text/html). |
That's because the validator knows the XHTML DOCTYPEs
Quote:
So, if the MIME type is causing the problem, why doesn't it cause a
problem with the first DOCTYPE? |
Because, upon encountering a document with a known XML DOCTYPE, the
validator knows that it should continue in XML mode.
Quote:
I do not believe the "text/html" MIME type is wrong or causing the
problem...
In addition, "... XHTML Documents which follow the guidelines set forth
in Appendix C, 'HTML Compatibility Guidelines' may be labeled with the
Internet Media Type "text/html", as they are compatible with most HTML
browsers." |
Although it is allowed by the recommendation, you should be aware that
doing so is considered harmful.
Quote:
So, I don't think you can say I'm using the wrong MIME type. |
No, it is the *wrong* MIME type, even if it is technically allowed under
certain conditions.
Quote:
Finally, I did try changing the MIME type in the <meta> element to
"application/xhtml+xml" but the same problem occurred. |
Change the MIME type in the HTTP headers, the meta element is only
useful for setting the charset in text/html documents, when the charset
parameter has been omitted from the HTTP Content-Type header, or when
the file is not being served over HTTP, or other protocol with such
information available.
In the HTTP headers, for HTML, use:
Content-Type: text/html; charset=XXX
(where XXX is whatever encoding you have used)
For XHTML, use:
Content-Type: application/xhtml+xml
(XML documents are self describing and don't need charset information in
the HTTP headers)
Quote:
If anyone *really* knows why I am getting these validation errors,
please respond...but no more half-baked, useless guesses, please. |
I do *really* know why you are getting these validation errors, it was
not a "half-baked, useless guess". If you can't remain civil in the
future and not insult those that choose to take the time to assist you,
simply because you failed to understand the advice given, then don't
expect too much from anyone else in the future.
--
Lachlan Hunt
http://lachy.id.au/ http://GetFirefox.com/ Rediscover the Web
http://GetThunderbird.com/ Reclaim your Inbox