Most browsers aren't very good at XHTML, so it's best not to generate it unless you have an XSLT 2.0 processor that supports the XHTML output method. With XSLT 1.0, don't use the XHTML namespace in your output; the XSLT processor will then use the HTML output method automatically, and will generate br and hr elements the HTML way.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference