Тут я приведу основные грабли на которые я напоролся и способы их обхода.
1. в мозилле не работает xsl:disable-output-escaping, то есть нельзя трансформировать текст в xml, что в некоторых случаях весьма удобно. в противоположность этому xslt не поддерживает сериализацию в текст, что тоже было бы удобно. в обоих случаях приходится либо на сервере нужным образом подготавливать данные, либо писать нетривиальные шаблоны для трансформации.
2. в ие нельзя указывать xsl:method="xml"
3. однако, если указать xsl:method="html", то в опере перестают работать формы o_0. точнее, они работают, но не посылают ни одного поля. исследования показали, поля ввода по неизвестной причине просто не привязываются к форме. причина оказалась в web forms 2.0:
Setting an element's form attribute to the empty string (or to a string consisting only of IDs that do not correctly identify form elements) just disassociates the form control from its form, leaving it unassociated with any form.и опера, как на зло, воспринимает неустановленный атрибут "form" как установленный в значение "пустая строка". вывод - нужно задать форме идентификатор, а всем полям - атрибут form с тем же значением. уже второй раз напарываюсь на этот кривой html5.0 (слоган которого - "обратная совместимость - наше всё") и его не менее кривую реализацию в опере (-_-)
4. xsl:fallback не поддерживает ни один браузер, хотя его-то нужно было бы реализовать в первую очередь! Впрочем, внутри шаблонов можно по старинке фильтровать браузеры.
5. бойтесь вгружать xml+xslt в элемент iframe и делать "рефрэш страницы" - мозилле от этого становится очень грустно и она делает себе сэпукку. это довольно древний баг, который до сих пор так никто и не удосужился исправить. вместо ифрейма можно использовать object, правда у него есть некоторые косяки в ие...
upd: ко мне тут пришла гениально простая мысль ^_^ можно использовать method="xml", а ие переводить в режим соответствия стандартам простеньким скриптом:
window.onload= function(){
var html= document.documentElement.outerHTML;
if( html && ( document.compatMode == 'BackCompat' ) )
document.write( '<!DOCTYPE html>\n' + html );
}