Gestisco un forum che funge da XHTML + MathML + SVG; in toto:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd">
Utilizzando il plug-in MathPlayer, gli utenti di Internet Explorer possono utilizzare questo sito. Tuttavia, a volte qualcuno sta usando il forum di IE e non è in grado di installare MathPlayer (forse sono su una macchina pubblica da qualche parte). Quindi IE (almeno 6 e 7) si lamenta dell'XHTML e offre solo di scaricare il file.
Ho letto sul sito w3c come aggirare questo problema usando una trasformazione XSL ( http://www.w3.org/MarkUp/2004/xhtml-faq#ie ). Quando ho messo questo in atto, ho scoperto che Chrome ora si lamentava rumorosamente di entità indefinite (quello specifico era
ma i test mostrano che non è rilevante).
Stranamente, posso aggirare questo dichiarando manualmente le entità nel DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" [
<!ENTITY nbsp " ">
]>
ma preferirei non farlo per l'intera gamma di entità possibili. Dico "stranamente" perché il dtd XHTML + MathML + SVG, per quanto posso vedere, dichiara queste entità. Quindi in qualche modo questi si stanno perdendo.
C'è un modo per aggirare questo problema? Posso servire XHTML-with-entity in IE?
Nel caso in cui sia importante, le pagine sono generate da uno script php e sono servite tramite apache, quindi se esiste un metodo affidabile per annusare il browser e modificare l'inizio del documento (quindi inviare solo il <?xml-stylesheet ...>
bit a IE), allora sarebbe un alternativa accettabile.
(Spero di avere il sito SE giusto ... per favore fatemi sapere se sono nel posto sbagliato. Idem con i tag.)