The file is :
<?xml version="1.0"?>
<!DOCTYPE html SYSTEM
"C:\$Source\XML\xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test
</title>
</head>
<body>
</body>
</html>
Well, your problem is really tricky!
I have immediately tried your file with our XML Spy 3.0b2 and it told
me, that file is valid (this version uses our own validator engine). And
just before to write you this answer, I have tried it also with XML Spy
2.5 which uses IE5.0 for validation, and it placed the cursor on <head>
element, and said "head expected!"
Going through DTD I have finally found the reason of all that strange
error messages. The problem is, that <html> is defined with a fixed
attribute xmlns="http://www.w3.org/1999/xhtml" which you have also used
in your XML file.
But using this attribute makes html element and all sub-elements named
actually with prefix {http://www.w3.org/1999/xhtml}. At the same time
the complete DTD is written for simply named elements, without prefix!
It is the very old problem about using DTD and Namespaces. James Clark
has written in his article http://www.jclark.com/xml/xmlns.htm about
Namespaces, that DTD validation has to be done WITHOUT to care about
Namespaces, means to see the pure names.
I hope my answer helps you.
Vladislav Gavrielov
Icon Information-Systems makers of XML Spy http://www.xmlspy.com