Включение DTD, или `Вопрос про XML (?)'
Владимир Степанов 24.01.2005 19:42
Добрый вечер,
ниже приведены два документа: index.xml и auto.p. Оба лежат в корне веб-пространства. Хост настроен так, что Parser обрабатывает xml-и.
Вызов index.xml приводит к следующей ошибке:
=============================================
I/O warning : failed to load external entity "types.dtd"
<!DOCTYPE page SYSTEM "types.dtd">
^
Проблема решается так:
==================================
<!DOCTYPE page SYSTEM "http://$env:HTTP_HOST/types.dtd">
а я полагал, что и так должно работать ;-)
либо, что поможет следующее:
=======================
$document[^xdoc::create[http://$env:HTTP_HOST/]{$body}]
Я полагал, что парсер будет искать DTD, начиная с корня веб-пространства.
?
Спасибо. С уважением,
Владимир
index.xml
====================
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type='text/xsl' href='site.xsl'?>
<!DOCTYPE page SYSTEM "types.dtd">
<page>
<info></info>
<nav_site></nav_site>
<nav_section></nav_section>
</page>
auto.p
=====================
@postprocess[body]
^try{
$document[^xdoc::create{$body}]
$transformed[^document.transform[site.xsl]]
^transformed.string[$.method[xml]]
}{
^if($exception.type eq xml){
$exception.handled(1)
<pre>$exception.comment</pre>
}
}
Документ валидный -- на всякий случай DTD:
<?xml version="1.0" encoding="windows-1251"?>
<!ELEMENT page (info, nav_site, nav_section, nav_portfolio?, content?)>
<!ELEMENT info ANY>
<!ELEMENT nav_site ANY>
<!ELEMENT nav_section ANY>
<!ELEMENT nav_portfolio ANY>
<!ELEMENT content ANY>
- Включение DTD, или `Вопрос про XML (?)', Владимир Степанов 24.01.2005 19:42