Как заставить Сариссу использовать DTD при разборе XML?
Я использую Sarissa для преобразования строки XML в объект документа DOM. Все работает за исключением того, что Сарисса полностью игнорирует мое DTD. Отклонения от правил DTD не замечены, и при этом я не вижу никаких сообщений о DTD, не найденном.
Мой XML начинается так:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE workspace SYSTEM "dtd/config.dtd">
и мой JavaScript выглядит так:
function toXML(str) {
var responseDoc = (new DOMParser()).parseFromString(str, "text/xml");
...
}
Как я могу заставить Сариссу использовать DTD?
1 ответ
Исходный код Сариссы не имеет специального кода для DOMParser(). По сути, он включает в себя нативную реализацию IE, Safari или Firefox/Opera, которая может не анализировать DTD в используемом вами браузере, поскольку внешний анализ DTD, к сожалению, является необязательным аспектом XML (даже для сущностей), а проверка еще менее надежна, Веб-тип заставляет человека работать с подстановками на стороне сервера (или, возможно, с внутренними определениями подмножеств документов, которые могут все еще игнорироваться при проверке).