As I understand it, you need to include the following code at the top of your HTML files to make sure they're parsed properly:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
I'm generating an html file by transforming an XML file using an XSL file. This is going to be done using the MSXML tool, which produces a standard HTML file as output.
If I just do this:
<xsl:template match="/">
<html>
...
Everything is fine. But if I do this:
<xsl:template match="/">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
I get the error XML Parsing Error: XML or text declaration not at start of entity
in Firefox, or Cannot have a DOCTYPE declaration outside of a prolog.
in IE. Presumably this is because the parser is finding two <?xml
definitions and getting confused.
How do I make the browser a) understand that I am using proper strict HTML, and b) make sure those declarations are put into the HTML output file that MSXML generates?