[no subject]

You might check the example below from the local file system or from
the server by using application/xml. The syntax used is XML with no
need for _any_ special (HTML) cases here, so an empty div element is
simply written as <div/> for example!

With IE6 it will be rendered in strict mode, despite the XML prolog.

With Firefox it will give you a XHTML document. You can check this by
viewing the DOM.

For the only "problem" I'm aware of (doubling the <br/> in Opera, IE6
and IE7) I have included a workaround in the stylesheet.

So I would propose, instead of sending browser specific html, to send
a single XML and let the browsers XSLT machine take care of its
specific needs. Is it too simple? Please criticise!

Best Regards,
Manfred

test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="identity.xsl" type="text/xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml";>
   <head>
      <title>resr quirks-mode</title>
      <style>
div {
   margin: 20px;
}
.testbox {
   width: 200px;
   padding: 20px;
   border: 1px solid #000000;
}
.comparisionbox {
   width: 200px;
   border: 1px solid #000000;
}
      </style>
   </head>
   <body>
      <div id="main">
         <p class="comparisionbox">This paragraph has width: 200px and
no padding. It always remains exactly 200px wide, regardless of
rendering mode.</p>
         <p class="testbox">This paragraph has width: 200px and
padding: 20px. Which box model does it follow?</p>
         <p>Note: This is a variation after a <a
href="http://www.quirksmode.org/css/modes/box_quirks.html";>page at
QuirksMode</a></p>
      </div>
   </body>
</html>

identity.xsl:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
   xmlns:html="http://www.w3.org/1999/xhtml";
   exclude-result-prefixes="html"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="html"
   doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
   omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
   <xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node()">
   <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
   </xsl:copy>
</xsl:template>
<xsl:template match="html:br">
   <br xmlns=""/>
</xsl:template>
</xsl:stylesheet>

Current Thread