- From: Elliotte Harold <elharo@metalab.unc.edu>
- Date: Wed, 07 Mar 2007 13:14:25 -0500
Alexey Feldgendler wrote: > If you are going to write XHTML documents whose DOM is not representable in HTML, then your documents won't be compatible with MSIE, and you won't need the described MIME type trick. > > OTOH, if you are going to restrict yourself to XHTML documents whose DOM is representable in HTML, then you might as well use HTML. It has been said many times here that virtually every single advantage that XHTML has over HTML4 is now also inherent to HTML5 (predictable DOM, processing with XSLT, etc). Neither is really my point. The problem with malformed HTML is that it has an inconsistent DOM. You get different DOMs in different browsers and tools. Making a document well-formed XHTML gives you a consistent, reproducible, predictable DOM. If you go one step further and make the document valid strict XHTML, the DOM gets even simpler and cleaner. Many nodes are pruned from the tree. This makes it easier still to manage. It's not about whether we can represent a DOM in HTML or not. It's about consistency and simplicity. I'm not the first to point this out by any means, but I don't think it's been as widely recognized as it should. I suspect that's because many developers working with HTML aren't really using the DOM at all. They're hacking the text with IDs, document.write, innerHTML, and other tricks that don't really pay attention to the tree structure of the document they're working on. That may be a chicken-and-egg problem: as long as the document is malformed even figuring out what the tree is is nearly impossible and not cross-browser. With HTML 5 parsers (which we don't have yet) the DOM of malformed documents may yet become predictable, but it won't ever be obvious. And it may well not be consistent across browsers unless Microsoft jumps on board. By contrast, valid strict XHTML (probably transitional too) has a reasonably consistent tree structure in all browsers today. Once you achieve well-formedness you can begin looking at the document in a new way. You get access to powerful tools like XPath and XSLT that you didn't have before. You can start doing more than merely tossing the page at a browser for rendering. And you don't have to wait for an HTML 5 parser to do it either. You can do it today with a large tool chain. -- ?Elliotte Rusty Harold elharo at metalab.unc.edu Java I/O 2nd Edition Just Published! http://www.cafeaulait.org/books/javaio2/ http://www.amazon.com/exec/obidos/ISBN=0596527500/ref=nosim/cafeaulaitA/
Received on Wednesday, 7 March 2007 10:14:25 UTC