Есть необходимость хранить некоторые .dtd файлы на сервере, а не зашитыми в .xpi. Поначалу я думал что всё будет тривиально, достаточно лишь подсунуть HTTP URL в конструкцию:

Выделить код

Код:

<!DOCTYPE wizard SYSTEM "chrome://addon/locale/startupWizard.dtd">

, но оказалось что не всё так просто, внешняя схема не подхватывается. Кто-то сталкивался с такой проблемой? :whiteflag:

может быть, PUBLIC, а не SYSTEM ?

Не помогет, код

Выделить код

Код:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<!DOCTYPE wizard PUBLIC "http://mysite.ru/startupWizard.dtd" "startupWizard.dtd">
<wizard title="&title;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
</wizard>

вываливается с ошибкой:

XML Parsing Error: undefined entity
Location: chrome://higginsbx/content/startupWizard.xul
Line Number 4, Column 1:

KML
сервер выдаёт верный MIME type?
должен быть application/xml-dtd

Выделить код

Код:

<!DOCTYPE wizard PUBLIC "http://mysite.ru/startupWizard.dtd" "startupWizard.dtd">

Здесь: _http://www.eskimo.com/~bloo/indexdot/html/tagpages/d/doctype.htm формат первого DOCTYPE описывается иначе.

Shutnik, да, контент правильный. Похоже, что FF как-то по особенному работает с DTD и XML. В IE внешняя DTD подхватывается без проблем, ну а в FF как обычно :sick:
Если кому интересно, вот простенький XML, иллюстрирующий ситуацию:

Выделить код

Код:

<?xml version="1.0"?>
<!DOCTYPE dummy SYSTEM "http://kmax.nm.ru/startupWizard.dtd">
<dummy>&welcome.label;</dummy>

З.Ы. С этого сервера схема отдаётся как octet-stream, но достаточно наглядно демонстрирует проблемы в FF.

Добавлено Tue Jan 29 18:47:12 2008 :

Anton пишет
Выделить код

Код:

<!DOCTYPE wizard PUBLIC "http://mysite.ru/startupWizard.dtd" "startupWizard.dtd">

Здесь: _http://www.eskimo.com/~bloo/indexdot/html/tagpages/d/doctype.htm формат первого DOCTYPE описывается иначе.

FF не подхватывает внешний DTD вне зависимости от того что находится в предпоследнем параметре, судя по спецификации текст может быть произвольным, он ни на что не влияет.