DOCTYPE versus auto.p
Владимир Степанов 25.01.2005 15:54
/ 25.01.2005 15:56
$request:document-root срабатывает, будучи вставлен в объявление DOCTYPE, а в xdoc::create -- нет. С тем же сообщением о невозможности найти DTD. Я не написал сразу, чтобы не загромождать.
У меня задача в том, чтобы код parser-а не использовался внутри xml и xslt, по разным соображениям. Поэтому напрягает, что приходится вставлять переменную в DOCTYPE. Судя по всем описаниям, этого вполне можно избежать.
Я так понимаю, происходит следующее. Методу postprocess передаётся тело обрабатываемого документа, т.е. моего xml-я. Далее, создаём объект xdoc. Внутри в доктайпе стоит DTD без явного указания пути. Стало быть,
1) parser смотрит, каков базовый путь, и не лежит ли там в корне нужный документ.
Если не получилось, то
2) parser ищет там, где лежит обрабатываемый документ.
В моём примере места из 1 и 2 физически суть одно, но не это важно. Важно, что не работает, и не помогает задание пути конструктору ни в какой форме, а помогает задание пути (прямо перенос того же кода) в DOCTYPE.
Где я ошибаюсь?