xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

больной вопрос по XML


Автор Сообщение
Руденко Александр
Новичок

Зарегистрирован: 04.12.2003
Сообщения: 2
Откуда: Харьков
[5250] Чт Дек 04, 2003 17:07
больной вопрос по XML
Здравствуйте.

Почему IE не выдает ошибку?



Создаю XML файл:



<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE menu
[
<!ELEMENT menuitem EMPTY>
<!ATTLIST menuitem
id ID #REQUIRED >
<!ELEMENT menu (menuitem)>
]>
<menu>
<menuitem>hello world</menuitem>
</menu>

Ведь он не соответствует dtd !!!!!
_________________
secor@ukr.net
Руденко Александр
Cobra
Студент

Зарегистрирован: 30.04.2002
Сообщения: 91
Откуда: Москва
Посетить сайт автора
[5251] Чт Дек 04, 2003 17:33

From http://www.optim.ru/cs/2001/2/xml1/xml1.asp

Цитата:


Проверка корректности структуры документа

Спецификации XML 1.0 оговаривает, что XML-парсеры могут проверять синтаксис, а могут и не проверять корректность структуры документа. Не следует путать проверку корректности документа с точки зрения XML как такового и проверку корректности документа с точки зрения соответствия DTD или XML-схеме.

Непроверяющие парсеры
Проверяют синтаксис документа и сообщают обо всех нарушениях ограничений формы документа. Непроверяющие парсеры могут добавлять информацию к документу, основанному на декларациях DTD. MSXML читает DTD, включая внешние источники, и действует на основе этой информации.

Проверяющие парсеры
Делают то же, что и непроверяющие, но, кроме этого, сравнивают структуру документов с правилами DTD или XML-схемы.

Использование того или иного вида парсера определяется потребностями приложения. Если строится общее XML-приложение, не рассчитывающее встретить конкретную структуру документа, непроверяющий парсер позволит использовать документы, не отвечающие какой-то конкретной структуре. По умолчанию Microsoft Internet Explorer использует именно непроверяющий режим работы для отображения наибольшего числа документов.

Руденко Александр
Новичок

Зарегистрирован: 04.12.2003
Сообщения: 2
Откуда: Харьков
[5252] Чт Дек 04, 2003 19:13
Как перевести IE в проверяющий режим для XML и DTD?
Как перевести IE в проверяющий режим для XML и DTD?
_________________
secor@ukr.net
Руденко Александр
olpa
Любитель

Зарегистрирован: 23.04.2002
Сообщения: 981
Откуда: Санкт-Петербург
Посетить сайт автора
[5257] Вс Дек 07, 2003 22:51

А зачем заставлять IE заниматься проверкой XML? Его задача -- отобразить документ. А проверкой пусть занимается COM-объект MSXML.

Есть предположение, что IE будет проверять документ, если DTD загружен. Можно попробовать добиться этого, расписав заголовок XML-документа:

Код:


<?xml version="1.0" encoding="windows-1251" standalone="no"?>
<!DOCTYPE myrootelem PUBLIC "..." SYSTEM "myrootelem.dtd">
...