This module enables Drupal to deliver its valid XHTML with the application/xhtml+xml Content-Type. Drupal by default will deliver content as text/html, disabling certain aspects of XHTML support in many browsers. Enabling delivery as application/xhtml+xml both can help with module development by asking browsers to warn about markup errors and is the recommended way to deliver XHTML to user agents.
This module supports conditionally disabling application/xhtml+xml output based on a browser's Accept: header and by page path (similarly to how blocks can be enabled/disabled for specific pages). Other conditions may be placed on XHTML output by extending hook_xhtml_disable().
This module will not work practically for drupal7 and beyond. Mozilla browsers do not support loading external DTDs and do not know about -//W3C//DTD XHTML+RDFa 1.0//EN, which drupal7 uses. Mozilla supports drupal6 (which uses -//W3C//DTD XHTML 1.0 Strict//EN) by hard-coding entities into its parser for the vanilla XHTML doctype. Since Mozilla doesn't know that XHTML+RDFa is an extension of XHTML, its parser errors out on encountering HTML entities. Please vote on mozilla bug #22942, mozilla bug #682643, and mozilla bug #98413. I do not know the state of other browsers on this issue.