Dirijo un foro que sirve sus páginas como XHTML + MathML + SVG; en su totalidad:
<!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">
Usando el complemento MathPlayer, los usuarios de Internet Explorer pueden usar este sitio. Sin embargo, a veces alguien está usando el foro de IE y no puede instalar MathPlayer (tal vez están en una máquina pública en algún lugar). Luego, IE (al menos 6 y 7) se queja del XHTML y ofrece solo descargar el archivo.
Leí en el sitio w3c cómo solucionar esto usando una transformación XSL ( http://www.w3.org/MarkUp/2004/xhtml-faq#ie ). Cuando puse esto en su lugar, descubrí que Chrome ahora se quejaba vociferantemente de entidades indefinidas (la específica era
pero las pruebas muestran que eso no es relevante).
Curiosamente, puedo evitar esto declarando manualmente las entidades en el 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 " ">
]>
pero prefiero no hacer esto para toda la gama de entidades posibles. Digo "extrañamente" porque el XHTML + MathML + SVG dtd, por lo que puedo ver, declara estas entidades. Así que de alguna manera estos se están perdiendo.
¿Hay alguna forma de evitar este problema? ¿Puedo servir XHTML con entidades a IE?
En caso de que sea importante, las páginas son generadas por un script php y se sirven a través de apache, por lo que si hay un método confiable para rastrear el navegador y modificar el inicio del documento (por lo que solo se envía el <?xml-stylesheet ...>
bit a IE), eso sería un alternativa aceptable
(Espero tener el sitio SE correcto ... avíseme si estoy en el lugar equivocado. Lo mismo ocurre con las etiquetas).