Я пытаюсь взять XML-документ, скажем, http://example.org/data.xml и покажите его с примененной таблицей стилей XSL. (Я не могу изменить сам документ и добавить директиву)
Итак, есть пара служебных XML-файлов, подобных этому:
wrapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wrapper [
<!ENTITY content SYSTEM "http://example.org/data.xml">
]>
<?xml-stylesheet type="text/xsl" href="unwrap.xsl" ?>
<wrapper>
&content;
</wrapper>
unwrap.xsl:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="stylesheet.xsl"/>
<xsl:template match="/wrapper/node()[1]">
<xsl:apply-imports/>
</xsl:template>
</xsl:stylesheet>
Итак, подведем итог: stylesheet.xsl написан для http://example.org/data.xml, браузер указывает на wrapper.xml, и пользователь должен увидеть преобразованный http://example.org/data.xml.
Это один из тех редких случаев, когда все работает должным образом в IE (и Chrome), но не в Firefox.
AFAIK Firefox поддерживает внешние объекты XML, но кажется, что они невидимы в коде XSL. Я нашел эту статью от 2006 г., она описывает эту проблему в Firefox 1.5 (I Пользуюсь 3.5.3)
Есть ли обходной путь для этого?